Este artĂculo describe el funcionamiento de la pila USB del mĂłdulo nRF24LU1 +. En la primera parte, una pequeña introducciĂłn, instalaciĂłn de software y SDK, Hello World.En la segunda parte consideraremos la inicializaciĂłn, la enumeraciĂłn, el soporte de WinUSB y el intercambio de datos con el host. Se supone que el lector tiene una comprensiĂłn inicial de USB. Si no, le aconsejo que se familiarice con el excelente manual .
PedĂ mis chips en eBay . Se incluyeron 2 mĂłdulos y un programador SPI. Vuelo directo en la pomada para aquellos que ordenan el mismo conjunto. No hay lĂnea de reinicio en el conector de programaciĂłn en el mĂłdulo mismo. Sin ella, la programaciĂłn del ISP no funciona. Tuve que soldar cuidadosamente.
En principio, los chips se pueden programar a través del gestor de arranque incorporado (e incluso escribir el suyo propio). También hay un montón de flashes SPI basados ​​en ftdi , arduino y más. El proceso de programación es similar al chip nrf24le1.El chip nRF24LU1 + es:- Transceptor nRF24l01 + de 2.4GHz
- controlador USB 2.0 de velocidad completa
- Microcontrolador de 8 bits con nĂşcleo Intel MCS 51
- Flash de 16 o 32 kb
El dispositivo interno del chip:
De las caracterĂsticas, vale la pena mencionar que la RAM rápida es de solo 256 bytes (IRAM). Los 2 kb restantes (SRAM) se encuentran en el bus externo, respectivamente, el acceso a ellos es más lento. TambiĂ©n hay un mĂłdulo de cifrado.Configure Keil, nRFgo SDK y Hello World
Todo el desarrollo se llevará a cabo en el entorno de Keil y nRFgo SDK. Descargar, instalar ( tyts , tyts ).Algunas palabras sobre la organización del proyecto. Creé esta estructura. Compilador, HAL y LIB copiados del nRFgo SDK. Los proyectos ya estarán directamente en la carpeta Proyectos.├───compiler
│ ├───c51
│ ├───common
│ └───icc8051
├───hal
│ ├───nrf24l01p
│ ├───nrf24le1
│ └───nrf24lu1p
├───lib
│ ├───adns7530
│ ├───assertions
│ ├───crypt
│ ├───display
│ ├───eeprom
│ ├───eeprom255
│ └───rf_test
└───projects
└───HelloWolrd
Entramos en Keil. Proyecto - Nuevo proyecto de uVision. Seleccionamos el catálogo con el proyecto, ingresamos el nombre del proyecto. A continuación, seleccione el chip como en la imagen, de acuerdo con todo.
A continuación, agregue la nueva fuente al proyecto (haga clic con el botón derecho en el Grupo de fuentes 1 - Agregar nuevo Iteam). ¡Primer programa, imprima sin fin en Hello World! UART#include <stdio.h>
#include "nrf24lu1p.h"
#include "hal_uart.h"
#include "hal_delay.h"
char putchar(char c)
{
hal_uart_putchar(c);
return c;
}
void putstring(char *s)
{
while(*s != 0)
putchar(*s++);
}
void main(void)
{
P0DIR = 0x00;
hal_uart_init(UART_BAUD_57K6);
EA = 1;
for(;;)
{
putstring("\r\nHello World!\r\n");
delay_ms(1000);
}
}
Además, debe agregar dos archivos al proyecto:hal\nrf24lu1p\hal_uart.c
hal\hal_delay.c
El lector, probablemente, ya entendió que estamos conectando el código fuente para nuestro chip exactamente.Para juntar todo correctamente, necesita poner algunos ticks y registrar Incluir Ruta para el compilador.Cuña adecuada para el proyecto - Opciones.
En la mamposterĂa de salida, marque la casilla de verificaciĂłn Crear archivo HEX.A continuaciĂłn, en la pestaña C51, escriba Incluir..\..\hal;..\..\hal\nrf24lu1p;..\..\compiler\c51;..\..\compiler\common;
Armando un proyecto. El archivo hexadecimal resultante se llena con el programador en el controlador. En mi caso, los chinos enviaron este tipo de software. El programador en sĂ mismo se define como un dispositivo HID, no requiere controladores. Antes de programar, el chip debe ser borrado.El software se puede descargar aquĂ .
Si todo se hizo correctamente, Hello World se vertirá una vez por segundo en UART.Continúa en la siguiente parte. Se considerarán la inicialización USB, la enumeración, el soporte de WinUSB y el intercambio de host.La segunda parte de