SPI 4 puente de x UART (MULTIUART) (4 / 6 paso)

Paso 4: El software

El software fue creado usando MPLAB X y el compilador XC8. Flowcode no nativamente soporta a esclavo SPI todavía así que tuve que volver a lo básico con mi compilador de C.

Flowcode 6 proporcionar algunas características de la caja tal como soporte UART y buffers circulares múltiples por lo que esto realmente ayudó a acelerar el desarrollo en términos de generación de código C pude copiar y pegar en mi programa.

Voy a través del proceso de obtener una versión de 30 días completamente desbloqueado de Flowcode para todo tipo de chip en mi robot de dos ruedas Instructable.

Para desarrollar el software que he creado un protocolo simple para la conexión de SPI para permitirme acceder a cada una de las funciones de los canales de la UART. Cada valor se envía vía el SPI como un byte con el CS señal tirado bajo. Cuando el comando es completar la señal CS se tiraron alto.

El código de comando y el canal de la UART se embalan juntos en un solo byte para aumentar la eficiencia. El código de comando se encuentra en la parte superior de 4 bits y el canal se encuentra en la parte inferior 2 bits.

Aquí están los pedacitos en el octeto y su representación.

cccc00uu

donde cccc es el código de comando y uu es el canal de la UART.

Código - parámetros - devoluciones - Descripción del comando

0 x 10 - N/D - NumBytes (0-255) - lee el número de bytes en el canal recibe el almacenador intermediario.

0 x 30 - N/A - NumBytes (0-255) - lee el número de bytes en el búfer de transmisión del canal.

DataByte 0 x 20 - NumBytes (0-255) - (0-255) - lee datos byte(s) desde el canal recibe el almacenador intermediario.

0 x 40 - NumBytes (0-255), DataByte (0-255) - N/A - pone un byte de datos en el búfer de transmisión del canal.

0 x 80 - baud (0-7) - N/A - establece la velocidad de transmisión de canal

Estas son las opciones para el parámetro de tasa de baudios.

0 = 1200 1 = 2400, 2 = 4800, 3 = 9600, 4 = 19200, 38400 = 5, 6 = 57600, 115200 = 7

Así que para leer el número de bytes en el canal UART 2 recibe el almacenador intermediario nos envía el siguiente código de comando y a continuación, realice una lectura.

CS baja

SPISend (0x12)

NumBytes = SPIReceive (0xFF)

CS alto

Para leer el búfer de recepción de 5 bytes de canal UART 2 enviar el siguiente comando código, el número de bytes y llevar a cabo suficientes lecturas para sacar todos los datos que queremos.

CS baja
SPISend (0x22)

SPISend (0 x 05)

Byte [0] = SPIReceive (0xFF)

Byte [1] = SPIReceive (0xFF)

Byte [2] = SPIReceive (0xFF)

Byte [3] = SPIReceive (0xFF)

Byte [4] = SPIReceive (0xFF)

CS alto

Para escribir 5 bytes en búfer de transmisión UART canal 2 nos envía el siguiente código de comando, el número de bytes y luego realizar suficiente escribe para enviar todos los datos que queremos.

CS baja

SPISend (0x42)

SPISend (0 x 05)

SPISend (Byte [0])

SPISend (Byte [1])

SPISend (Byte [2])

SPISend (Byte [3])

SPISend (Byte [4])

CS alto

Cada UART periférica tiene un búfer circular de software 512 bytes, lo que permite una gran cantidad de datos a ser enviados y recibidos que debe significar ojala que nunca se pierde un byte.

El LED se ilumina tenuemente cuando se acciona el tablero, se enciende a media potencia durante la transmisión o recepción mediante una UART y destellos a plena potencia cuando se comunica vía SPI. Pensado en tener un LED para cada canal de la UART, pero decidido contra él al final, sólo más componentes para colocar a mano.

Artículos Relacionados

Linux, WiFi, Ethernet, USB Shield para Arduino

Linux, WiFi, Ethernet, USB Shield para Arduino

Yun el escudo es un escudo de Arduino que simplemente "girará" Arduino (Leonardo, ONU, MEGA2560 etc) igualmente un "Arduino Yun". Proporciona un sistema Linux, WiFi, Ethernet en la placa de Arduino para la conectividad. También tiene u
Construir tu propio (a) sensor de color pequeña.

Construir tu propio (a) sensor de color pequeña.

Hace unos meses vi un instructable por fjordcarver sobre cómo construir un coloursensor con un RGB led y una LDR. Me inspiró a probar si podía mejorar su diseño.Aquí son las cosas que yo quería:El sensor debe tener pernos como pocos como sea posible.
ESP8266 Wifi adiciónales para Arduino fácil

