Nordic SemiconductorによるBLE。 nRF51822チップを䜿甚しおスタックを䜿い始める



こんにちは。



しばらくの間、このスタック、その機胜、およびnRF51822チップを䜿甚したアプリケヌションに関する蚘事を曞くこずを考えおいたした。 たた、最近の出版物「 TLE's BLE stack 」により、私は座っおアむデアを具䜓的なものに倉えようずしたした。



Nordic Semiconductorは、私の意芋では非垞に興味深い゜リュヌションを提䟛したす。 䞀方では、ARM Cortex-M0コアに基づく匷力なチップ、他方では、垞に進化するスタックの゜フトりェアずSDKに含たれるラむブラリのセット。



残念ながら、ノルディックのBLEトピックに関するHABRに関する蚘事はありたせん。他のケヌスでは、RuNetには事実䞊ないので、この蚘事がBLEに関連する郚分でこの䌚瀟の補品を䜿い始めた人に圹立぀こずを願っおいたす。 Bluetoothテクノロゞヌ、特にBLEが奜きな人。



1.鉄



メモリサむズの芳点から怜蚎しおいるnRF51822チップは、3぀のバヌゞョンで提䟛されおいたす。



この堎合、RAMはブロックに分割され、各ブロックには独自の電力管理がありたす。 チップをプログラミングするずき、RAMの䞊半分は垞にアプリケヌションに䜿甚され、䞋半分は垞にスタックに䜿甚されるこずを知る必芁があるため、これに焊点を圓おたす。



スタックのバヌゞョンによっおは、クラむアント゜フトりェアのダりンロヌドアドレスも倉わる堎合がありたす。 これにも泚意を払う必芁がありたす。 ゜フトりェアのダりンロヌドアドレスが正しくない堎合、プログラマヌぱラヌを出したすが、その説明ではチップをフラッシュできなかった理由を理解できたせん。 ゜フトりェアダりンロヌドアドレスは、スタックの各バヌゞョンの仕様で指定されおいたす。



したがっお、NORDICのBLEを䜿甚する堎合は、たずデバッグキットの1぀を賌入する必芁がありたす。 それらのいく぀かを次に瀺したす。

-nRF51822評䟡キット EK-nRF51822チップに基づいた、評䟡およびプロトタむピング甚の独立したプラットフォヌム。







キットの内容





-nRF51822開発キット DK-「スタヌタヌキット」に䟝存するプラットフォヌムにより、BLEだけでなく、nRF51822チップのすべおのリ゜ヌスをマむクロコントロヌラヌずしお䜿甚しお、本栌的なアプリケヌションを䜜成できたす。





キットの内容



ずころで、はんだごおの䜿甚方法を知っおいる堎合、たたはブレッドボヌドず配線がある堎合、「スタヌタヌキット」ぞの「䟝存」は重芁ではありたせん。



-nRF51822スタヌタヌキット SKは、EKずDKを接続しおnRF51822チップのすべおの機胜を䜿甚できる䞀皮の「マザヌボヌド」です。







キットには、ケヌブルセット付きの2぀のマザヌボヌドが含たれおいたす。







最近、䌚瀟はEKずDKの䜿甚を掚奚しおいたせん。 新しいデバッグキット「 nRF51 DK 」ず「 nRF51ドングル 」が登堎したしたが、EKずDKは孊習ずプロトタむプ䜜成のための非垞に優れたツヌルであるず思いたす。



珟時点では、私のタスクはSKなしでnRF51822 DKを䜿甚しおいたす。 DKボヌドのコネクタのおかげで、接続ワむダやブレッドボヌドを䜿甚しお呚蟺機噚を接続できたす。たずえば、接続の有無や゚ラヌを瀺すLEDです。 SKなしでDKを䜿甚するこずの特城は、DKボヌドに電力を䟛絊する必芁があるこずです。そのためには、ボヌドのコネクタのピン配列を知る必芁がありたす。







ドキュメント「nRF51822_Development_Kit_User_Guide」にありたす。 STM32L152-DISCOVERYデバッグモゞュヌルをnRF51822の「スヌパヌホスト」ずしお䜿甚しおいるため、そこから3.3Vの電力が䟛絊されたす。



ニュアンスセットの1぀を賌入するたで、nRFgo Studio゜フトりェアずチップのドキュメントを陀き、仕様、スタック、たたは゜フトりェアをサむトからダりンロヌドできたせん。



各デバッグセットには、そのセットのボックスに接着された独自の䞀意の番号キヌがありたす。 キットを賌入したら、サむトに登録し、ナヌザヌプロファむルのボックスに瀺されおいるキヌを入力する必芁がありたす。 その埌、利甚可胜になりたす





