かめら工房

ものを作ったり,写真撮ったり

オフラインでmbedが使いたい(STM32)

どうもお久しぶりです。かめらちゃんです。皆様いかがお過ごしでしょうか。

研究とかでSTM32使うことも多いのですが、皆が皆手軽に扱える代物ではないので、手軽にmbedを使って開発ができれば楽ちんですね。

ただmbed、オンラインでは手軽なんですけどオフラインではなかなか癖があるらしく、解説のブログ記事などがあまり見当たりません(探し方が悪いともいう)。

今回はみんな大好きSW4STM32

yuqlid.hatenablog.com

を使ったmbedオフラインコンパイルを紹介する記事にしたいと思います。SW4STM32のインストール自体はyuqlid君の記事内で書かれているのでインストールは済んでいるものとして進めていきます。

使用するマイコンは今手元にちょうどあったNUCLEO-F746ZGを使いたいと思います。

mbed、mbedと一口に言いますが、どうも最近は元々あったmbed 2.0とmbed OS 5という2つの使い方(?)があるそうなのですが、今回は元々のmbed 2.0を用いて作業環境構築を行いたいと思います。

[lang:ja] mbed OS 5に関する諸々 | mbed

mbedオンラインコンパイラ側でまずは適当なプロジェクトファイルを作ります。(このとき間違えてmbed OS 5のプロジェクトファイルを生成しないようにすること)。

f:id:ks7jistra:20170716180243p:plain


そのまま特にいじることなくプログラムワークスペースのプロジェクトで右クリック→プログラムのエクスポート(Ctrl+E)

f:id:ks7jistra:20170716180910p:plain

 

Export ToolchainをSW4STM32に合わせてExportし、適当な場所に解凍します。

f:id:ks7jistra:20170716180940p:plain

 

解凍したフォルダをsw4stm32でインポートします。

 

f:id:ks7jistra:20170716181023p:plain

f:id:ks7jistra:20170716181047p:plain

f:id:ks7jistra:20170716181114p:plain

インポートできたらプロジェクトのプロパティを開き、
C/C++ Build>Settingsへ移動します。
その中のMCU SettingsのFloating point hardwareがNo unitになっているので
fpv5-sp-d16に変更、
Floating-point ABIがsoftになっているのでsoftfpに変更します。

f:id:ks7jistra:20170716181152p:plain


そこまでできたらとりあえずDebugボタンを押してコンパイルします。
ちなみに失敗します。

するとこういうエラーが5件ほどでます。

f:id:ks7jistra:20170716181241p:plain

  • "MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE" was not declared in this scope, RawSerial.h
  •  "MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE" was not declared in this scope, Serial.h
  • "MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE" was not declared in this scope, UARTSerial.h
  • "STM32_D11_SPI_ETHERNET_PIN" was not declared in this scope, PinNames.h

というエラーがでてきますので、RawSerial.h、Serial.h、UARTSerial.hの頭あたりに
#define MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE 9600を追加してやります。PinNames.hのD11にエラーが出ているので、STM32_D11_SPI_ETHERNET_PINをPA_7に書き換えます。

これらは本来プロジェクトのmbedフォルダにあるtargets.jsonファイルに記述されており、そこから読み込まれるはずがSW4STM32が読み出してくれないので、直で書き直す必要があります。

変更を終えたら再びデバッグボタンを押すとエラーがなくなり、
コンパイルに成功します。

プロジェクト右クリック→Debug As→Debug Configuration
Ac6 STM32 DebuggingでNew launch configurationをクリックするとDebugもしくはRun設定が追加され、OpenOCDが実行されます。

f:id:ks7jistra:20170716181847p:plain

 

また、ボードをつないでおくと自動的にプログラムがダウンロードされ、記述したプログラムが実行されます。

おわり!!皆様よいmbedオフラインコンパイルライフを!!

 

ちなみに私はこのNucleoボードのEthernetポートが使いたいのでmbed RTOSを別途インポートする必要があるのですが、mbedRTOSをインポートした状態でオフラインコンパイルを行おうとするとエラーが頻出してまだうまく動かせてません。

うまく動かせるようになったら記事にします。

 

なお、mbed OS 5はもとよりRTOSが入ってますので、SW4STM32でやるとどうもエラーが出るので扱いませんでした。

こちらも解決したら記事にするつもりです。

 

それでは!

 

