Paso 7: Programación paso 1: SPI UART
Los componentes recomendados del escudo son:
- de una red itinerante RN - 131G módulo inalámbrico
- Chip de SPI-a-UART del SC16IS750.
Autobús de interfaz periférico serial ( SPI) es un bus serie "cuatro hilos" capaz de altas tasas de transmisión de datos. Un bus de serie permite que los datos a ser enviados en serie (síncrono), es decir, un poco a la vez, en lugar de en paralelo (asincrónico)
El receptor/transmisor asincrónico Universal (o UART) es un tipo de receptor/transmisor asincrónico, una pieza de hardware que traduce los datos entre formas serie y paralelos.
- La PC se comunica través de UART con el Arduino a través de los pines RX y TX
- El Arduino comunica través de SPI con el chip UART de SPI en el escudo WiFly (viruta del SC16IS750 SPI-a-UART) aunque pernos 10-13 (CS, MOSI, MISO, SCLK respectivamente)
- El RN - 131G módulo inalámbrico tiene acceso a red y enviar y recibir datos en serie sobre UART.
El puente de SPI-a-UART se utiliza para permitir la transmisión más rápida de la velocidad y liberar el Arduino de UART.
El código siguiente se basa en un número de fuentes, pero sobre todo de este tutorial sobre en sparkfun:
www.Sparkfun.com/Commerce/tutorial_info.php
WiFly Wireless Talking SpeakJet Server
/ * Comprobar si el puente SPI <> – UART configurado correctamente escribiendo un carácter de prueba mediante SPI y leerlo nuevamente. Devuelve true si éxito * / boolWiFly::TestSPI_UART_Bridge() {/ / realizar la prueba de lectura y escritura para comprobar si está funcionando el puente SPI <> – UART / / escribir un carácter en el registro de la libreta de apuntes. WriteByteToRegister (SPR, 0x55); chardata = ReadCharFromWiFly(SPR); if(Data == 0x55) {returntrue; } else {m_printer -> println ("Failed to chip SPI <> – UART de init"); returnfalse; }} / * Escribe una serie de registro para inicializar el SC16IS750 SPI-UART bridge chip ver http://www.tinyclr.com/downloads/Shield/FEZ_Shields_WiFly.cs * / voidWiFly::SPI_UART_Init(void) {WriteByteToRegister(LCR,0x80); / / 0 x 80 a velocidad de transmisión de programa WriteByteToRegister (DLL, SPI_Uart_config. DivL); 0 x 50 = 9600 con Xtal = 12.288 MHz WriteByteToRegister(DLM,SPI_Uart_config. DivM); WriteByteToRegister (LCR, 0xBF); acceso registro EFR WriteByteToRegister (EFR, SPI_Uart_config. Flujo); Activar realzado registra WriteByteToRegister (LCR, SPI_Uart_config. DataFormat); bits de 8 datos, 1 stop no bit, paridad WriteByteToRegister (FCR, 0 x 06); reposición de TXFIFO, reponerla RXFIFO, modo FIFO no WriteByteToRegister (FCR, 0 x 01); activar el modo FIFO}