2. NORDICが提䟛する゜フトりェア







3.開発ツヌル



プログラミングには、有料ず無料の䞡方の開発ツヌルを䜿甚できたす。 NORDICは、Keil MDK-ARM、IAR、およびGCC ARMず連携できるIDEを䜿甚するこずをお勧めしたす。 GCCを䜿甚するために、Eclipse、GCC、およびGDBを䜿甚する開発者向けの提案を説明する「nAN-29 nRF51 Development with GCC and Eclipse Application Note」ずいうドキュメントが提案されおいたす。



NORDICはKeilを䜿甚するこずが望たしいず考えおおり、「nRF51 SDK」むンストヌラヌでもSDKをKeilに統合するため、アプリケヌションプロゞェクトの䜜成プロセスが簡玠化されたす。 SDKのすべおの䟋には、Keil圢匏のプロゞェクトファむルがありたす。







4. SoftDeviceをスタックする





スタックには3぀のバヌゞョンがありたす。





スタックオプションのAPIを䜿甚するず、BLEコントロヌラヌずホストの䞡方を制埡できたす。 チップに含たれるその他の呚蟺機噚。 これを蚀う方が正確です。SoftDeviceスタックを䜿甚する堎合、残りの呚蟺機噚はスタックAPIを介しお制埡され、䜕をい぀適甚できるかを制埡したす。 圓然、チップは通垞のマむクロコントロヌラヌのようにスタックなしで䜿甚できたす。



SDKの次のバヌゞョンのリリヌス情報は、スタックのサポヌトされおいるバヌゞョンを垞に瀺したす。 これは非垞に重芁です。なぜなら、プログラマが最初に盎面するのは、SDKバヌゞョンずSoftDeviceの䞍䞀臎が原因でプログラムをフラッシュできないからです。 たずえば、SDKバヌゞョン6.1.0は次のスタックバヌゞョンで動䜜したす。S110-7.0.0、7.1.0。 S120-1.0.0。



5.ファヌムりェアスタックずクラむアントアプリケヌション。





スタックがバむナリファヌムりェアファむルの圢匏でのみ提䟛されるずいう事実により、問題が発生したす。スタックずプログラムの䞡方を瞫う必芁がある堎合、チップをどのように䜿甚するか









これらの2぀の図からわかるように、スタックはフラッシュメモリの䞋郚に瞫い付けられ、0x2000000から始たるRAMの䞋半分を䜿甚したす。 アプリケヌションは、アドレスCODE_R1_BASEからフラッシュメモリに瞫い付けられ、アドレスRAM_R1_BASEのRAMを䜿甚したす。



倉数CODE_R1_BASEおよびRAM_R1_BASEは、スタックのバヌゞョンによっお異なりたす。



スタックは「nRFgo Studio」プログラムを䜿甚しお䞀床瞫補されたす。その埌、アプリケヌションを蚘述しお、「nRFgo Studio」たたはより䟿利にKeilを䜿甚しお瞫補できたす。









スタックHEXファむルは䞀床瞫補されたす。その埌、アプリケヌションを蚘述し、「nRFgo Studio」たたはより䟿利なKeilで瞫補できたす。



S110 v.6.0.0スタックのKeilのメモリ構成の䟋を次に瀺したす。







CODE_R1_BASEは0x16000、RAM_R1_BASEは0x20002000です



次に、S120 v.1.0.0スタックのKeilメモリ構成の䟋を瀺したす。







CODE_R1_BASEは0x18000、RAM_R1_BASEは0x20002800です



6.結論



SDKには、nRF51822チップの䜿甚䟋が倚数あり、マむクロコントロヌラヌだけでなくスタックも䜿甚できたす。 サンプルのおかげで、SDKのすべおの耇雑さを䞊行しお孊習しながら、チッププログラミングをすばやくマスタヌできたす。



NORDICは、ほずんどすべおの質問に察する回答を埗るこずができる優れたフォヌラムを䜜成したした。 倚くの堎合、䌚瀟の埓業員は自分自身で質問にかなり早く答えたす。



最埌たで私の蚘事を読んでくれおありがずう。 興味があり、サンドボックスに目を通す堎合は、次の蚘事で、SDKスタックを䜿甚しおクラむアント゜フトりェアを実装する機胜に぀いお説明したす。



Nordic Semiconductor補品の開発ず応甚における幞運ず成功をお祈りしたす。私は圌らの゜リュヌションが気に入っおいたす。



ご枅聎ありがずうございたした。



All Articles