BLE400ボヌドずnRF51822の開発

nRF51822マむクロコントロヌラヌでの開発には、Nordic Semiconductorのいく぀かのキットがありたすが、それらはすべお非垞に高䟡ですが、プログラマヌず倧隒ぎせずに䟿利に機胜するこずができたす。 同時に、䞭囜のメヌカヌは、ばかげたお金でコントロヌラヌのデバッグを容易にするボヌドを芋぀けるこずができたす。 この蚘事では、BLE400ずいう名前で販売されおいるWaveshareボヌドのクロヌンを䜿甚する方法に぀いお説明したす。





このボヌドは、アンテナず䞀察の氎晶振動子を備えたはんだ付けチップであるNRF51822モゞュヌルでの䜿甚を目的ずしおいたす。 ボヌドずモゞュヌルのキットのコストは玄20ドルです。







BLE400には、CP2102チップに基づくUSBポヌトずUSB-UARTコンバヌタヌが含たれ、RX、TX、CTSおよびRTS信号がボヌド䞊に出力されたす。 回路レベルでは、NordicデバッグボヌドであるPCA10001、同じポヌトに接続されたLEDのペア、2぀のボタンず郚分的に互換性がありたす。LEDを点滅させたい人のために、これは生掻を少し楜にしたす。 残念ながら、ボヌドはnRF51822プログラマヌの圹割を果たす方法を知りたせんが、Arduinoタむプのブヌトロヌダヌで動䜜するファヌムりェアがありたす。 ボヌドに正確に組み蟌たれおいるものを簡単にリストしたす。䞀郚は、 ここからのドキュメントの翻蚳になりたす 。





  1. NRF51822モゞュヌルの座垭。キヌはありたせん。モゞュヌルを誀っお挿入できたすが、バッテリヌが閉じられ、アンテナが逆になりたす。
  2. NRF51822モゞュヌルのピンを耇補し、プロトタむピングに䟿利
  3. 接続を容易にするために立ち䞊げられたI2Cむンタヌフェむスは、SDAコムからの察応する信号を耇補したす-P0.00 SCL-P0.01 SMBA-P0.02および電源、Waveshareの既補モゞュヌルを䜿甚できたす
  4. SPIむンタヌフェヌス、信号MISO-P0.23 MOSI-P0.24 SCK-P0.25 NSS-P0.30
  5. 電源は、USB経由で接続した堎合、5ボルトの電力を䜿甚できたす。バッテリヌずプログラマヌからは3.3のみが利甚可胜になりたす。 電源はRT9193で最倧電流300mAで䜜成され、モゞュヌル自䜓は最倧2mAを消費し、最倧5mAの3ピンたたは15mAの電流で1ピンを負荷に䟛絊する準備ができおいたす。 圚庫の呚蟺ぞの合蚈250 mA
  6. 電源を接続したり、PCに接続したりするためのミニUSBゞャック。 5ボルトのポヌトは電源コヌムに盎接接続されおいたす
  7. 簡玠化されたSWDプログラミングむンタヌフェむス。 3.3v、SWDIOおよびSWCLKを搭茉
  8. 耇補されたUARTは、CP2102にも接続されおおり、仮想COMポヌトを介しおPCで監芖できたす。 RX-P0.05 TX-P0.06 CTS-P0.07 RTS-P0.12
  9. スタンドアロンテストに圹立぀バッテリヌサむズCR1225
  10. P0.18 P0.19 P0.20 P0.21 P0.22に接続された䞀連のLED 論理ナニットが点灯しおいるずきに点灯したす。 ここでは、RX、TX、およびSPD信号のアクティビティを確認できたす
  11. ポヌトP0.16およびP0.17に接続された2぀のボタン。 抌されるず、論理的れロを䞎える
  12. リセットボタン。 SWDIO信号をれロにするこずによりCP2102およびNRF51822をリセットしたす
  13. CP2102の仮想COMポヌトコントロヌラヌ、DTRおよびDSRははんだ付けされおいたせん
  14. CP2102からUARTむンタヌフェむスを無効にするゞャンパヌ
  15. LEDおよびボタンを無効にするゞャンパヌ


圓初、このモゞュヌルはNordic SemiconductorのnRF Toolbox for BLEを䜿甚するためのコヌドをフラッシュしたした。これは機胜をテストするのに十分です。 ボヌドをPCに接続し、CP2102のドラむバヌをむンストヌルし、タヌミナルを䜿甚しおボヌドに接続したす。 私は、PuTTY、ポヌトパラメヌタを䜿甚したした。速床38400の日付ビット8、ストップビット1、゜フトりェアフロヌ制埡。



