Frecuencias en atmega (uC)

0

Quiero usar un atmega328p con el módulo inalámbrico nrf24l01 + y comunicarlo con un arduino nano con nrf24l01 +.

Mi pregunta es la siguiente: si uso diferentes frecuencias en los microcontroladores, ¿habrá algún problema?

Arduino nano va a 16MHz y el atmega328p quiero poner 8Mhz interno o externo o tal vez 12MHz ya que lo alimento con una batería a [4-3] V.

    
pregunta Wave Wolf

2 respuestas

0

La frecuencia de reloj SPI nrf24l01 está limitada a 8 MHz (la velocidad máxima de datos en el aire es de 2 MHz). Si está utilizando SPI de hardware, hay un divisor que se puede usar para configurar la frecuencia SPI a una fracción de la frecuencia del procesador (el registro CPHA si está programando registros directamente, setClockDivider () en Arduino) que le permite ejecutar el reloj SPI a una frecuencia más baja que el procesador.

    
respondido por el Dean Franks
0

Si bien se ha afirmado que los chips nRF24 tienen un límite de reloj SPI de 8 MHz, en la práctica esto no será un problema con una placa Arduino a una frecuencia de reloj estándar (8 MHz o 16 MHz), porque el SPI de ATmega la velocidad de reloj se limita a la mitad de la frecuencia del oscilador del chip para comenzar.

Opcionalmente, puede configurar ATmega para dividir aún más el reloj SPI, pero el divisor mínimo es 2 como resultado de cómo se construye el motor periférico (tal división es común a la mayoría de las MCU).

En teoría, si uno estuviera operando un ATmega a 20 MHz que está cerca del límite de su especificación, entonces el reloj SPI podría ser tan alto como 10 MHz que podría estar fuera de especificación.

Pero en ese punto, quizás debamos considerar que muchos de los artículos vendidos como chips nRF24 son en realidad etiquetados erróneamente de diferentes proveedores.

Lo que quizás sea más importante para los propósitos de la pregunta es que el reloj SPI no tiene relación con la velocidad de datos aéreos . Puede usar un reloj SPI rápido para cargar datos para una velocidad de datos de aire lenta, o puede usar una velocidad de datos de aire rápida y leer el resultado con una implementación de SPI de bit bang lenta. Es la velocidad de datos del aire y las configuraciones relacionadas las que deben coincidir entre el transmisor y el receptor : el SPI solo necesita poner la radio en el modo correcto (especialmente en la frecuencia correcta) en el momento correcto para coordinar con el otro extremo.

Además, estas radios no están diseñadas para un ciclo de servicio alto. Normalmente, el tiempo entre paquetes sería largo en comparación con la duración de un paquete. Así que debería haber suficiente tiempo para escribir los datos y leerlos. Si está intentando mover grandes volúmenes de datos, es probable que esté utilizando la solución de radio incorrecta, por no mencionar las MCU incorrectas. Estos chips estaban destinados a cosas como ratones y teclados inalámbricos, y luego se rediseñaron para el lado de control de los juguetes RC; Si quieres algo más como WIFI, entonces eso es lo que deberías usar.

    
respondido por el Chris Stratton

Lea otras preguntas en las etiquetas