ESP8266 Wifi adiciónales para Arduino fácil

ActualizaciónEl proceso descrito aquí ya no se recomienda. Este instructivo ha sido reemplazado por ESP8266 WiFi Shield para Arduino y otros micros que proporciona una función de configuración de página web más universal.IntroducciónESP8266 es un chi
Introducción a ARDUINO UNO-R3

Introducción a ARDUINO UNO-R3

Hola chicos, saben lo que una placa de arduino es. Pero como un principiante (o) un novato puede enfrentar una dificultad en la elección de la tabla de la derecha de la amplia gama de tableros en la familia de Arduino.Te sugiero fuertemente Arduino U
Registrador de temperatura con el mini pro y la pila solo

Registrador de temperatura con el mini pro y la pila solo

Se trata de un sistema mínimo de registro de temperatura.Se necesita:Uso de Arduino pro mini (ATmega328p) - sensor de temperatura interno y EEPROMPaquete de baterías o cualquier otra cosa puede encender el mini pro - energía de 'raw' pin debe > = 5 v
Interfaz SPI de FlySky/Turnigy 9 x

Interfaz SPI de FlySky/Turnigy 9 x

interfaces radio RC a un microcontrolador es un poco de un dolor, especialmente si quieres un montón de canales, porque tienes que tiempo cada canal de salida individualmente.Un AVR sólo tiene un temporizador de 16 bits con dos canales de comparar, p
VUSBTiny AVR SPI programador

VUSBTiny AVR SPI programador

después de hacer un programador isp de usbtiny y usarlo durante 6 meses, estaba mirando uno otro para llevar alrededor. me gusta el simplicy del diseño usbtiny isp pero quisiera hacerla aún más pequeña y menos partes. una cosa en el diseño original q
Utilizando un Arduino para controlar o probar un dispositivo electrónico SPI

Utilizando un Arduino para controlar o probar un dispositivo electrónico SPI

hay muchos dispositivos electrónicos que utilizan el bus SPI, o autobús de interfaz periférico Serial, comunicaciones (varios sensores, LCD displays, potenciómetros digitales, convertidores D/a y A/d, transmisores inalámbricos y receptores, controles
JolliCube - 8 x 8 x 8 LED cubo (SPI)

JolliCube - 8 x 8 x 8 LED cubo (SPI)

Cubos de LED no deja de impresionarnos. Ver algunas animaciones de 7 x 7 x 7 o más cubos de LED puede ser muy fascinantes.Durante mucho tiempo hemos querido construir uno de estos cubos más grandes que 7 x 7 x 7. Investigado en línea para proyectos s
Cómo utilizar el SPI en LabVIEW

Cómo utilizar el SPI en LabVIEW

Este Instructable le explicará cómo comunicarse con un sensor de luz ambiental Pmod (PmodALS) via SPI usando chipKIT WF32, LabVIEW y LabVIEW MakerHub LINX. Esto también irá sobre como leer la hoja de datos para que puedas usar como guía para otros di
Un BeagleBone Tutorial - Getting Started With Motor puente del cabo

Un BeagleBone Tutorial - Getting Started With Motor puente del cabo

Este proyecto es un tutorial que le puede enseñar cómo utilizar el Motor puente cabo en BBB o BBG, y te voy a mostrar una demo que puede conducir a la vez seis servos dos motores de CC y un motor paso a paso.Paso 1: Sobre Motor puente del caboEl Moto
Principio microcontroladores parte 2: Creación de una interfaz SPI del programador para el microcontrolador

Principio microcontroladores parte 2: Creación de una interfaz SPI del programador para el microcontrolador

Hola, esperamos que te ha gustado la parte 1 del principio microcontroladores. Vamos a mover a lo largo de a parte 2 y empezar a hablar acerca de cómo obtener tu microcontrolador para comunicarse con una computadora e interfaces.Por lo tanto, en este
Perno de conexión con Arduino: Perno UART

Perno de conexión con Arduino: Perno UART

IntroducciónEste instructivo está hecho para perno de usuarios que desean la unidad de hardware de perno con Arduino Uno de interfaz o simplemente quieren experimentar con la UART del tornillo.Requisitos previosAcceso a taller de IoT de perno y su re
Diseño con memoria Flash SPI discreta

Diseño con memoria Flash SPI discreta

Diseño con flash discreto es 1/10th el costo, utiliza un mucho más pequeño factor de formay requiere mucho hardware menos especializado que el uso de las tarjetas flash SD.Este Instructable le mostrará cómo agregar 1MB de memoria flash externa discre