STM8SをVersaloonで
今年の大型連休にふと思い立ち、ジャンク化しているSTM8S-Discoveryを引っ張り出してきた。このボードは、ターゲットCPUはSTM8S105C6でST-Linkが付いていて安価なボードだ。
ST-Link部分にはSTM32F103が乗っている。
ちょっと前に、ねむいさんの記事を参考にして、この部分を改造してSWD I/F用のVersaloon互換にして使っていた。
残った、STM8Sは使うあてもなくジャンク化していたのだが、何か動かしてみないともったいないお化けが出てきそうだ。
ということで、
コンパイラはSDCCが使える。ライタはVersaloonが使える、書き込みソフトはVersaloonに対応したvsprogというツールを使うことにした。
vsprogは以前にインストールした記憶はあるのだが、パソコンを変えてからインストールしていない。 バイナリがあったと記憶しているのだがVersaloonの本家サイトが無くなっていてドキュメントがない。 githubからソースを落としてきてmakeした。
ところが、vsprogでフラッシュが読み書きできない。
SWIMをサポートしていないと言われる。 でも、VersaloonとOpenOCDでstm32のデバッグができているのでVersaloonは動いているようだ。
STM8のフラッシュメモリの読み書きにはSWIMというインタフェースを使う。 SWIMが使えるのは、STM8x-Discoveryか純正ST-LinkかVersaloonだ。
STM32F0-DiscoveryやNucleo401のST-LINKはSWD専用になっているので使えない。
STM8S-DiscoveryのST-LinkはSWIM専用だ。 VersaloonはSWDにもSWIMにも対応しているというので改造したのだがSWIMが使えない。
Versaloon本家のサイトが閉じているようなので、ソースを読んでみることにした。 ヘッダファイルから読み始めると、だんだん思い出してきた。
dongle/firmware/Projects/Versaloon/GCC/makefile中のHW_BOARD=STM8SDiscoveryにしてmailするとファームウェアができて、それをJTAG-KEYそっくりさんでSTM8SDiscoveryのST-Link部分に書き込んだはず。
STM8SDiscovery.cfgを見ると、SWIMは0になっている。つまりこのファームウエアは対応していないということ。 orz
SWIMを1にしてmakeするとエラーがたくさん出る。 ソースを真面目に読まないといけないようだ。 サイトは閉じているしなあ。
STM8にはUARTから使えるbootloader機能があるのでUARTがあればファームウエアは書けるようだ。
- UM0560 STM8 bootloaderL
https://www.stmcu.jp/design/document/users_manual/52906/
en.CD00201192.pdf - AN2659 STM8 in-application programming (IAP) using a customized user-bootloader
https://www.stmcu.jp/design/document/application_note/52863/
en.CD00176595.pdf
ところが、bootloaderを有効にするためにはオプションバイトの値を書き換えなければならない。 オプションバイトを書き換えるにはSWIMで書き換えるしかないようだ。
ということで、ST-Linkを買うことにした。そっくりさんだけど。
Amazonで探すと同じような製品が沢山出てくる。その中で一番安いやつを注文した。
注文の翌日に発送にお知らせメールが来たが、5日~12日かかるという。 国内のストックではなく大陸から直接来るのか。
« 急ぎの仕事はないけど「残業しろ」 <相手の忖度力を期待しないで伝える> | トップページ | 失敗の科学 改善すべきは、人間の心理を考慮しないシステム »
「CPUボード」カテゴリの記事
- 久々の物欲(2022.05.21)
- stcgal <質問に答える>(2021.02.21)
- micro:bitで跳び上がると表示する名札 <ウケ狙い>(2020.11.18)
- micro:bit <BLEが乗った低価格マイコンボード>(2020.09.15)
- Google日本語モールス入力(2020.05.01)
« 急ぎの仕事はないけど「残業しろ」 <相手の忖度力を期待しないで伝える> | トップページ | 失敗の科学 改善すべきは、人間の心理を考慮しないシステム »
コメント