- 公開日:2024年09月27日
- | 更新日:2024年09月30日
初めてのデモ機製作①
- ライター:竹之木進
- マイコン
はじめに
こんにちは。マクニカのFAEの竹之木進です。
今回は私が初めて携わったデモ機について、仕様決めから動作確認など実際に行ったことを記事にしました。
デモ機について
今回、SRAMのバックアップ回路をGPAKで実現するデモ機の作成を行います。
私が担当したところはSRAMに格納するデータを作成するアプリケーションになります。
アプリケーション自体は自由に決めていいとのことでしたが、バックアップすることに意味があるかつ視覚的にわかりやすいということで
ガスセンサーを用いて空気質を測定し、LCDに表示する装置を作成することにしました。
仕様書作成
製作に当たって、まず仕様書の作成を行いました。
システムの仕様書は作成経験がありますが、ハードからソフトまですべての仕様書作成は初めてになります。
仕様を明確に定義することで、今後の製作で後戻りの発生を抑制することができます。
今回は概要とブロック図、回路概略、状態遷移図をご紹介します。
デモ機概要
防虫・消臭スプレーの自動散布装置を模擬したデモ機
デモ機仕様
空気質を検知する機能
⇒ZMOD4450を検討
⇒デモ用にアルコールを検知するためZMOD4410を採用
バックアップ機能
電源断発生時、SRAMのデータをバックアップ電源を用いて保持する機能
⇒SRAMに新製品のRMLV1616A-Uを採用
⇒GPAKにSLG46810を採用
マイコンの選定
SRAMにデータを保持するため外部バス機能がある製品
ZMODを用いるため、サンプルコードがある製品を選定
⇒RA6M4を採用
LCD表示
測定値のグラフと点灯回数表示機能
⇒LS010B7DH01を採用
ブロック図
RA6M4でガスセンサー、LCDの制御
メイン電源の断電時にバックアップ電源を用いてSRAMに電源の供給、GPAKを使用してCSの制御を行う
GPAKでは電圧監視を行い、電圧の値によってMCUの制御も行います。
回路概略
状態遷移図
メイン関数の状態遷移図になります。
ここでは、主にLCDの制御を行っています。
割り込み処理になります。
割り込み処理にはガスセンサーの測定のルーチンと初期化ルーチンがあります。
メイン電源の遮断時の処理になります。
GPAKの電源監視を用いて各種処理を行います。
動作確認
RA6M4の評価ボードとZMOD4410、LCDの動作確認をおこないました。
1.ガスセンサ接続
ガスセンサは前回記載した記事「EK-RA6M3評価ボードを用いたZMOD4410の評価」のとおりに接続、プログラムの作成を行いました。
2.LCDの接続
ガスセンサの検証が終了し、LCD表示の動作確認を行いました。
私自身LCDを触るのが初めてということで、まずは画面に線を引くことを目標に行いました。
データシートを確認したところ
使用する信号がシリアルクロック・シリアル入力信号・チップセレクト信号・ディスプレイON信号ということでしたので
Simple SPIでシリアル通信を行い、チップセレクト信号とディスプレイON信号はGPIOでコントロールすることにしました。
引用:LS027B4DH01.pdf (akizukidenshi.com)
通信方法を決め、まずLCDに点線を表示させることを目標に実施しました。
表示例
まず、回路の概略を作成しました。
画像のようにオシロスコープで波形を確認しながらデータを送ります。
LCDに送る波形をデータシートのタイミング図を参照しながら送信処理を記述したつもりでしたが、表示に失敗してしまいました。
送っていたデータが下図になります。
黄:クロック、緑:データ、桃:DISP、青:CS
まず、原因として
データが想定していないところでhighになっている(緑色の最初のhigh)と考えましたが、
LCDからみて関係ない信号(クロック(黄)の先頭の立ち上がりはCS(青)の外、データ(緑)の先頭の立ち上がりはクロック(黄)外)ということで無視できる可能性が高く、
表示されないのはLCD側の問題ではないかと考えました。
先輩社員にもデータシートを見ていただき確認したところなんと配線が逆でした。。
と、いうのも下図のようにコネクタに番号が振ってあり、コネクタの番号を基準にし信号の配線を行っておりました。
ところがよくデータシート確認するとLCD表面から見た場合、端子番号が左から10⇒1となっており、コネクタに記載されている数字と逆だったのです。(10ほぼつぶれて見えてませんが。。)
引用:LS027B4DH01.pdf (akizukidenshi.com)AA
気を取り直して配線を正常に接続し直してデータを送信してみると。。
想定通り、点線を引くことができました!
ここまでで、LCDの動作確認は完了いたしました。
次回の記事はデモアプリケーションの作成になります!