Elecrowは金曜の午前中に頼め

どうもかめらです.

自己啓発本のタイトルみたいになりましたが,基板発注のお話です.

 

私がとてもとてもお世話になっている基板外注業者に

中国深センのElecrowという会社があります.

www.elecrow.com

 

安い早い最近結構シルクが綺麗と良いことずくめな基板製造やってる業者ですが,

タイミングが良いと1週間以内に来たりするのでこの記事はそのことについて書いていこうと思います.

 

条件

  • 発送業者は深センDHLを使用します.
  • 製造はスピード製造ではなくごく一般的な製造スピードで行ってもらいます.

 

通常スピードで頼んだ場合,Elecrowの基板製造にはだいたい2~3日の日数を要します.また,土曜日曜及び中国の祝日は発送はされませんが,どうも製造ラインは動いているようです(祝日は知らん)

 

金曜の朝に基板のデータを向こうに送ると,受け取ったよ~というメールが昼頃,

製造ラインに放り込んだよ~というメールが夕方頃に来ます.

そうすると土曜日曜の間にも着々と基板製造が進み,月曜には発送がされ,

水曜日には手元に届きます.

 

水曜や木曜に頼むと,土日に発送がなされない罠が潜んでいるので金曜の朝発注をかけるのと同じタイミングで発送されます.

 

また,月曜に頼むと木曜日若しくは金曜日に発送がなされますが,これもまた税関だとかDHLだとかが土日に動かない(もしくはうごきがのっそい)ので結局届くのが月曜発送とさして変わりません.

 

結論

  • Elecrowは金曜の午前中に頼め

NUCLEO-746ZGとSTM32F7Discovery

どうも

 

お世話になっております。かめらです。

 

最近またSTM32触り始めたんですよ。

前は敬遠していたHALライブラリ使って。

 

作業環境はeclipseにいろいろ突っ込んで作った作業環境に

spiralray君がねむいさんの作った環境をアレンジしたやつをgitから落としてきて使わせていただいています。

github.com

続きを読む

不定期!ニキシー管時計をつくる!5

どうもですかめらです.

 

頼んでいたニキシー管が届きました!eBayで頼んでくるかどうか分からないどきどきを感じながら1~2ヶ月かかるかなぁと思ってましたら,2/2に頼んだのが今日届いたので,10日で届いたことになります.はやい.

追跡番号は無く,(恐らく)ウクライナからの発送でした.

 

f:id:ks7jistra:20160212235548j:plain

 

で,その写真が上の画像になります.(実際は18本ありますが,その1部だけ掲載)

 上記画像だけでも漂う足の不安さたるや・・・.

 

安かっただけにそこまで状態が良くありませんね.安かったので仕方ない.

f:id:ks7jistra:20160213000148j:plain

さっきの写真の真ん中にあったニキシー管の足を見てみると,何かの機械から取り外してきました感満載の足が.さて,これをどうやって使うか・・・・・・.

 

f:id:ks7jistra:20160213000608j:plain

 最初の画像左側にあった比較的綺麗な管.足はわりかし綺麗だがよく分からないカバーがついてる.

んで,

f:id:ks7jistra:20160213000741j:plain

何か1本かけてますね?

確か左ドットか右ドットの部分なのでまぁ使わない筈だから許容範囲でしょう.

8番ピンとかぬかしてましたが結局データシートをよーくよーく確認したらドットでした.

他にも数々の簡単には使えそうに無い管がはるばるやってきてくれました.

とりあえずニキシー管を載せるベース部分を修正して発注し直さねば・・・って感じです.

不定期!ニキシー管時計をつくる!4

こんにちは かめらです.

 

研究室のボスからはじめて進捗どうですかメールをいただきました.

 

本日の更新は頼んでいたものがぞくぞくと届いたぞっていう内容です.

まず一つ目

  • GPSモジュール(GMS-G9)

f:id:ks7jistra:20160210182810j:plain

色々な個人ブログなどでGPSモジュールならこれでしょって言われているタイプのモジュール.

精度が高く,QZSS(日本の準天頂衛星「みちびき」)の受信も可能な高性能タイプのGPS受信モジュールらしいです.

時計にそんな精度いらなくね?ってGPS系研究してる友人から言われましたが,後でGPSロガー作ろうと思ってる関係もあり,これにしました.時計だけならもっと精度低くても余裕で時刻の取得は可能であると思います.

 

