ラベル mbed の投稿を表示しています。 すべての投稿を表示
ラベル mbed の投稿を表示しています。 すべての投稿を表示

土曜日, 12月 07, 2019

小型マイコンを使うということ -- 今までのまとめにかえて

自分のブログなので,自分のまとめとしておく。

PIC, AT, STMといったいわゆる小型のマイコンを,趣味,興味から使い始めてみて2ヶ月ほど。その間に,ありがたいことで,職場でも使わせていただく機会があり,いろいろ勉強になった数ヶ月だった。

なんだかんだと,PICを一番使っている。特に,内蔵モジュールのPWMとコンパレータを使った案件は楽しかった! まさにPICを使いこなしている,という雰囲気だ。
ただ,XC8/XC16と,MPLAB IDEには手を焼く。
まず,XC8は整数の扱いが他のコンパイラーと少し違う? 計算が正しいか,入念なチェックが必要。
XC16+MCCは無愛想で,生成されたサンプルがさっぱり理解できない...
とか,細かいところはやはり不満。
そして,ICSPによるプログラム書き込みはいいけど,そのままそれをシリアルモニターできないのはツラい。別途シリアル回線を準備するか,OLED等で状況表示,スイッチ等で動作変更が必要となる。
使う用途は限定されるが,MPLAB IDEのsimulationは,それなりに使える。上記,「コンパイラーは正しく計算しているか?」の検証は,ある程度できる。

STM32 Nucleo + mbed では,上記のようなPICの不満は解消される。
ハードウエア設定はほぼ皆無でよく,サンプルを見てソースコードを埋め込めば,割とあっさりと動くようになる。USBで接続したまま,mbedのweb上のコンパイラーからダウンロードされた .bin を,ターゲットにコピーするようにすれば,即,実行される。さらにUSBを接続したままで,パソコン上でシリアルターミナルソフトで状況確認が容易である。
惜しいのは,大掛かりなmbedの影響か,CPUの能力を100%引き出せてはいないのではないか,ということ。STM32であれば,ST純正の開発環境を使えば少しは違うのかと思うが,まだ試せていない。
職場でも使ってみた。いい感じではあったが,残念ながら,私の接続ミスでターゲットを壊してしまった。反省...

古いSTM32も,mbedで.binをつくり,STLINKでターゲットに書いて実行させることはできるようになった。ただしこちらも壊してしまい,深くは検証できていない。また反省...




アトメルのCPU + Arduinoの環境,小規模な制御は,上記の流れから「かなりいい線」ではないかと思っている。シリアルを接続したまま,書き込みと,そのままArduino IDEのシリアルモニターが使える。Arduino言語はそれなりによくできていて,参考になるコードもいっぱい。コーディングはしやすい。
惜しいのは,クラウドベースの開発環境が無いこと。mbedの「場所を問わずに開発」はよくできている。
それはともかく,もう少し使ってみよう,ということで,職場でも使えそうなこれを発注してみた。

https://www.dfrobot.com/product-1075.html


職場では,ブレッドボードは使わない。実験基板に,あるいは直接はんだ付けしてテストする。小規模な方が,組み込むにせよ,外でテストするにしても,有利である。
USBからプログラム,シリアルモニターが使えそうなので,開発や,状況確認も簡単そうだ。

さて,届くまで楽しみに,別のボードで遊んでいよう。

水曜日, 12月 04, 2019

Nucleo F303K8 w/mbed ADサンプリングテスト

いわゆるオーディオ信号の解析に使いたい。20kHzを読むので,最低限 200ks/sec ぐらいは欲しいところだけど,データシートによれば,そのぐらい余裕に見える。
mbedでテストプログラムを作ってみた。
シリアルモニター CoolTerm で結果確認

AD Count 44726
AD Count 44727
AD Count 44726
AD Count 44727
AD Count 44726
AD Count 44727


あれ... これはなんだ?
webで調べる。mbedの影響ではなかろうか。

とりあえず,Arduinoでも試してみよう。

土曜日, 11月 30, 2019

Nucleo F303K8 w/mbed OLED SSD1306を接続

うん,やはりOLEDを接続すると,使いやすそうになる。


いろいろと参考にさせてもらったのでまとめておく。 

オリジナルはsaharaさんのページで紹介されていたmicrochip社のフォーラム。

https://www.microchip.com/forums/m826100-p2.aspx 

ここで投稿されていた zipファイル
https://www.microchip.com/forums/download.axd?file=0;831415

当初は自分の PIC24F に移植。次に PIC16Fに移植したところ,メモリーが足りなくなってしまったので,文字を直接描画するように変更。

今回移植したのは,このPIC16Fのもの。

せっかくなので公開してみた。
https://os.mbed.com/users/numeru55/code/Nucleo-F303K8-SSD1306_128x32_from_PIC/

本当の最初は,以下のライブラリーを使ってみた。
https://os.mbed.com/users/joeata2wh/code/Nucleo-F303K8-SSD1306_OLED/

実行したところ,すぐにOLEDが動くのだけど,プログラムを再コンパイル,ターゲットに再ロードすると,OLEDが真っ黒になってしまう。STMが止まっているわけではなく,OLEDの描画のみがOFFになっている模様。初期化のタイミングかな? 自分のOLEDとの相性なのか...

というわけで,快調に動いていた,PICのプログラムの移植を試みた,という次第。

月曜日, 11月 25, 2019

mbed で STM32 始めちゃいました...

PICでやりたいことはまだあるし,arduinoも動かさなきゃ,という状況なのに,

STM32も動かし始めてみました。mbedで。

  • 買ってきたもの NUCLEO-F303K8 -> 秋月さんページ 
  • mbedのアカウントを作って待機
  • 届いた! とにかくmacに接続する。いわゆるLチカが始まる。初期不良はなさそうだ。
  • https://os.mbed.com/platforms/ST-Nucleo-F303K8/ の右側に,サンプルプログラムがある。https://os.mbed.com/teams/ST/code/Nucleo_printf/ を選んでみる。 
  • [Import into Compiler] をクリック。コンパイラーが起動する。
  • 「コンパイル」をクリック。.bin がダウンロードされる。
  • /Volumes/NODE_F303K8 がマウントされているので,.bin を放り込む。
  • 「ディスクの不正な取り出し」とmacが怒る。書き込みのために一旦アンマウントした模様。
  • CoolTermを起動。 usbmodem*** を選び,9600, 8bit, no parity でつないでみる。
  • おお,動いている!!
ほとんど苦労せずUSB経由のシリアル通信ができるのは,本当にありがたい。PICのことを悪く書くつもりはないが,PICの場合は,かなり調べて,いろいろ試行錯誤して,ようやく動く感じ。MCCのおかげで,かなり楽ではあるのだが,基本的にほとんどお膳立てされているmbedやarduinoは,別の次元の面白さ,としたら言い過ぎか。