1ドルCPUボード(CPU:STM8S103F3)を調べて見ました
AmazonにSTマイクロ系の100円台のCPU開発基板が有り、Arduino互換と
書いて有ったので購入して調べて見ました。調べた結果、どこが Arduino互換
なのかは不明でしたが、Arduinoと同じ様にフリーで開発環境が構築でき、
メモリは少し小さい(ROM:8K/RAM:1K)様ですが、機能は充実しており
小規模なもので有れば十分使える事が判りました。ただし、Arduinoのライブラリ
は利用できないので、コツコツと作って行く必要の有るものの様でした。
以下が調べた内容です。
<STM8S103F3 ボードの概要>
購入した開発用の「STM8S103F3ボード」は次の様なものでした。
1.CPUはSTM8S103F3P6, ROM 8Kバイト、 RAM 1Kバイト、
EEPROM 640バイト
2.プログラムコードの読み書き等は ST-Link (300円位~) を利用
3.開発には、次のいずれかを利用(ArduinoのIDEは利用不可)
・ IAR Embedded Workbench (利用者が多い?)
フリーで利用するとメモリサイズ制限が有りますがこのボードでは
問題有りません
・ ST Visual Develop IDE (STVD-STM8) + Cosmic STM8 compiler
STM8に関してはフリーのものがメモリサイズの制限無しで
利用可能です。別のメモリの大きいSTM8のボードへの切り替えを
検討している方にはお勧めです。
・ SDCC + ST Visual Programmer (STVP-STM32)
SDCCは公開のフリーソフトなのでライセンス等は問題は有りませんが、
その分レジスタや割り込みベクター等の定義をコード上や別の
ファイルで指定する必要が有ります。でも、SDCCは様々なCPUに
対応していますので、別なCPUのボードへの切り替えを検討している
方にはお勧めです。
4.CPU電源電圧は3.3V で5Vから AMS1117 (max 1A) で供給
(3.3V外部供給もOK)
<関連資料>
1.STM8S103F3P6のデータシート
http://www.mouser.com/ds/2/389/stm8s103f2-956457.pdf
2.STM8S リファレンスマニュアル
https://blog.lvu.kr/wp-content/uploads/2016/06/RM0016_STM8S_STM8A_Reference-manual.pdf
http://www.st.com/content/ccc/resource/technical/document/reference_manual/9a/1b/85/07/ca/eb/4f/dd/CD00190271.pdf/files/CD00190271.pdf/jcr:content/translations/ja.CD00190271.pdf (日本語)
3.CPUボード(オリジナル品?、LEDテストポートの割り付けが異なる)
https://www.gravitechthai.com/product_detail.php?d=883
4.IAR Embedded Workbench
https://www.iar.com/jp/iar-embedded-workbench/
5.ST Visual develop IDE (STVD-STM8)
http://www.st.com/en/development-tools/stvd-stm8.html
6.COSMIC コンパイラ
http://www.cosmic-software.com/download.php
7.SDCC
http://sdcc.sourceforge.net/
8.ST Visual programmer (STVP-STM32)
http://www.st.com/en/development-tools/stvp-stm32.html
9.テストコード紹介者URL
IAR : http://blog.mark-stevens.co.uk/the-way-of-the-register/
SDCC : http://www.colecovision.eu/stm8/
<開発環境の構築>
1. IAR システム
上記の4で、システムを選択してダウンロードしてインストールし
メモリサイズ制限(8KB)のフリーの永久ライセンスを取得します。操作に
関しては他のIDEと同様にできますが、最初、ターゲットデバイスと
ST-Linkの指定では戸惑いました。いずれもターゲットのオプションで
次の様に行う事ができました。
2. STVD システム
まず、上記の5からIDEをダウンロードしてインストールします。ただし、
C/C++のコンパイラは無いので次に上記6からCOSMICのフリーコンパイラ
(STM8Sはコード容量制限無し)もインストールします。インストール後に
ライセンスの取得(無料)が必要となり、その方法の選択が有りますが
メールでライセンスファイルを送って貰て、そのファイルをCOSMICの
プログラムが有るフォルダに置いて対応する方法を選択しました。
操作に関しては他のIDEと同様にできますが、最初、ビルド時にCOSMICの
コンパイラがデバイスのインクルードファイルが無いエラーとなり、次の
指定が必要な事が判りました。
3. SDCC システム
まず上記7からSDCCのインストール用のバイナリをダウンロードして
インストールします。 (Download -> Sourceforge download page から
利用PCシステムのバイナリをダウンロードしてインストール) 次にST-Link
からプログラムを書き込む為のツールとして、上記8からSTVP-STM32を
ダウンロードしてインストールします。SDCCのインストール時のSDCCへの
パスの設定を有効にする為にPCを再起動したら任意のフォルダ位置から
DOS窓でSDCCが使える様になります。シンプルなコマンドは次のものです。
コンパイルターゲットのフォルダで sdcc -mstm8 xxxxxx.xxx
(xxxxxx.xxx はターゲットファイル名)
書き込みはST-Link接続後、「ST Visual Programmer」 を起動して
ターゲットのヘキサファイルを転送します。(ヘキサファイルの拡張子は
「ihx」、ツールの最初の起動時は「Configure」からST-Link とデバイスの
指定が必要)
<テスト内容と結果>
テストとしは以上の3つの環境で、それぞれボード上のテストLEDを点滅する
プログラムをコンパイルしてそれをボードに転送して実行させる事を
目標としました。
その結果としては次の様なものでした。
1.3種類の環境とも問題なくコンパイルと実行ができました。
2.ただし、IARの環境ではLEDの点滅間隔を確保する為の for loop が
そのままではコンパイル時に無意味として無視されてしまい for loop の
変数を volatile に変えて対応しました。IARではコンパイルの生成コードの
サイズが他のものより短くなる事が期待できるのかと思いました。
3.SDCCにはCPUのレジスタの定義用のヘッダファイルが無い為、コードの
先頭でそれを定義するか、別途、定義用のヘッダファイルを作成する
必要が有る事が判りました。その為、今回はレジスタの定義用のファイルを
作成して対応しましたが、割り込み利用時には、更に割り込みテーブル
設定用のコードか、STVDの様に追加のファイルが必要になると
思いました。
[コード]
コードは次のURLからダウンロード可能です。
Code download URL : https://www.dropbox.com/s/l708w1nerao8q7b/STM8S103F3P_board_blink.zip?dl=0
[動作状況]
動作状況は次のURLから確認できます。
<他のSTM8S103F3 ボードの記事>
このボードは、小規模のCPUなので、基板とプログラムはコンパクトで
とても扱い安いと思います。しかも、CPU内の機能はそれなりに揃っており、
商用の高機能のIARのIDEも無料で利用できます。(デバッグが機能が利用
できるのがとても便利です。)そのため気軽にマイコンプログラムを作って
見るにはとてもお勧めです。こちらでも以下の様にこのボードを使った
アプリケーションを数種類作って見ました。(追加して行く予定です。)
1.TM1628 LED & KEY --- 記事はこちら
2.LCD 1602 / 2004 --- 記事
3.Nokia 5110 LCD --- 記事1、記事2
4.0.96" & 1.3" OLED ーーー 記事
5.ラジコンカー関連
1)FS1000A / MX-RM5V --- 記事
2)SYN115 / SYN480R ーーー 記事
3)nRF24L01+ ーーー 記事
5.サーボコントロールー関連 ーーー 記事
6.RTC関連 ーーー 記事
7.電子コンパス ーーー 記事
8.赤外線温度センサー ーーー 記事
9.温度・湿度センサー ーーー 記事
9.ST7735 カラーLCD ーーー 記事
10.2.4" ILI9341 SPI LCD ーーー 記事
書いて有ったので購入して調べて見ました。調べた結果、どこが Arduino互換
なのかは不明でしたが、Arduinoと同じ様にフリーで開発環境が構築でき、
メモリは少し小さい(ROM:8K/RAM:1K)様ですが、機能は充実しており
小規模なもので有れば十分使える事が判りました。ただし、Arduinoのライブラリ
は利用できないので、コツコツと作って行く必要の有るものの様でした。
以下が調べた内容です。
<STM8S103F3 ボードの概要>
購入した開発用の「STM8S103F3ボード」は次の様なものでした。
1.CPUはSTM8S103F3P6, ROM 8Kバイト、 RAM 1Kバイト、
EEPROM 640バイト
2.プログラムコードの読み書き等は ST-Link (300円位~) を利用
3.開発には、次のいずれかを利用(ArduinoのIDEは利用不可)
・ IAR Embedded Workbench (利用者が多い?)
フリーで利用するとメモリサイズ制限が有りますがこのボードでは
問題有りません
・ ST Visual Develop IDE (STVD-STM8) + Cosmic STM8 compiler
STM8に関してはフリーのものがメモリサイズの制限無しで
利用可能です。別のメモリの大きいSTM8のボードへの切り替えを
検討している方にはお勧めです。
・ SDCC + ST Visual Programmer (STVP-STM32)
SDCCは公開のフリーソフトなのでライセンス等は問題は有りませんが、
その分レジスタや割り込みベクター等の定義をコード上や別の
ファイルで指定する必要が有ります。でも、SDCCは様々なCPUに
対応していますので、別なCPUのボードへの切り替えを検討している
方にはお勧めです。
4.CPU電源電圧は3.3V で5Vから AMS1117 (max 1A) で供給
(3.3V外部供給もOK)
<関連資料>
1.STM8S103F3P6のデータシート
http://www.mouser.com/ds/2/389/stm8s103f2-956457.pdf
2.STM8S リファレンスマニュアル
https://blog.lvu.kr/wp-content/uploads/2016/06/RM0016_STM8S_STM8A_Reference-manual.pdf
http://www.st.com/content/ccc/resource/technical/document/reference_manual/9a/1b/85/07/ca/eb/4f/dd/CD00190271.pdf/files/CD00190271.pdf/jcr:content/translations/ja.CD00190271.pdf (日本語)
3.CPUボード(オリジナル品?、LEDテストポートの割り付けが異なる)
https://www.gravitechthai.com/product_detail.php?d=883
4.IAR Embedded Workbench
https://www.iar.com/jp/iar-embedded-workbench/
5.ST Visual develop IDE (STVD-STM8)
http://www.st.com/en/development-tools/stvd-stm8.html
6.COSMIC コンパイラ
http://www.cosmic-software.com/download.php
7.SDCC
http://sdcc.sourceforge.net/
8.ST Visual programmer (STVP-STM32)
http://www.st.com/en/development-tools/stvp-stm32.html
9.テストコード紹介者URL
IAR : http://blog.mark-stevens.co.uk/the-way-of-the-register/
SDCC : http://www.colecovision.eu/stm8/
<開発環境の構築>
1. IAR システム
上記の4で、システムを選択してダウンロードしてインストールし
メモリサイズ制限(8KB)のフリーの永久ライセンスを取得します。操作に
関しては他のIDEと同様にできますが、最初、ターゲットデバイスと
ST-Linkの指定では戸惑いました。いずれもターゲットのオプションで
次の様に行う事ができました。
2. STVD システム
まず、上記の5からIDEをダウンロードしてインストールします。ただし、
C/C++のコンパイラは無いので次に上記6からCOSMICのフリーコンパイラ
(STM8Sはコード容量制限無し)もインストールします。インストール後に
ライセンスの取得(無料)が必要となり、その方法の選択が有りますが
メールでライセンスファイルを送って貰て、そのファイルをCOSMICの
プログラムが有るフォルダに置いて対応する方法を選択しました。
操作に関しては他のIDEと同様にできますが、最初、ビルド時にCOSMICの
コンパイラがデバイスのインクルードファイルが無いエラーとなり、次の
指定が必要な事が判りました。
3. SDCC システム
まず上記7からSDCCのインストール用のバイナリをダウンロードして
インストールします。 (Download -> Sourceforge download page から
利用PCシステムのバイナリをダウンロードしてインストール) 次にST-Link
からプログラムを書き込む為のツールとして、上記8からSTVP-STM32を
ダウンロードしてインストールします。SDCCのインストール時のSDCCへの
パスの設定を有効にする為にPCを再起動したら任意のフォルダ位置から
DOS窓でSDCCが使える様になります。シンプルなコマンドは次のものです。
コンパイルターゲットのフォルダで sdcc -mstm8 xxxxxx.xxx
(xxxxxx.xxx はターゲットファイル名)
書き込みはST-Link接続後、「ST Visual Programmer」 を起動して
ターゲットのヘキサファイルを転送します。(ヘキサファイルの拡張子は
「ihx」、ツールの最初の起動時は「Configure」からST-Link とデバイスの
指定が必要)
<テスト内容と結果>
テストとしは以上の3つの環境で、それぞれボード上のテストLEDを点滅する
プログラムをコンパイルしてそれをボードに転送して実行させる事を
目標としました。
その結果としては次の様なものでした。
1.3種類の環境とも問題なくコンパイルと実行ができました。
2.ただし、IARの環境ではLEDの点滅間隔を確保する為の for loop が
そのままではコンパイル時に無意味として無視されてしまい for loop の
変数を volatile に変えて対応しました。IARではコンパイルの生成コードの
サイズが他のものより短くなる事が期待できるのかと思いました。
3.SDCCにはCPUのレジスタの定義用のヘッダファイルが無い為、コードの
先頭でそれを定義するか、別途、定義用のヘッダファイルを作成する
必要が有る事が判りました。その為、今回はレジスタの定義用のファイルを
作成して対応しましたが、割り込み利用時には、更に割り込みテーブル
設定用のコードか、STVDの様に追加のファイルが必要になると
思いました。
[コード]
コードは次のURLからダウンロード可能です。
Code download URL : https://www.dropbox.com/s/l708w1nerao8q7b/STM8S103F3P_board_blink.zip?dl=0
[動作状況]
動作状況は次のURLから確認できます。
<他のSTM8S103F3 ボードの記事>
このボードは、小規模のCPUなので、基板とプログラムはコンパクトで
とても扱い安いと思います。しかも、CPU内の機能はそれなりに揃っており、
商用の高機能のIARのIDEも無料で利用できます。(デバッグが機能が利用
できるのがとても便利です。)そのため気軽にマイコンプログラムを作って
見るにはとてもお勧めです。こちらでも以下の様にこのボードを使った
アプリケーションを数種類作って見ました。(追加して行く予定です。)
1.TM1628 LED & KEY --- 記事はこちら
2.LCD 1602 / 2004 --- 記事
3.Nokia 5110 LCD --- 記事1、記事2
4.0.96" & 1.3" OLED ーーー 記事
5.ラジコンカー関連
1)FS1000A / MX-RM5V --- 記事
2)SYN115 / SYN480R ーーー 記事
3)nRF24L01+ ーーー 記事
5.サーボコントロールー関連 ーーー 記事
6.RTC関連 ーーー 記事
7.電子コンパス ーーー 記事
8.赤外線温度センサー ーーー 記事
9.温度・湿度センサー ーーー 記事
9.ST7735 カラーLCD ーーー 記事
10.2.4" ILI9341 SPI LCD ーーー 記事