その2

  • こて先たち

f:id:ks7jistra:20160210183834j:plain

斜めに切り取られたような形状のC型 T18-C2

先のとがった形状のI型       T18-I

両面から切り取ったような形状のD型 T18-D24

の3種がこて先コレクションにラインナップされました.

(C型ばかり使うようになりそう・・・

 

その3

  • K155ИД1(K155ID1)

SN74141互換のICです.ヤフオクで1個230円で売ってたので買いました.

これであとはニキシー管が着弾すれば基本的な部分は出来そう

 

f:id:ks7jistra:20160210184717j:plain

 

ではまたよろしくお願いします~

不定期!ニキシー管時計をつくる!3

ども

かめらです.

 

進捗どうですか.

 

わたしはだめです.

 

前にお伝えしたニキシー管制御用基板が届いたのです.(多分最初の記事くらいにはすでに届いてたけど)

f:id:ks7jistra:20160204010624j:plain

こんな感じに.

 

んで,Arduinoの部分だけでも作りたかったので手持ちの部品を実装すると

f:id:ks7jistra:20160204010740j:plain

こんな感じに

 

使用しているマイコンはおなじみATMega328P-AU

 

Arduino IDEのファイル>スケッチの例>11.Arduino ISP > Arduino ISPを選択し,既製品Arduinoに書き込み.

んで,Arduino Unoの

13番ピンとこちらのマイコンの17番ピン

12番ピンと16番ピン

11番ピンと15番ピン

10番ピンと29番ピン

電源同士とGND同士を結線して

 

対象マイコンボードをArduino Pro or Pro Mini, ATmega328 (5V, 16MHz)を選択し

ブートローダを書き込み.さっきの画像のやつは上手くブートローダ焼けたんですが,

さっきの画像とは別にもう一枚実装したんだけどなんか全然上手く行かなくて1日潰しました.

 

原因は半田付け不良で,クリスタル周りの半田付けをしっかりやり直したら上手く行きました.

マイコンの半田付けはしっかり確実にね☆(←原因が分からなくて一日潰したおじさん

 

無事にマイコンArduino化ができました.

これでUSBからマイコンの書き込みが出来る.

 

eBayでIN-14を頼んで発送までしてくれたらしいけどいつ来るか未知数過ぎて怖い.

あと,ヤフオクで74141互換ICを落札したし完成は間近だ.

 

あ,GMS-G9買わなきゃ

 

 

 

不定期!ニキシー管時計をつくる!2

こんばんは かめらです.

 

昨日に引き続きレポート書くのが辛いから更新してます.

ちなみに研究も何か座礁に乗り上げてる感じします.

 

そんなことよりニキシー管

 

今回はニキシー管を制御するマイコンボード部分について書いていきます.

が,今回もミスがございます(基板発注時)

 

作り直したデータは記事執筆現在elecrowに発注かけてます(またミスが見つかるんじゃ無いかとどきどきしてます)

 

とりあえず今回はまず動かすことを中心に考えます.

使用するマイコンはATMega328PAUをArduinoとして使います.

本当はSTM32とか使ってマイコン使う練習としてバシッと決めたかったんですが不確定要素が多いと動くかどうかも分からないのでとりあえず動くこと優先で.

 

んで作ったのがこんな感じ

f:id:ks7jistra:20160124234358p:plain

 

DC12V(昇圧基板の記事参照)から秋月に売ってるなんかつよいムラタのDCDCコンバータで降圧後,各部品へ電力供給.

akizukidenshi.com

 

で,昨日の記事

camerablog.hatenadiary.com

の基板の上にドッキングする.

 

そう

 

こんな感じに

f:id:ks7jistra:20160124235327p:plain

皆様お気づきだろうか

 

f:id:ks7jistra:20160124235408p:plain

スイッチと管が干渉していることに

 

それと昨日の記事の最後に言ったようにミスがある.

 

お気づきの方もおられるかもしれないが,

IN-14の表示側に基板を重ねようとしようとしている重大なミスをかめら氏は犯してしまったのである.

 

さらにこの基板の上にGPS受信モジュールを乗っけようとしているのであった.

 

今すぐにでも作り直したい.(でもとりあえずこれで作る.

 

あと2カ所くらいこの時にミスしてるけど書くのが面倒なのでこのへんで・・・