2415020_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2415020_ja-JP

2415020_ja-JP

ROMブートローダーのWriteMemoryコマンドのCRC16計算

現在、別のマイコンとKL17内蔵のUART ROMブートローダーを使ってKL17のマイクロコントローラをプログラムしようとしています。少なくとも紙の上では、pingと消去は完了しましたが、KL17へのデータ書き込みに苦戦しています。データシートの例(43ページ)には、これらのバイト(CRC16バイトとメモリ書き込みコマンドパケットを除くフレーミングパケット)について、次のように記載されています。

0x5A, 0xA4, 0x0C, 0x00, 0x04, 0x00 , 0x00, 0x02, 0x00, 0x04, 0x00, 0x20, 0x64, 0x00, 0x00, 0x00

CRC16バイトは0x06 0x5Aになります。しかし、27ページに記載されているCRC16アルゴリズムでは、私の環境では0x2b 0x56が出力されます。また、CRC16の計算方法のさまざまなバリエーションを含む様々なCRC16カリキュレータをオンラインで試しましたが、どれも出0x06 0x5Aはありませんでした。

Noay_0-1790003799652.pngNoay_0-1790003799652.png


私の推測では、計算に含めるべきバイトが欠けているのかもしれません(どのバイトかは分かりません。なぜなら、その後のデータパケットはすべてそれぞれCRC16バイトが割り当てられているからです)。あるいは誰かがデータシートを誤ったのかもしれません(これもまたKL17サブファミリ参照マニュアルにまさに同じ例なので可能性は低いです)。

Re: Rom Bootloader WriteMemory Command CRC16 calculation

こんにちは、 @Noay さん。

投稿ありがとうございます。リファレンス・マニュアルの「0x06 0x5A」値は誤りで、おそらくドキュメントの問題だと思います。ご提供いただいた情報に基づくと、CRC計算結果の「0x2B 0x56」は正しいようです。

blhostツールを使ってブートローダーコマンドのデバッグは可能です。パラメータ「-d」を指定すると、ホストとターゲット間のすべての通信プロセスが提供されます。
KL27ボードでこの機能を試してみました。下のスクリーンショットをご覧ください。

Celeste_Liu_0-1790136918473.png

KL17のEVBボードは入手できません。同じ方法をKL17デバイスで試してみて、どんな結果が得られるか試してみませんか?

ドキュメントの誤りをお詫びします。この件を社内チームと共有し、それに応じて文書を更新するよう提案します。

BR

セレステ


Tags (1)
No ratings
Version history
Last update:
Thursday
Updated by: