I2C 送信を用いてキャラクタ表示に挑戦!(その2)

ソフトの準備とLCD制御

前回はI2Cを使ったLCDの表示の前編として、I2C通信の概要とハードウェアの準備までの説明をしました。今回は、ソフトウェア側の準備をし、実際にI2CによるLCD制御を行うところまでを作ってみましょう。

 

前々回のLEDの点灯の回では、NordicSemiconductor社から提供されているSDKのサンプルコードを修正する形で進めましたので、今回も同じ要領で進めていくことにします。ただし、今回は1つ新しいことをします。

それはnRF52832(ISP1507-AX)のサンプルコードを、nRF52810(ISP1507-AL)で動かせるようにすること」です。

 

NordicSemiconductor社から提供されているSDKのサンプルコードのほとんどは、nRF52832(ISP1507-AX)用のサンプルであり、nRF52810(ISP1507-AL)用のサンプルコードはごく一部しかありません。そのため、膨大に用意されているnRF52832(ISP1507-AX)用のサンプルコードを有効に使うためには、nRF52832(ISP1507-AX)のコードをnRF52810(ISP1507-AL)に変換する方法を把握することが必須となります(⌐▨_▨) フムフム

 

nRF52810(ISP1507-AL)nRF52832(ISP1507-AX)に比べて、機能毎の個数・メモリ容量・ピン数等が少なくなっています(下表参照)が、nRF52832(ISP1507-AX)用に作成されたプログラムを一部修正することで、nRF52810(ISP1507-AL)で動かすことができるようになります。

f:id:microworm:20200202222227j:plain

  

ちなみに、NordicSemiconductor社から提供されているドキュメントには、その変換方法の概要が示されています(参考: https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.0.0%2Fnrf52810_user_guide.html 下図にキャプチャを示します)
短縮したURLはこちら https://00m.in/dsDZf

しかし、その方法はあくまでも概要であり、使用しているIDE(統合開発環境)やサンプルコードの種類による詳細までは書かれていません。

f:id:microworm:20200202222720j:plain

 

今回は、この記事において使用しているSeggerEmbeddedStudioを対象として、nRF52832(ISP1507-AX)用のサンプルコードに対しnRF52810(ISP1507-AL)で動かすように修正し、かつLCDを動作させるように変更するまでの手順を示していきます。しばらくは、ファイルのコピーや書き換えなど、細かい作業が続きますが、頑張って作業していきましょう。 がんばろぅ!٩( 'ω' )و おー!

では、順番に説明していくょ

 

今回ベースとするサンプルコードはtwi_sensorというものです。まずは、ベースとなる「twi_sensor」サンプルコードのフォルダ全体を同じフォルダにコピーします。Windowsのエクスプローラで「C:\nRF5_SDK_15.3.0_59ac345\examples\peripheral」のフォルダを開き、twi_sensorフォルダを同じフォルダにコピーしましょう(フォルダを選択し、Ctrl+C→Ctrl+Vを立て続けに押す)。コピーしたら、コピーした先のフォルダ名を「twi_sensor - コピー」から「twi_aqm1602」に変更しましょう。

f:id:microworm:20200202224415j:plain

 

次に、先ほど名前を変更したフォルダ「twi_aqm1602」を開き、同じ手順で「pca10040」フォルダをコピーしてください。コピーしたフォルダ「pca10040 - コピー」の名前を「pca10040e」に変更しましょう。

 

f:id:microworm:20200202224510j:plain

 

次に、SeggerEmbededStudio用の設定ファイルの変更をします。これは、コンパイルおよびリンクを行う際におけるnRF52832(ISP1507-AX)のハードウェア的な定義などが書かれているファイルです。このファイルを変更し、nRF52832(ISP1507-AX)のプログラムがnRF52810(ISP1507-AL)で動くようにしてきましょう。

 

では、ご自身のPCに入っているテキストエディタで,

C:\nRF5_SDK_15.3.0_59ac345\examples\peripheral\twi_aqm1602\pca10040e\blank\ses」のフォルダに有る「twi_sensor_pca10040.emProject」というファイルを開いてください。開くときは、ダブルクリックではなく、テキストエディタを開いてから、そこにファイルをドロップして開きましょう。

 

なお、テキストエディタをお持ちでない場合は、サクラエディタやnotepad++など、フリーウェアのテキストエディタがありますので、それをダウンロードしてインストールしてください。テキストエディタは、プログラムを組むときや、テキストファイルを編集する際に便利なツールですので、ぜひインストールしておきましょう。
 \_(・ω・`)コレおすすめ!

f:id:microworm:20200202224910j:plain

ファイルを開くと、XML形式で示された各種設定が書かれたテキストが現れます。このテキストに対し、以下に示す表の内容に従い書き換えてください。書き換えている内容は浮動小数点演算に使用するデバイス指定(nRF52810(ISP1507-AL)は浮動小数点演算チップがないので、ソフトウェアライブラリによる演算となります)、メモリマップの変更(スタック、ヒープサイズ含む)、使用するデバイスの定義名、セクション定義、SeggerEmbeddedStudioで使用するデバイス定義ファイルなどになります。

 

お、「書き換える行番号」は「実際に見えている行数」ではなく、「テキストエディタ上での行番号(すなわち改行コードまでを1行とする数え方)」で有ることに注意してくださいね。

f:id:microworm:20200202225218j:plain

このXMLファイルを書き換える作業は、nRF52832(ISP1507-AX)のサンプルプログラムを、nRF52810(ISP1507-AL)で動かすためのキーとなります。本来であれば、SeggerEmbeddedStudio上で設定を変えるのが望ましいのですが、画面上での設定が細かすぎるきらいがあったため、今回はXMLファイルを直接書き換えることにしました。

 

さて、次の記事(その3)からは実際のプログラムの修正に入ってきます。
ご期待ください!