2022年11月28日月曜日

TOPPERS/ASP - MSP430版 その7

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


デバッグ・シリアル出力の問題

さて、TOPPERS/ASPのMSP430版の説明は全て書き終えたつもりですが、どうしても納得行かない点が一つだけ残っています。

気が付いている方は慧眼でいらっしゃる。

サンプルプログラムの実行中にTeraTermへ出力されるメッセージの出方がどうも気に入らないのです。

スムーズじゃないサンプルプログラムの出力


他のターゲットでは「task1 is running...」が一行ずつスムーズに出力されるのに対し、今回の評価ボード「MSP-EXP430F5529LP」にTOPPERSを載せた場合に、これが何故か二行ずつ出力されるのです。

ダラダラっ、ダラダラっと…。

気持ち悪いです。

最初はOSに実装したシリアル通信ドライバのバグかと思って修正を試みましたが、特に悪い点は見つからず、ドライバの問題ではないと結論付けました。

その証拠に…。

サンプルプログラムが動作している最中にプログラムを停止させます。

プログラムの停止ボタン


すると、ターゲットはリセットに入り、フラッシュROMに書き込まれたプログラム、すなわちサンプルプログラムをまた最初から実行します。

その際の出力メッセージはちゃんと「task1 is running...」が一行ずつスムーズに出力されます。


何故でしょう…?


今回の評価ボード「MSP-EXP430F5529LP」はデバッガを積んでいます。

このデバッガは「eZ-FET lite」といって、その正体はデバッガの機能をプログラミングされた「MSP430F5528」という型番の、これまたMSP430マイコンです。

ナナメに付いている石がそれです。

(メインCPUと1文字違いの型番っていうのも、なんだかなぁ…。)

eZ-FET lite


で、この「eZ-FET lite」のMSP430マイコン、デバッガのお仕事の他にUSB/シリアル通信変換機能をも司っているようです。

もしかして、出力メッセージがスムーズじゃないのは、デバッガの機能とUSB/シリアル通信変換を同時に行っているため、処理が一杯一杯になっているのでは?

であるならば、少なくともUSB/シリアル通信変換は「eZ-FET lite」にはやらせず、別の手段で代用してみよう、と思いました。

幸いにして、以下のように「eZ-FET lite」の脇にメインCPUからのシリアル信号(RXDとTXD)が出ています。

ジャンパーピン


この部分のジャンパーピンを外して「eZ-FET lite」をUSB/シリアル通信変換から開放してあげましょう。

そして、以下のような市販のUSB/シリアル通信変換ケーブルを用意します。

市販のUSB/シリアル通信変換ケーブル


このケーブルをジャンパーピンを外した「MSP-EXP430F5529LP」のシリアル信号(RXDとTXD)と接続します。

GNDは適当な所から引っ張ってきましょう。

「MSP-EXP430F5529LP」側の配線


シリアルの信号を横から掻っさらう感じですね。

市販のUSB/シリアル通信変換ケーブル側の配線


こんな感じ。

評価ボードとケーブルの接続


さて、市販のUSB/シリアル通信変換ケーブルをパソコンに接続し、TeraTermの接続ポートをこのケーブルのものに変更して、サンプルプログラムを実行してみると…。

スムーズに「task1 is running...」が一行ずつ出力されるじゃありませんか!

スムーズなサンプルプログラムの出力


推測通り、評価ボード「MSP-EXP430F5529LP」に内蔵されている「eZ-FET lite」は、非力なマイコンで処理を行っているため、負荷がかかるとシリアル出力の処理落ちが発生することが分かりました。

まあ、タダで付いてくるデバッガだから文句は言えませんし、ただデバッグメッセージを表示したいだけなら何もスムーズでなくて構いません。

何より肝心のデバッグ機能に問題が出るわけではないので良しとしましょうか!

…バグだと思って、ちょっと焦ったじゃないか!


<終わり>

0 件のコメント:

コメントを投稿

TOPPERS/ASP - ML62Q1000版 その1

TOPPERS/ASP - ML62Q1000版 概要 以前、 このページ で書かせてもらいました。 ラピステクノロジー社のマイコン「 ML62Q1000 」です。 結局仕事では使えなかったので、ここでの公開となりました。 オリジナル「nX-U16/100」コアの16bit RI...