J'ai également joué avec BLE et j'ai décidé d'opter pour la puce Nordic nRF8001 car elle semblait plus facile à utiliser et ne nécessitait pas d'outils IAR coûteux. Le nRF8001 est légèrement moins cher que la pièce CC2540 dans BLE112, mais il est réservé aux esclaves.
J'ai acheté le kit de développement nRF8001 de Nordic pour 99 $, qui comprend des échantillons nRF8001 et plusieurs cartes nRF8001 ( un avec une antenne de trace et un avec un connecteur SMA) avec un en-tête standard de 0,1 "pour une interface facile avec votre carte de développement de microcontrôleur. La documentation suppose que vous avez la carte de développement nRFgo à 399 $ et que vous souhaitez utiliser le microcontrôleur nRF8200 inclus. Je n'ai pas , donc à la place, j'ai câblé une carte nRF8001 directement à un Arduino.
Vous parlez SPI au nRF8001, mais fondamentalement avec 2 broches différentes de type sélection esclave. faible pour indiquer que le maître (vous) voulez envoyer un message. L'autre broche (RDYN) est pour l'esclave (nRF8001) pour indiquer qu'il a reçu quelque chose par RF qu'il veut envoyer au maître, ou qu'il est prêt pour recevoir une commande du maître. Le maître amène alors REQN bas et commence à recevoir.
Le protocole est très concis et bien documenté (dans le PDF de spécifications du produit fourni par Nordic) et j'ai écrit un croquis Arduino pour configurer le nRF8001 et le faire parler à mon iPhone 4S dans un après-midi. Le format est essentiellement un octet de longueur, un octet de commande, puis des arguments optionnels spécifiques à la commande.
Vous aurez besoin du logiciel nRFgo Studio de Nordic pour créer une configuration spécifiant les services que votre appareil prendra en charge; il inclura alors un fichier services.h contenant les messages de configuration que vous devez envoyer au nRF8001. J'ai finalement réussi à émuler un moniteur de fréquence cardiaque et à afficher des chiffres dans l'application de démonstration iOS de Nordic.
Un gros avantage de nRF8001 par rapport à BLE112 est que, mis à part les messages de configuration propriétaires générés par nRFgo Studio, vous ne traitez qu'avec un protocole série bien documenté. Aucune mise à jour du firmware! C’est très cool que le CC2540 ait un microcontrôleur 8051 intégré, mais vous devrez soit payer des milliers de dollars pour les outils IAR, soit faire face aux limitations et aux inconvénients de la pile logicielle de BlueGiga. Un CC2540 brut est moins cher qu'un nRF8001 plus un microcontrôleur, mais les cartes BlueGiga ne sont pas bon marché.
(Il y a un UART sur le nRF8001 qui est présenté sur les cartes incluses dans le kit de développement, mais c'est uniquement pour Le mode de test direct de Bluetooth n'est généralement pas utilisé.)