こんにちはコハペペです。やっとSDカードからBMPデータを読み込んで、LEDのドットマトリックスにスクロール表示ができました。
mbedマイコンでSDカードにアクセスするにはSDFileSystemというライブラリーを使うのですが、LPC1114FN28はメモリーが小さいためか、コンパイルが通っても実行するとファイルをオープンする時にマイコンがハングアップしてしまう場合があるんです。
今回、SLX-8100の制御プログラムと、BMPを読み込むプログラムを別々に書いて、それぞれ個別に動作をすることはできていました。でもマージするとコンパイルは通ってもfopenでハングアップしてしまいました。
そんなにたいした量のコードでは無いのですが、あれこれ削ってやってみましたがダメでした。
結局、SDカードからBMPを読み取るマイコンと、ドットマトリックスLEDモジュールを制御するマイコンとの2つに分けることにして、表示データをシリアルで送ることにしました。
LPC1114FN28でSDFileSystemを使ってファイルのオープンとクローズを繰り返すと数回から10数回でマイコンがハングアップしてしまいます。
fopen(fp);でファイルをオープンして、fclose(fp);でクローズした後に、free(fp);を付け加えるとだいぶマシになります。
回路はこんな感じになりました。
SDカードを読み込むマイコン(左側)がハングアップアップしても復帰できるように、SD カード側のマイコンとSDカードの電源を、LED制御用のマイコン(右側)からON,OFFできるようにしました。SDカード側のマイコンからシリアルでデータが来なくなったら、LED側のマイコンから電源を切って入れ直します。
マイコンのリセットだけで済めば楽だったのですが、リセット後にSDカードとの通信に失敗し読み込みができない場合があったので、電源を切ってしまうという荒技にしました。
プログラムと回路が決まったので、次は基板に半田付けとか組み立て作業です。
コメント