Qu'est-ce que la puce NRF51822 BLE ?
Le nRF51822 est un SoC multiprotocole puissant et flexible, idéal pour les applications sans fil Bluetooth Low Energy et 2,4 GHz Ultra Low Energy. Il est basé sur un processeur ARM® Cortex™ M0 32 bits avec 256 Ko de mémoire flash + 16 Ko de RAM. L'émetteur-récepteur 2,4 GHz intégré prend en charge le Bluetooth Low Energy et le fonctionnement 2,4 GHz, le mode 2,4 GHz étant compatible sans fil avec la gamme de produits nRF24L de Nordic Semiconductor.
Caractéristiques du NRF51822
- Dispositif multiprotocole 2,4 GHz à puce unique et haute flexibilité ;
- Cœur de processeur ARM Cortex M0 32 bits ;
- 256 Ko de mémoire flash et 16 Ko de RAM ;
- Prise en charge de la pile de protocoles Bluetooth Low Energy S110 ;
- S110 nécessite 80 Ko d'espace mémoire ;
- Sécurité des threads et protection du runtime ;
- API événementielle ;
- Compatibilité sans fil avec la série nRF24L ;
- 3 débits de données (2 Mbps/1 Mbps/250 kbps) ;
- Puissance de sortie de +4 dBm ;
- Sensibilité de -92,5 dBm, Bluetooth Low Energy ;
- Mappage E/S configurable pour les E/S analogiques et numériques ;
- Système PPI pour optimiser l'efficacité énergétique des applications et simplifier le code ;
- Système de gestion de l'énergie flexible avec gestion automatique de l'énergie pour chaque produit périphérique ;
Brochage du nRF51822
Le brochage du nRF51822 comprend 36 broches, chacune ayant une fonction spécifique. Les broches peuvent être divisées en quatre catégories principales : GPIO, ADC, I2C et PWM. Les broches GPIO peuvent être utilisées pour les E/S numériques et peuvent être configurées comme entrée ou sortie. Les broches ADC peuvent être utilisées pour les entrées analogiques, tandis que les broches I2C et PWM peuvent être utilisées pour la communication et le contrôle PWM.

En plus des broches mentionnées ci-dessus, le nRF51822 dispose également de deux broches de réinitialisation, deux broches d'activation de puce, deux broches VTREF, quatre broches d'alimentation électrique et quelques autres broches. Les broches de réinitialisation sont utilisées pour réinitialiser l'appareil, les broches d'activation de puce sont utilisées pour activer l'appareil et les broches VTREF sont utilisées pour la tension de référence analogique.
Comment programmer le NRF51822 ?
La programmation du NRF51822 ble est une tâche un peu complexe. Voici les étapes à suivre.
Environnement de construction et utilisation des GPIO
Étape 1. Outils de développement
Les outils suivants sont nécessaires :


Étape 2. Création d'un environnement de développement
Créez un nouveau dossier, où component est le fichier décompressé du package compressé du SDK. Le fichier config contient le fichier sdk_config.h, qui est copié à partir des exemples du SDK. Users est le dossier dans lequel le projet MDK est stocké.

Ouvrez le MDK et l'installateur de packs. Recherchez et sélectionnez ensuite la puce nRF51822 pour installer les packs nécessaires.
Comme indiqué dans la figure, sélectionnez le fichier CORE et le fichier Startup.

Étape 3. Écriture du programme GPIO
Une introduction détaillée au GPIO est disponible dans le fichier de bibliothèque nrf_gpio.h. Plusieurs fonctions principales sont répertoriées ci-dessous.
//input Output
typedef enum
{
NRF_GPIO_PIN_DIR_INPUT = GPIO_PIN_CNF_DIR_Input, ///< Input.
NRF_GPIO_PIN_DIR_OUTPUT = GPIO_PIN_CNF_DIR_Output ///< Output.
} nrf_gpio_pin_dir_t;
// pull up and pull down
typedef enum
{
NRF_GPIO_PIN_NOPULL = GPIO_PIN_CNF_PULL_Disabled, ///< Pin pull-up resistor disabled.
NRF_GPIO_PIN_PULLDOWN = GPIO_PIN_CNF_PULL_Pulldown, ///< Pin pull-down resistor enabled.
NRF_GPIO_PIN_PULLUP = GPIO_PIN_CNF_PULL_Pullup, ///< Pin pull-up resistor enabled.
} nrf_gpio_pin_pull_t;
//Input and output initialization configuration
void nrf_gpio_cfg_output(uint32_t pin_number);
void nrf_gpio_cfg_input(uint32_t pin_number, nrf_gpio_pin_pull_t pull_config);
//Output high and low/flip level
void nrf_gpio_pin_set(uint32_t pin_number);
void nrf_gpio_pin_clear(uint32_t pin_number);
void nrf_gpio_pin_toggle(uint32_t pin_number);
// read input and output levels
uint32_t nrf_gpio_pin_read(uint32_t pin_number);
uint32_t nrf_gpio_pin_out_read(uint32_t pin_number);
Ensuite, nous devons définir l'emplacement de la LED sur la broche. Selon le schéma du nRF51822, la broche P0.07 est connectée à la LED.
#include "nrf_delay.h"
#include "nrf_gpio.h"
#define LED 7
int main(){
nrf_gpio_cfg_output(LED);
nrf_gpio_pin_clear(LED); //Output low level
while (1) {
nrf_gpio_pin_toggle(LED); // flip level
nrf_delay_ms(1000);
}
}
Après avoir écrit les codes ci-dessus, vous constaterez qu'il y a une erreur de compilation car le chemin d'accès au fichier d'en-tête est introuvable. Nous devons donc importer le chemin d'accès au fichier d'en-tête, comme indiqué ci-dessous :

Puis définissez la macro comme indiqué ci-dessous :

Étape 4. Télécharger le programme
Connectez la carte de développement et le PC à l'aide de la méthode SW de J-Link, puis ouvrez nRFgo Studio.
- Cliquez sur nRF5x Programming ;
- Cliquez sur Erase all (Tout effacer) pour effacer la mémoire ;
- Sélectionnez le fichier hexadécimal ;
- Programmez le nRF5x et téléchargez.

Applications du nRF51822
- Application Bluetooth Smart ;
- Accessoires pour téléphones mobiles ;
- Périphériques informatiques ;
- Appareils électroménagers intelligents : capteurs de fitness et de santé ;
- Manettes de jeux électroniques ;
- Systèmes d'approche et d'alerte de sécurité ;
- Contrôle domestique/industriel et acquisition de données ;
- Suivi RF intelligent et interaction sociale ;
- Télécommandes pour téléviseurs, décodeurs et systèmes multimédias ;
NRF51822 vs NRF51802
De plus, pour la puce NRF51802 de la même série que la NRF51822, la capacité de la mémoire FLASH RAM de ces deux puces est identique. La différence réside dans de légères variations au niveau de la sensibilité, de la consommation électrique, du courant de veille et du temps de réveil interne. Les données globales affichées par la 51822 sont meilleures. En général, les deux modèles sont interchangeables.
À l'heure actuelle, notre société a réalisé l'analyse inverse, le décryptage et l'optimisation de l'analyse des puces Bluetooth NRF51822 et NRF51802.




