Cet article décrit le fonctionnement de la pile USB du module nRF24LU1 +. Dans la première partie, une petite introduction, l'installation du logiciel et du SDK, Hello World.Dans la deuxième partie, nous considérerons l'initialisation, l'énumération, le support WinUSB et l'échange de données avec l'hôte. On suppose que le lecteur a une compréhension initiale de l'USB. Sinon, je vous conseille de vous familiariser avec l'excellent manuel .
J'ai commandé mes chips sur ebay . Inclus étaient 2 modules et un programmeur SPI. Vol direct dans la pommade pour ceux qui commandent le même ensemble. Il n'y a pas de ligne de réinitialisation dans le connecteur de programmation sur le module lui-même. Sans cela, la programmation ISP ne fonctionne pas. J'ai dû souder soigneusement.
En principe, les puces peuvent être programmées via le chargeur de démarrage intégré (et même écrire les vôtres). Il existe également un tas de clignotants SPI basés sur ftdi , arduino et plus encore. Le processus de programmation est similaire à la puce nrf24le1.La puce nRF24LU1 + est:- Émetteur-récepteur nRF24l01 + 2,4 GHz
- contrĂ´leur USB 2.0 pleine vitesse
- Microcontrôleur 8 bits avec cœur Intel MCS 51
- Flash 16 ou 32 ko
Le dispositif interne de la puce:
Parmi les fonctionnalités, il convient de mentionner que la RAM rapide n'est que de 256 octets (IRAM). Les 2 ko restants (SRAM) sont situés sur le bus externe, respectivement, leur accès est plus lent. Il existe également un module de cryptage.Configurer Keil, le SDK nRFgo et Hello World
Tout le développement sera réalisé dans l'environnement de Keil et nRFgo SDK. Téléchargez, installez ( tyts , tyts ).Quelques mots sur l'organisation du projet. J'ai créé cette structure. Compilateur, HAL et LIB copiés à partir du SDK nRFgo. Les projets seront déjà directement dans le dossier Projets.├───compiler
│ ├───c51
│ ├───common
│ └───icc8051
├───hal
│ ├───nrf24l01p
│ ├───nrf24le1
│ └───nrf24lu1p
├───lib
│ ├───adns7530
│ ├───assertions
│ ├───crypt
│ ├───display
│ ├───eeprom
│ ├───eeprom255
│ └───rf_test
└───projects
└───HelloWolrd
Nous allons à Keil. Projet - Nouveau uVision Prject. Nous sélectionnons le catalogue avec le projet, entrez le nom du projet. Ensuite, sélectionnez la puce comme dans l'image, d'accord avec tout.
Ensuite, ajoutez une nouvelle source au projet (cliquez avec le bouton droit sur le groupe de sources 1 - Ajouter un nouvel Iteam) .Premierprogramme, imprimez Ă l'infini dans 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);
}
}
De plus, vous devez ajouter deux fichiers au projet:hal\nrf24lu1p\hal_uart.c
hal\hal_delay.c
Le lecteur a probablement déjà compris que nous connectons uniquement le code source de notre puce.Pour que tout se passe correctement, vous devez mettre quelques ticks et enregistrer Inclure le chemin pour le compilateur.Coin droit pour le projet - Options.
Dans la maçonnerie de sortie, cochez la case Créer un fichier HEX.Ensuite, dans l'onglet C51, écrivez Inclure..\..\hal;..\..\hal\nrf24lu1p;..\..\compiler\c51;..\..\compiler\common;
Monter un projet. Le fichier hex résultant est rempli avec le programmateur dans le contrôleur. Dans mon cas, les Chinois ont envoyé ce genre de logiciel. Le programmeur lui-même est défini comme un périphérique HID, il ne nécessite pas de pilotes. Avant la programmation, la puce doit être effacée.Le logiciel peut être téléchargé ici .
Si tout a été fait correctement, Hello World sera versé une fois par seconde dans UART.Suite dans la partie suivante. L'initialisation USB, l'énumération, le support WinUSB et l'échange d'hôte seront pris en compte.La deuxième partie de