編集履歴一覧に戻る
yokoのアイコン画像

yoko が 2022年12月16日01時24分13秒 に編集

初版

タイトルの変更

+

STM8S-DiscoveryでLチカする

タグの変更

+

STM8

+

マイコン

+

Lチカ

記事種類の変更

+

セットアップや使用方法

Lチカの変更

Lチカが設定されました

本文の変更

+

秋葉原某所でSTM8マイコンの評価ボードを発見。安かったので買った。 ![695円のDiscovery評価ボード](https://camo.elchika.com/2911049fff1250dc37c1161f54aa921642270dc7/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f65333462633130392d623339662d343264662d623833362d6239653762356465346561612f35383531313237392d613534372d346337322d396338652d326361393763646665323366/) パッケージ裏のSystem Requirementsのところに  *Windows PC (2000, XP, Vista)* と書かれており、なかなか味わい深い ### ボード所感 - ST-LinkにSTM32F103CBが載ってる。こっち目当てで買うのアリでは? - この集積度を2層基板で実現していてびっくり - 下半身にユニバーサル基板が実装されていて、評価ボードとしての自覚が感じ取れる。 - 静電容量式のタッチセンサが実装されていて、それを触る度にLEDの点滅パターンが変化するというデモプログラムが書き込まれているらしい。動かしてみると面白い。 ### 環境構築 今まで色んな環境を構築したけど群を抜いて大変だった https://qiita.com/kotetsu_yama/items/97c8020f6ffd980d710b 基本的にこの記事に従って進めた。手元環境はWindows10(64bit)。 まず、STMicroelectronicsからST Visual Developer (STVD)というソフトウェアをダウンロードする。そのためにユーザー登録が必要なんだけど、なぜか名前のみならず住所・電話番号まで入力させられて精神的に消耗した。しかも1回やっても本登録メールが届かなくて2回も入力させられた。インストール自体はすんなりできたかな。 次に、COSMIC STM8というCコンパイラをダウンロードする。これはSTMicroelectronicsとは別の怪しげな見た目のサイトからダウンロードさせられる。こっちにもユーザー登録が必要だったが、適当で良さそうな感じだった。STVDもそうだが、古いからかインストーラのUIが洗練されてなくて不安な気持ちにさせられる。 インストールで詰まる。記事では出てくることになっているアクティベーション用のウインドウが出てこなくて先に進めない。代わりに変なテキストファイルがメモ帳で表示されてよく分からなかった。色々調べた挙げ句本当に分からなくなって、諦めてメモ帳のやつを閉じたら目当てのウィンドウが出てきた。 さらに、ライセンスファイルが添付されたメールが届くはずなのに届かない。何回かチャレンジしても全然届かなくて、ふと迷惑メールのフォルダを見たら大量にライセンスメールが届いていた。 次に、コンパイラとSTVDのリンクをとる作業をやらされたが、これがうまくいっていなかったっぽくて後々苦労する。 その次は変なドライバをインストールさせられた。ST-Linkのやつらしい。 その次は標準ライブラリを入手させられた。C:直下にぶち込んだ。 ### Lチカに挑戦 ここまで来てようやくマイコン開発っぽい作業が始まる。STVDのプロジェクトフォルダを作成、STVDを立ち上げて開こうとしたが、拒否されてしまった。STVDを管理者権限で立ち上げ直して事なきを得た。 STM8S105を選択して記事に載ってるLチカのソースコードをコピペ。コンパイルが・・・通らねえ コンパイラとのリンクを2,3回くらいやり直した気がする。あとは記事に載ってるサンプルをかなり書き換えた。具体的に言うとコンパイルが通るデフォルトのソースコードに記事コードのLチカ成分を足していった感じ。 結局なぜ元コードのコンパイルが通らなかったのか、よく分からなかった。 ```STM8S:Lチカの例 /* Includes ------------------------------------------------------------------*/ #include "stm8s.h" /* Private defines -----------------------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/ /* Private functions ---------------------------------------------------------*/ __IO uint32_t n; void main(void) { GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_HIGH_FAST); /* Infinite loop */ while (1) { GPIO_WriteReverse(GPIOD, GPIO_PIN_0); n = 10000; while (n--) { nop(); } } } #ifdef USE_FULL_ASSERT /** * @brief Reports the name of the source file and the source line number * where the assert_param error has occurred. * @param file: pointer to the source file name * @param line: assert_param error line source number * @retval : None */ void assert_failed(u8* file, u32 line) { /* User can add his own implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* Infinite loop */ while (1) { } } #endif ``` 最後の関門。ボードと通信ができん ドライバをインストールし直してもダメだった。 エラーメッセージで検索してこういうページを見つけた。この人を信じ、管理者権限でコマンドプロンプトを立ち上げて謎のコマンド2つを実行。 http://mieurekas.blogspot.com/2017/04/stvd-connection-error-usbusb-gdi-error.html これにてようやくデバッグが始まり、Lチカに成功した。 ### 今後の展望 - 使い道は思いつかないけど、安いしLチカするだけでも十分楽しめる。 - 秋月で生チップも少しだけ売っている。在庫が少ないし新規入荷もないとあるが枯れる気配もない。 - そもそも8ビットマイコン界のSTM8のシェアってどれくらいなんだろ。