Ich habe auch mit BLE herumgespielt und mich für den nordischen nRF8001-Chip entschieden, da er einfacher zu handhaben war und keine teuren IAR-Tools benötigte. nRF8001 ist etwas billiger als das CC2540-Teil in BLE112, aber nur für Slaves.
Ich habe Nordics nRF8001-Entwicklungskit für 99 US-Dollar gekauft, das nRF8001-Beispiele und mehrere nRF8001-Karten ( eine mit einer Trace-Antenne und eine mit einem SMA-Anschluss) mit einem Standard-0,1-Zoll-Header für die einfache Verbindung mit Ihrer Mikrocontroller-Entwicklungsplatine. In der Dokumentation wird davon ausgegangen, dass Sie die nRFgo-Entwicklungsplatine für 399 US-Dollar haben und den mitgelieferten nRF8200-Mikrocontroller verwenden möchten Also habe ich stattdessen eine nRF8001-Karte direkt mit einem Arduino verbunden.
Sie sprechen SPI mit nRF8001, aber im Grunde genommen mit 2 verschiedenen Slave-Select-ähnlichen Pins. Ein Pin (REQN) ist ein traditioneller Slave-Select, der mitgebracht wird niedrig, um anzuzeigen, dass der Master (Sie) eine Nachricht senden möchte. Der andere Pin (RDYN) ist für den Slave (nRF8001), um anzuzeigen, dass er etwas über RF empfangen hat, das er an den Master senden möchte oder bereit ist Um einen Befehl vom Master zu erhalten, setzt der Master die REQN auf niedrig und beginnt mit dem Empfang.
Das Protokoll ist sehr präzise und gut dokumentiert (im von Nordic bereitgestellten Produktspezifikations-PDF). Ich habe eine Arduino-Skizze geschrieben, um den nRF8001 einzurichten und ihn an einem Nachmittag mit meinem iPhone 4S sprechen zu lassen. Das Format besteht im Wesentlichen aus einem Längenbyte, einem Befehlsbyte und optionalen befehlsspezifischen Argumenten.
Sie benötigen die nRFgo Studio-Software von Nordic, um eine Konfiguration zu erstellen, in der die von Ihrem Gerät unterstützten Dienste angegeben sind. Es enthält dann eine Datei services.h mit den Setup-Meldungen, die Sie an nRF8001 senden müssen. Endlich gelang es mir, einen Herzfrequenzmesser zu emulieren und Zahlen in der iOS-Demo-App von Nordic anzuzeigen.
Ein großer Vorteil von nRF8001 im Vergleich zu BLE112 besteht darin, dass Sie neben den von nRFgo Studio generierten proprietären Setup-Meldungen nur mit einem gut dokumentierten seriellen Protokoll arbeiten. Keine Firmware-Upgrades! Es ist sehr cool, dass der CC2540 über einen integrierten 8051-Mikrocontroller verfügt, aber Sie müssen entweder Tausende von Dollar für die IAR-Tools bezahlen oder sich mit den Einschränkungen und Belästigungen des BlueGiga-Software-Stacks befassen. Ein roher CC2540 ist billiger als nRF8001 plus ein Mikrocontroller, aber die Karten von BlueGiga sind nicht billig.
(Auf dem nRF8001 befindet sich ein UART, der auf den im Entwicklungskit enthaltenen Karten herausgebracht wird, aber nur für Der direkte Testmodus von Bluetooth wird normalerweise nicht verwendet.)