lunes, 25 de septiembre de 2023

RADIO FM con chip Si4703 y Arduino Nano. Capítulo 16. Configuración E/S Arduino y arranque del Si4703

 

RADIO FM con chip Si4703 y Arduino Nano

Capítulo 16: Configuración E/S Arduino y arranque del Si4703


Además de cablear físicamente el Arduino con el resto de elementos que componen el receptor, es necesario decirle por “software” qué es lo que tiene conectado. Para ello hemos de configurar los pines de los puertos de e/s del Arduino y especificar las direcciones de todos los esclavos del bus I2C.

En este capítulo entresacaremos del programa del Arduino la configuración de las e/s conectadas al Si4703 y a los encóder más la declaración de objeto de la memoria eeprom. Todas estas líneas de programa sumadas a las del capítulo anterior son necesarias para poder ejecutar la función de arranque del Si4703 que vamos a ver aquí también.

En este enlace puedes descargar el capítulo:



lunes, 11 de septiembre de 2023

RADIO FM con chip Si4703 y Arduino Nano. Capítulo 15. Los registros del Si4703

 

RADIO FM con chip Si4703 y Arduino Nano

Capítulo 15: Los registros del Si4703



Cuando decidí a llevar a cabo este proyecto me pregunté si un Arduino de la gama más sencilla, como es el Uno o el Nano, sería capaz de gestionar el chip Si4703. Mis dudas se concentraban en si podría procesar con la suficiente rapidez el flujo de datos del RDS y de las pantallas lcd del dial, y en si dispondría de suficiente memoria RAM para albergar todas las variables y datos demandados por el programa. Felizmente, la respuesta a estas cuestiones fue positiva: tanto el Arduino Uno como su hermano pequeño, el Arduino Nano, gestionan perfectamente los lcd y el RDS (no es tan fiero el toro como lo pintan). Según el IDE del Arduino, el programa que desarrollé demanda 524bytes de la memoria RAM para variables globales, ¡sólo el25%!, así que aún hay espacio para las variables locales y la pila de “stack”. Cabía la posibilidad de que el Arduino se colgara por desbordamiento de la pila de “stack” al tener que atender un elevado número de interrupciones y saltos a subrutinas. El programa no es terriblemente extenso y ocupa poco más de 11Kbytes de la memoria flash (37%).

A partir de este capítulo comenzamos la descripción del programa del Arduino, que iremos analizando cachito a cachito como si fueran las piezas que componen un puzle.

Este capítulo lo vamos a dedicar a la piedra angular del software del proyecto: los registros de lectura y de escritura del Si4703. Primero haremos una descripción muy breve de los mismos y después veremos cómo acceder a ellos con el Arduino. En el siguiente enlace puedes descargar el pdf para leerlo tranquilamente "offline".