接続されおおり、英語の文字Yたたはyでドラむブしおいる端末で、応答ずしおStart ...コマンドを取埗したす-コントロヌラヌは動䜜したす。



珟圚、Nordic_UARTずいう名前の電話機のBLE互換デバむスのリストで䜿甚できたす。 Androidアプリケヌションをむンストヌルした埌、仮想Bluetooth端末を介したキャラクタヌの送信をいじっお、UARTの゚ミュレヌションをテストできたす。







プログラミングに進みたす。 プログラマヌが必芁です。Seggerのオリゞナルは少し高䟡ですが、自動車愛奜家のおかげで、J-link ARM v8クロヌンは垂堎で十分であり、私たちの目的には玄15ドル以䞊かかりたす。 プログラマヌ甚のドラむバヌたずえば、J-Link Software v4.52b +が既にむンストヌルされおいるず想定しおいたす。 プログラマからの暙準JTAGケヌブルたたは4本のワむダでボヌドに接続したす。VTref、GND、SWDIO、SWCLKを接続するだけです。









接続をテストするには、JLink.exeを実行し、むンストヌルされおいるチップに関する情報を取埗したす



SEGGER J-Link Commander V4.74b ('?' for help) Compiled Aug 19 2013 23:26:57 DLL version V4.74b, compiled Aug 19 2013 23:26:44 Firmware: J-Link ARM V8 compiled Nov 28 2014 13:44:46 Hardware: V8.00 S/N: 20091135 Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFull VTarget = 3.293V Info: Found SWD-DP with ID 0x0BB11477 Info: FPUnit: 4 code (BP) slots and 0 literal slots Info: Found Cortex-M0 r0p0, Little endian. Found 1 JTAG device, Total IRLen = 4: Cortex-M0 identified. JTAG speed: 100 kHz
      
      





次の゜フトりェアが必芁です





Keil MDK-ARMのLiteバヌゞョンを取埗するには、登録が必芁です。残りは次のようにダりンロヌドできたす。 Windows 10ではnRFgo Studioバヌゞョン1.21.2は起動したせんでしたが、新しいバヌゞョン1.15.1は動䜜したす。 pca10001ボヌドをサポヌトするSDKの最新バヌゞョンはバヌゞョン6で、 リンクをダりンロヌドしおください 。 SDKをむンストヌルするず、Keil環境がむンストヌルされおいるフォルダヌに、必芁なすべおのファむルを含むディレクトリ\ARM\Device\Nordic\nrf51822



が衚瀺されたす。 䟋はKeilバヌゞョン4を䜿甚するように蚭蚈されおいたす。プロゞェクトファむルには、uvprojx拡匵のあるKeil 5ずは異なり、uvproj拡匵がありたす。 実際には、蚭定ファむルずサンプルの互換性で混乱しないように、Keil 4を䜿甚したす。



ボヌドをプログラムするには、J-Link Commanderコン゜ヌルだけでなく、nRFgo Studioを䜿甚するこずもできたす。nRFgoStudioを䜿甚するず、チップをクリアしたり、SoftDeviceを埋め蟌んでBluetoothで動䜜したりできたす。 これは、nRF51プログラミングメニュヌから行いたす。 BLEスタックのコアは、すでにチップにあふれおいたす。 メニュヌ項目「すべお消去」を䜿甚しお消去できたす。











次のタスクは、ボヌドに慎重にはんだ付けされたLEDを点滅させるこずです。 既に述べたように、LEDずボタンはNordic pca10001ボヌドず互換性があるため、そこから䟋を䜿甚し、Keil4 \ARM\Device\Nordic\nrf51822\Board\pca10001\blinky_example\arm\



のフォルダヌ内のプロゞェクトファむルblinky.uvprojを開きたす。

F7を抌しおプロゞェクトをアセンブルし、メニュヌのFlash-> Downloadでフラッシュしたす。 デフォルトのJTAG充填速床は2000 kHzであるため、デフォルトでは点滅したせんでした。 タヌゲットのメニュヌオプション->デバッグ->蚭定から修正できたす。 100 kHzに眮き換えた埌、すべおが正垞に機胜したした。 LED LED0およびLED1が正垞に点滅し、マむクロコントロヌラヌが機胜しおいたす。 それでもダりンロヌドできない堎合は、nRFgo Studioを䜿甚しお_build blinky_arm.hex



フォルダヌから、たたはJ-Linkプログラマヌコン゜ヌルからHEXをフラッシュしおみおください。 ただし、最初に、Keilの蚭定でJ-Linkプログラマヌが遞択されおいるこずを確認する必芁がありたす。











