フォト
2025年3月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
無料ブログはココログ

« 2017年9月 | トップページ | 2017年11月 »

2017年10月の5件の記事

2017年10月22日 (日)

次はSTM32ボードを積極的に使ていきたい(20) BKPの利用

このシリーズのパート20、今回はBKP(Backup register)の利用についてです。

Blue Pill(STM32F103C8T6)では、バックアップ・ドメイン領域と呼ばれる領域に、
ユーザーが自由に利用出来る20バイトのメモリがあります。

BKP(Backup register)というメモリーです。
このBKPは、ボード上のリセットボタンを押してもデータは消えません。
さらに、VBATにボタン電池等での電源バックアップがあれば、ボードの電源を落としても
データは保持されます。

具体的な使い方は次のようなスケッチとなります。
//
// stm32_BKP_exsample.ino (for Arduino STM32)
// BKP利用サンプルプログラム by たま吉さん
// バックアップドメインのメモリ10ワード(20バイト)を利用するデモです.
// バックアップドメインのメモリの性質
//  1)リセットしてもデータは保持される
//  2)さらにバッテリーバックアップ有りの場合、電源OFFでのデータが保持される
//  

#include <libmaple/bkp.h>

void setup() {
  Serial.begin(115200);
  while (!Serial.isConnected())
    delay(100);
  bkp_init();   // BKPの初期化  
  Serial.println("[Menu] 1:Write 2:Read");
}

void loop() {
  uint8_t InputChar;
  if (Serial. available()) {
    switch(Serial.read()) {
    case '1':
      Serial.println("Write data.");
      bkp_enable_writes();    // 書込み可能にする
      for (uint16_t reg=1; reg <= BKP_NR_DATA_REGS; reg++) {
      bkp_write(reg, reg-1);  // データの書込み
      Serial.print("DR"); 
      Serial.print(reg,DEC);
      Serial.print("=");
      Serial.println(reg-1,DEC);
     }
     bkp_disable_writes();  // 書込み禁止にする    
     break;
    case '2':
      Serial.println("Read data.");
     for (uint16_t reg=1; reg <= BKP_NR_DATA_REGS; reg++) {
      Serial.print("DR");
      Serial.print(reg,DEC);
      Serial.print("=");
      Serial.println(bkp_read(reg),DEC); // データの読み込み
     }   
     break;
    }
  }
}

上記のスケッチはメニュー選択で、テストデータを書いたり読んだりしています。
書込み後、リセットボタンを押して再度スケッチを起動してデータを読むと
その内容が保持されていることが確認出来ます。

03

さらに電池によるバックアップをして、電源を切ってみてもデータが
保持されていることが確認できると思います。

01

ボタン電池を使ったバックアップ回路

02

保存出来るデータ量は少ないですが、
EEPROMエミュレーションライブラリを使うよりもお手軽です。
システム設定の保持やゲームのハイスコアの保持等に使えるでしょう。

BKPの利用方法の詳細については、下記にまとめました。
Backup register (BKP) suport (bkp.h) バックアップ・レジスタの利用



Arduino STM32 リファレンスマニュアル 日本語版

Arduino STM32に関するリファレンスマニュアル的なドキュメントが無いので
自分で作成することにしました^^;

作成中のドキュメント:
 ・Arduino STM32 リファレンス 日本語版
  ・Arduino STM32関連情報

現状では、Arduino STM32を使ってプログラムを作成する場合、
リファレンスマニュアルとしては、Arduino STM32のベースとなっている、
LeafLabs, LLCの「Maple Language Reference」を参照しつつ、Adsuino STM32のソースや
フォーラムの投稿を読んで追加・修正をくみ取って利用していました。
これは、かなり効率悪いです。そこで、
Maple Language Reference」をベースに、プログラム作成の過程で調べたことを、
追記し少しずつドキュメントをまとめることにしました。

「せっかくまとめるなら、何か新しいやり方・ツールを使ってみよう」
と思い、Scrapboxを使ってみました。

Scrapbox、なかなか使いやすいです。文章入力中に勝手に自動保存してくれるし、
リンクやプログラムコードの記述がやり易いです。

2017年10月15日 (日)

Arduino STM32スケッチをPlatformIOで利用するメモ

Windows 10にてAtom+PlatformIOでArduino STM32を利用するためメモです。

01

platformio.iniの定義
[env:genericSTM32F103CB]
platform = ststm32
board = genericSTM32F103CB
framework = arduino
upload_protocol = dfu
upload_port = COM4
build_flags = -v

