Arduino pin 10 para PWM mientras SPI esclavo

0

Necesito usar mi Arduino Uno (ATmega328) como esclavo SPI y todavía tengo acceso a al menos 5 pines PWM. El único problema es que esto significa que tendré que usar el pin 10 (Slave select / PB2) como el quinto pin PWM porque el pin 11 (MOSI / PB3) definitivamente no es una opción y parece que en el momento en que inicie SPI en modo esclavo detiene el pin 10 de PWMing y simplemente lo apaga. ¿Sería posible restaurar de alguna manera el acceso PWM a este pin? No necesito este pin para la selección de esclavos, más bien puedo usar un IO simple y simplemente adjuntar y separar SPI al interrumpirlo, emulando así la selección de esclavos.

    
pregunta Gerharddc

2 respuestas

1

Los estados de la sección 18.3.1 de la hoja de datos de ATmega328p

  

el pin de selección de esclavo (SS) siempre se ingresa.

donde el uso del SPI en esclavo sin un SS probablemente tenga problemas con la sincronización del primer bit de los datos. Donde si eso no es un problema, entonces sugeriría que quizás un Leonardo podría resolver su problema. Tiene 8 PWM, ninguno en el SPI. Mientras que su SPI SS está cableado al RXLED y no a un encabezado. De lo contrario, el Mega tendría todo lo que quieres.

    
respondido por el mpflaga
0

El módulo SPI de hardware obliga al uso del pin SS asignado en modo esclavo.

El esquema del pin muestra que es automático y no se puede sobrescribir, siempre que el módulo SPI esté en uso.

Consulte la hoja de datos de ATMega328p, sección 18.2 y 18.3.

Necesita una implementación de software SPI.

    
respondido por el Passerby

Lea otras preguntas en las etiquetas