Configuración de pines CS/SS

Estoy usando un ATtiny861a y quiero habilitarlo para usar SPI. Al hacer esto, necesito asignar no uno, sino dos pines CS/SS para comunicarme con una radio y una memoria externa. ¿Es necesario conectar el pin CS/SS a un pin ADC o podría conectarse a un pin AREF, PCINT u OC1A/OC1B?

Respuestas (1)

Creo que puedes usar cualquier pin GPIO como CS/SS. Tenga en cuenta que necesitará un pin diferente para cada dispositivo esclavo. Por ejemplo, supongamos que el SPI CS del dispositivo 0 está conectado al pin 5 del PORTD y el SPI CS del dispositivo 1 está conectado al pin 6 del PORTD:

//init ports    
DDRD  |= (1 << 5) | (1 << 6);    //sets PORTD bits 5 and 6 to output
PORTD |= (1 << 5) | (1 << 6);    //sets PORTD bits 5 and 6 to high (spi CS inactive)

//spi device0
PORTD &= ~(1 << 5);    //resets device0 CS (makes it active)
//SPI send/receive stuff here
PORTD |= (1 << 5);     //sets device0 CS (makes it inactive)

//spi device1
PORTD &= ~(1 << 6);    //resets device0 CS (makes it active)
//SPI send/receive stuff here
PORTD |= (1 << 6);     //sets device0 CS (makes it inactive)
Entonces, ¿los pines AREF, PCINT y OC1A/OC1B son pines GPIO?
Sí, consulte la hoja de datos ( atmel.com/Images/… ) sobre cómo configurarlos y qué funciones de pin debe habilitar/deshabilitar para usarlos