この設定で、USB経由でのスケッチの書込みが出来ました。
ボードはBlue pillですが、フラッシュメモリが128kバイトのためgenericSTM32F103CBを
指定しています。

とりあず、Lチカ出来ました。

Dscn7228

見慣れたArduino STM32のパッケージは下記に配置されいるので、
\ユーザーホーム\.platformio\packages\framework-arduinoststm32

02

ライブラリの配置や、安定版R20170323への差し換えはここをいじれば良さそうです。

2017年10月14日 (土)

豊四季 Tiny BASIC for Arduino STM32 V0.85βの公開

「豊四季 Tiny BASIC for Arduino STM32」を V0.85βに更新しました。
公開サイト: https://github.com/Tamakichi/ttbasic_arduino/tree/ttbasic_arduino_lcd_plus

まだまだテスト不十分のため、β版としています。

OLED(SSD1306、SSD1309、SH1106)、TFT(ILI9341)ディスプレイに対応しました。
グラフィック描画にも対応しています。
TFTディスプレイでは、16ビットカラーに対応しています。

01

写真はSDカードからビットマップファイルをロードして表示している例です。

利用環境としては、次の構成をサポートしました。

04_1

最小構成は①ターミナルコンソール利用となります。
目的に応じて、②~④の表示機器を用意し、オプションのSDカード等を追加します。

04

2017年10月 9日 (月)

CEATEC JAPAN 2017に行ってきました

今年もCEATECに行ってきました。

今年のCEATECは「脱家電」が鮮明となっています。
「デバイス・ソフトウェア」エリアは去年と同じ感じでしたが、家電・総合電機メーカーが
展示する「家・ライフスタイル」エリアは去年に比べると内容が変わった感があります。

まずは、一番驚いたのがパナソニックの展示

Dscn7183

展示がインフラや要素技術がメインの内容で、今までと全く異なる内容。
ブースに入って、「あれ、ここ、パナソニックでいいんだよなぁ」と、回りを見渡して
パナソニックのロゴを確認するほどでした。
「こんなこともやっているんだ」とちょっと関心しました。

シャープはいつもと同じく、液晶テレビがメイン、これはこれで良いとして、

Dscn7160


富士通、三菱電機、NEC、日立、沖電気は、ソリューションの紹介でパネル展示がメイン。

富士通も要素技術よりもソリューションや提案的な内容がメインでした。

Dscn7166

それでも、見ごたえのある展示があったのでよいのですが、

Dscn7200

(写真は都市の航空写真にプロジェクションマッピング技術を使って様々な情報表示を
を行う技術を公開)

NEC、三菱電機、日立、沖電気、入口から覗く程度で見学終了でした。
形ある製品の展示ではなく、パネル説明がメインで内容的に抽象的で面白味無し。

この展示内容ならわざわざここに来る必要なしで、
インターネット上のコンテンツ閲覧とあまり変わらない内容です。

ホンダは、今年もテーマを絞りその象徴のオブジェを展示。

Dscn7167

水素ステーションとポータブルバッテリーの展示

Dscn7173

Dscn7169_2

シンプルな展示で分かり易です。

ニチコンもテーマ絞った展示で良い展示でした。

Dscn7204

急速充電。一般的なEV車だと4時間で充電できるそうです。

Dscn7206

今回、一番面白いと思ったのがKino-mo社の「HYPERVSN」。

Dscn7145

高速に回っているプロペラに映像を投影しているようですが、
空中に映像が浮いているような感じに見えて、ちょっとすごいです。



デジカメで動画のため、映像が今一です。生で見るともっと鮮明で綺麗です。

一方、オムロン、村田製作所は一昨年、去年の展示を使いまわしている感があり、
今回は素通りしました。

Dscn7174

Dscn7098

対応誘電、ローム、アルプル電気は安定した展示です。

Dscn7088

Dscn7079

Dscn7118

今回、今まで出展していなかったファナックがブースを設けていました。

Dscn7153

産業ロボットが稼働している様子を見たかったのですが、それがなくちょっと残念。

今回の展示会は全体的にインパクトのある展示が少なく、
このブログ記事もやっつけ感漂う内容になってしまいました。

ワクワク感のある展示が少なくなってきたなぁ
以前のような、行列が出来るような展示が無いのはちょっと寂しい。

« 2017年9月 | トップページ | 2017年11月 »