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?
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)
Therusscher
jfri2