Kinetis KEシリーズを使う

先月に引き続き温め過ぎて腐っちゃったシリーズ第2弾いきます!



元はFreeScle社製でしたがNxPに喰われさらにQualcommに丸ごと喰われてしまう
予定ですが+5V動作可能なARMマイコン、Kinetis-Eシリーズは現在も順調に展開
されております。
(ていうか今のラインナップ5Vで168MHzで動くM4コア製品まで拡張されてるのか…)

今回はその最初期にリリースされたKE02シリーズとその評価ボード(以下FRDM板)
を紹介させてもらいます。
ボードの背後でいないさんが何かを主張していますが気にしないでください★


もともとノイズの多い環境でノイズ耐量を得る目的として開発されたマイコン故に+3.3V
動作はもちろんの事+5Vでも動きますがそれ故に動作周波数は当時はM0+コアの中でも
特に低く、AVRと同じ20MHz動作が上限となっています。
内蔵Flash/SRAMも其々最大64kB/4kBとささやかものとなっています。


当時はまだFreeScale預かりだったのでサンプルコードもKLシリーズとかよりもさらに
適当な奴しかなく、Keilのu'Visionに収録されたサンプルコードやヘッダファイルを
参考にGCC向けにプロジェクトを落とし込んでみました。


基本的なMCUアーキテクチャは従来のKinetisと全く同じなので不用意な書き換えで
すぐにBricked
ってしまう問題も健在です☠


KEシリーズのフラッシュ書き込み機構は従来とは違い、レジスタ構成がまったく
別のものになっているのでOpenOCDのフラッシュ書き込み用のソースは他のKinetis
シリーズとは別のものになっています。
ねむいさん評価報告やっただけだけですけどなんでか知らなんのですけどソースの
作者名に名前連ねてもらっています。ありがとうございます。

> "C:¥Devz¥Coreutils¥bin¥make.exe" program
openocd -s C:/Devz/ARM/OCD/tcl -f interface/jlink_swd.cfg -f target/kexx_swd_flash.cfg -c "mt_flash main.elf"
Open On-Chip Debugger 0.10.0+dev-00161-g1725abc-dirty (2017-06-23-00:33)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
swd
Info : add flash_bank kinetis_ke kexx.pflash
cortex_m reset_config sysresetreq
none separate
adapter speed: 1000 kHz
Info : No device selected, using first device.
Info : J-Link OpenSDA 2 compiled Oct 13 2015 12:10:56
Info : Hardware version: 1.00
Info : VTarget = 3.300 V
Info : clock speed 1000 kHz
Info : SWD DPIDR 0x0bc11477
Error: MDM: failed to read ID register
Error: MDM: Failed to check security status of the MCU. Cannot proceed further
in procedure 'init' called at file "C:/Devz/ARM/OCD/tcl/target/kexx_swd_flash.cfg", line 125
in procedure 'ocd_bouncer'

Info : SWD DPIDR 0x0bc11477
Info : kexx.cpu: hardware has 2 breakpoints, 2 watchpoints
Info : MDM: Chip is unsecured. Continuing.
target halted due to debug-request, current mode: Thread
xPSR: 0x21000000 pc: 0x000000cc msp: 0x20000c00
Info : Watchdog stopped
auto erase enabled
Info : KE02 sub-family
Info : Flash clock ready
Warn : flash configuration field erased, please reset the device
Info : Flash clock ready
Info : Kinetis KE: FLASH Write ...
wrote 8192 bytes from file main.elf in 0.734375s (10.894 KiB/s)
verified 7936 bytes in 0.093750s (82.667 KiB/s)
Info : MDM: Chip is unsecured. Continuing.
shutdown command invoked

> Process Exit Code: 0
> Time Taken: 00:01
OpenOCDでフラッシュ書き込みした時のログはこんな感じです。

かつて幾つかのKinetisの品種では通常のreset initで繋ぎに行くとウォッチドッグ
リセットが発動し、上手くhaltしないと言う問題があってちょっとトリッキーなcfgを
組む必要があったのですが最近のコミットでソースコードそのものとcfgとで連携して
ひとまずウォッチドッグを止めに行く措置が取られ、ほぼすべてのKinetisの品種で
安定して書き込み・デバッグができるようになりました。

ちなみにFlexRAMやFlexNVMを設定している場合でもコケないで正しく書き込みが
出来るようにも修正されています。数年前はかなり危ない実装だったんスね…

FRDM板の標準デバッガはOpenSDAですがはっきり言ってあまり使えないので速攻
J-Linkに差し替えてしまいましょう!上記ログもJ-Linkで繋ぎにいったものとなって
います!


JLinkのファームに書き換えるとmbed対応済の証であるマスストレージが見えます。
ちゃんとドライブラベルもJLinkになってて芸が細かいですね。使いませんけど。


ちなみにねむいさんのこさえたプログラムはLED点滅をしながら…


FRDM板上にある速度センサの値をprintf関数で返すという評価板の機能フルに利用
したものとなっております☆
尤も冒頭で述べたとおりこのボードで使用されているKE02ZはKEシリーズの最初期
の品種でコアクロック上限が20MHzまでとなるのでUARTのボーレートもねむいさん
標準の230400bpsではさすがに無理で115200bpsに落としています。

最初購入した当初はノイズ云々はサブ的なものでホントは8bitな+5Vマイコンの
置き換え狙いかと思っていましたが2017年現在では168MHzで動くCortex-M4の
品種にも拡大されておりノイズに厳しい環境下での使用をマジで狙ったものと
なっているようです。私も興味が出てきましたのでM4コアの奴が手に入ったら
またレポートさせて頂きます!

Go to top of page