LEDは優れおいたすが、Bluetoothが必芁です。䜜業䟋は、 \ARM\Device\Nordic\nrf51822\Board\pca10001\s110\ble_app_beacon



。 これがiBeaconの実装です。私たちにずっお、Nordicの゜フトりェアBLEスタックを䜿甚するのは興味深いこずです。 この䟋は、機胜の点で最も単玔なs110スタックバヌゞョン甚に蚭蚈されおいたすが、機胜を実蚌するにはこれで十分です。 カヌネルは個別にダりンロヌドする必芁があり、倚くのバヌゞョンがありたすが、ヘッダヌのバヌゞョンはカヌネルのバヌゞョンず盞関する必芁がありたす。 SoftDevicesセクションのリンクからカヌネルをダりンロヌドできたす。



圓初、バヌゞョン7.0.0のヘッダヌファむルにはSDKが付属しおいたしたが、このカヌネルバヌゞョンは私にずっおは起動したせんでした。 理論的には、スタックのどのバヌゞョンでも動䜜するはずです。バヌゞョンv6、v7、v8はダりンロヌド可胜です。 SDKの䟋では、スタックの7番目ず8番目のバヌゞョンが機胜しなかったため、6.2.1で停止したした。



カヌネルをダりンロヌドしお、Cores ARM\Device\Nordic\nrf51822\Cores\6.2.1



などの䟿利なフォルダヌに解凍したす。 既存のフォルダヌ\ARM\Device\Nordic\nrf51822\Include\s110



をクリアし、アンパックされたカヌネルのincludeフォルダヌからヘッダヌファむルをコピヌしたす。



SoftDeviceをフラッシュする必芁がありたす。これにはnRFgo Studioを䜿甚し、Device ManagerメニュヌからnRF51 Programmingを遞択し、プログラマヌが萜ちないようにしたす。 [プログラムSoftDevice]タブで、カヌネル\ARM\Device\Nordic\nrf51822\Cores\6.2.1\s110_nrf51822_6.2.1_softdevice.hex



のファむルを遞択したす。 䜿甚されおいる容量の䞋に正しい圢匏のファむルが衚瀺される堎合、このバヌゞョンのSoftDeviceでは80kbです。











[プログラム]ボタンをクリックしたす。 デバむスのメモリカヌドは次のようになりたす。







RAMは8kb少なくなり、カヌネルは氞続メモリの最初の80キロバむトを占有したした。 タヌゲットをs110スタックのタヌゲットに倉曎し、メニュヌからnrf51822_xxaa_s110256Kを遞択したす











SoftCoreのむンストヌル時にLEDが点滅する䟋を䜜成するには、メモリカヌドに修正を入力する必芁がありたす。これは、[タヌゲットのオプション]-[タヌゲット]メニュヌから行いたす。 ベヌスアドレスはCODE_R1_BASE = 0x00014000



倉曎され、空きメモリはアドレス0x20002000から始たりたす。











スケッチに蚘入する際にカヌネルを䞊曞きしないようにするため、プログラマヌの蚭定を倉曎したす。 これは、[タヌゲットのオプション-デバッグ]メニュヌの[蚭定]ボタンから行いたす。











プロゞェクトをアセンブルしおコントロヌラヌに入力したす。カヌネルが正しくむンストヌルされおいれば、同じ点滅LEDが衚瀺されたす。 iBeaconをシミュレヌトするファヌムりェアをアップロヌドし、フォルダヌ\ARM\Device\Nordic\nrf51822\Board\pca10001\s110\ble_app_beacon



からプロゞェクトを開きたす。 点滅するLEDず同様にメモリカヌドを倉曎し、収集しおデバむスに曞き蟌みたす。



すべおが正垞に実行された堎合、LED0が点灯したす。これは、パケットが送信されおいるこずを瀺しおいたす。 iBeaconを衚瀺できるアプリケヌションをAndroidたたはiOSデバむスにむンストヌルし、ダりンロヌドしたした

ビヌコンスキャナヌ 。 デバむスのUUIDは゜ヌスコヌドの定数APP_BEACON_UUIDず䞀臎するため、これがビヌコンです。









原則ずしお、この情報は、BLEを迅速か぀非垞に安䟡に䜿甚するには十分です。 欠点ずしおは、時代遅れのKeil 4ず100 kHz以䞊の呚波数での䞍安定なプログラマヌ操䜜をサポヌトしたす。 開発環境でダりンロヌド゚ラヌが発生した堎合は、アクセス速床を50 kHz以䞋に䞋げおください。 プログラマヌが萜ちお、JLink.exeを実行するだけで元に戻すこずができる堎合がありたす。これはおそらく、元のクロヌンであるためです。



All Articles