趣味のマイコンいじり

安価なマイコンを利用して作成したアプリの紹介です。

1ドルCPUボード(CPU:STM8S103F3)を調べて見ました

AmazonにSTマイクロ系の100円台のCPU開発基板が有り、Arduino互換と
書いて有ったので購入して調べて見ました。調べた結果、どこが Arduino互換
なのかは不明でしたが、Arduinoと同じ様にフリーで開発環境が構築でき、
メモリは少し小さい(ROM:8K/RAM:1K)様ですが、機能は充実しており
小規模なもので有れば十分使える事が判りました。ただし、Arduinoのライブラリ
は利用できないので、コツコツと作って行く必要の有るものの様でした。
以下が調べた内容です。

<STM8S103F3 ボードの概要>
  購入した開発用の「STM8S103F3ボード」は次の様なものでした。
  イメージ 1

  1.CPUはSTM8S103F3P6, ROM 8Kバイト、 RAM 1Kバイト、
          EEPROM 640バイト
  2.プログラムコードの読み書き等は ST-Link (300円位~) を利用
  3.開発には、次のいずれかを利用(ArduinoIDEは利用不可)
         ・  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
      
       イメージ 3

   2. STVD システム
       まず、上記の5からIDEをダウンロードしてインストールします。ただし、
       C/C++コンパイラは無いので次に上記6からCOSMICのフリーコンパイラ
      (STM8Sはコード容量制限無し)もインストールします。インストール後に
       ライセンスの取得(無料)が必要となり、その方法の選択が有りますが
       メールでライセンスファイルを送って貰て、そのファイルをCOSMICの
       プログラムが有るフォルダに置いて対応する方法を選択しました。
       操作に関しては他のIDEと同様にできますが、最初、ビルド時にCOSMICの
       コンパイラがデバイスのインクルードファイルが無いエラーとなり、次の
       指定が必要な事が判りました。
       イメージ 4

   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  ーーー 記事
         


  11.Wireless Uart for Arduino Firmata  ーーー 記事