JJ1UBA_nisiの手作りブログ

オーディオアンプ、スピーカ、マイコンを中心に色々なものを手作りしています。
2019年からアマチュア無線も始めました。

Si4735(DSPラジオモジュール)をLPC1114FN28でコントロール

2013-09-27 09:56:09 | プログラミング

BitTrandOneのSi4735(DSPラジオモジュール)をLPC1114FN28でコントロールすることが出来ました。

LPC1114FN2はトランジスタ技術(2012年10月、12月号)で詳しく紹介されてとはいえ
使いこなしに苦労したので、苦労内容を紹介します。
Si4735(DSPラジオモジュール)は、次のバンドが受信できるラジオモジュールです。
FM:64-108MHz
AM:520-1710KHz
SW:2.3-26.1MHz
LW:153-279KHz

LPC1114FN28は、低消費電力の32bitマイコンです。
Si4735のコントロールでは、8bitマイコンで十分なのですが、
LPC1114FN28がトランジスタ技術(2012年10月、12月号)で詳しく紹介されていたのと、
LPC1114FN28の足(端子)がDIPピッチで工作しやすい。
かつ安価(110円)なので、このマイコンでコントロールしてみました。



開発環境
OS:windows7
ビルド: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'

原因:
LPCXpressをActivacionしていないため、ソースコードのDebug limit: 8kを超過したのが原因
次の手順で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」を開く

  • 「src」 ->  「system_LPC11xx.c」を開く

  • 128行目ぐらいの定義を変更
      旧:#define SYSPLLCLKSEL_Val 0x00000001
      新:#define SYSPLLCLKSEL_Val 0x00000000

  • 再ビルド
参考URL:Juggler You日記さん


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 ;


最新の画像もっと見る

コメントを投稿