BitTrandOneのSi4735(DSPラジオモジュール)をLPC1114FN28でコントロールすることが出来ました。
LPC1114FN2はトランジスタ技術(2012年10月、12月号)で詳しく紹介されてとはいえ
使いこなしに苦労したので、苦労内容を紹介します。
Si4735(DSPラジオモジュール)は、次のバンドが受信できるラジオモジュールです。
FM:64-108MHz
AM:520-1710KHz
SW:2.3-26.1MHz
LW:153-279KHz
AM:520-1710KHz
SW:2.3-26.1MHz
LW:153-279KHz
Si4735のコントロールでは、8bitマイコンで十分なのですが、
LPC1114FN28がトランジスタ技術(2012年10月、12月号)で詳しく紹介されていたのと、
LPC1114FN28の足(端子)がDIPピッチで工作しやすい。
かつ安価(110円)なので、このマイコンでコントロールしてみました。
LPC1114FN28がトランジスタ技術(2012年10月、12月号)で詳しく紹介されていたのと、
LPC1114FN28の足(端子)がDIPピッチで工作しやすい。
かつ安価(110円)なので、このマイコンでコントロールしてみました。
開発環境
OS:windows7
ビルド:LPCXpresso Ver5.2.6
マイコンへの書込:Flash Magic
デバッグ:UART+Flash Magicのターミナルウィンドへのprintfデバッグ
ビルド:LPCXpresso Ver5.2.6
マイコンへの書込:Flash Magic
デバッグ:UART+Flash Magicのターミナルウィンドへのprintfデバッグ
目 次
1.ビルド(リンク)エラー 「not fit in region `MFlash32'」
事象:
ビルド中にコンパイル工程が終了し、リンク工程で次のメッセージが表示され、ビルドが停止してしまう
ld.exe: XXX.axf section `.data' will not fit in region `MFlash32'
または、
ld.exe: XXX.axf section `.txt' will not fit in region `MFlash32'
または、
ld.exe: XXX.axf section `.txt' will not fit in region `MFlash32'
LPCXpressをActivacionしていないため、ソースコードのDebug limit: 8kを超過したのが原因
次の手順でActivationするとDebug limitが128kに拡張されます
次の手順でActivationするとDebug limitが128kに拡張されます
-
http://www.lpcware.com/を開きユーザ登録を済ませておく
- LPCXpress画面から「Help -> Product activacion -> display licence tyepe... 」の順でウィンドを開きLicence typeを確認
- 同様に、「Help -> Product activacion -> Create serial number and activate... 」の順でウィンドを開きserial numberを表示させ、serial numberをクリップボードにコピーしておく
- http://lpcware.com/lpcxpresso/activate
ページを開きログオンするすると、
「LPCXpresso Key Activation」画面が開く
- 「LPCXpresso Key Activation」画面の「serial number」欄にクリップボードからserial numberをペーストし、「Register LPCXpresso」ボタンをクリックする
- 「LPCXpresso Key Activation」画面の「LPCXpresso Activation key;」にActivation keyが表示されるので、Activation keyをクリップボードにコピーしておく
- 同様に、「Help -> Product activacion -> Product infomation -> Enter Activation」の順でウィンドを開き、クリップボードからActivation Keyをペーストし、登録する
2.UARTで通信速度が正しく設定できない
事象:
プログラムで通信速度を9600bit/sに指定し、PCからLPC1114FN28に送られた文字をPCに送り返すプログラムを作成し、Flash Magicのターミナルウィンドで通信速度を9600bit/sに指定しプログラムを実行したときに次の事象が発生
- PC -> LPC1114FN28へは、9600bit/sで通信できている。
- LPC1114FN28 -> PCへの通信が文字化けする。
ただし、Flash Magicのターミナルウィンドで通信速度を9600bit/s以上に設定すると双方向とも通信が文字化けせず成功する
原因:
今回作成したモジュールは、あまり高精度を要しないので、LPC1114FN28の内部クロックで動作させた
LPCXpressでインポートしたCMSISv2p00_LPC11xxライブラリは、LPC1114FN28が外部クロックで動作する設定になっており、内部クロックで動作するように、CMSISv2p00_LPC11xxライブラリを変更する必要がある
手順は次のとおり
LPCXpressでインポートしたCMSISv2p00_LPC11xxライブラリは、LPC1114FN28が外部クロックで動作する設定になっており、内部クロックで動作するように、CMSISv2p00_LPC11xxライブラリを変更する必要がある
手順は次のとおり
- LPCXpressでインポートしたプロジェクト「CMSISv2p00_LPC11xx」を開く
- 「src」 -> 「system_LPC11xx.c」を開く
- 128行目ぐらいの定義を変更
旧:#define SYSPLLCLKSEL_Val 0x00000001
新:#define SYSPLLCLKSEL_Val 0x00000000 - 再ビルド
3.ビルド(リンク)エラー「no CRP_WORD provided within application」
事象:
ビルドのリンク工程で次のメッセージが表示され、ビルドが停止してしまう
Linker CRP Enabled, but no CRP_WORD provided within application
色々とwebで原因を探してみたのですが、よくわからない
次の一行を何れかのソースコードに追加すれば解決されます
複数のソースコードに追加するとエラーになるので注意が必要
次の一行を何れかのソースコードに追加すれば解決されます
複数のソースコードに追加するとエラーになるので注意が必要
__CRP const unsigned int CRP_WORD = CRP_NO_CRP ;
※コメント投稿者のブログIDはブログ作成者のみに通知されます