いろいろ試す17
試"す"というか試"した"結果のご報告の方が多いかも…
●STM32F437シリーズの予習
2013年4月中旬現在はまだチップ単体は手に入る時期ではないのですが去年買って放置
していた超格安全部入りボードを使用して来たるSTM32F437シリーズの予習をしていました。
ただこれに付属しているTFT-LCDモジュールのタッチパネルドライバICが定番のADS7843
ではなく、I2C接続のSTMPE811というI/Oエキスパンダと温度計も一体化された妙に"いん
てりじぇんす"なICだったのでそれの対応に非常に苦労しました…。
↑画像は春になり発情期を迎えたいないさn
とりあえずいつものが動かせられるようになったので同じ基板を購入した人たちは無改造
で追試できると思います(TFTLCDのドライバはILI932xを選択の事)。I2Cバスエラー対策は
まだ実装していませんので、フン詰まりになったら電源をいったん落とした後再投入
して対処してください。(やっけつ)
また今回はタッチパネルの処理の上位層も少し見直して無駄な記述をしていた箇所や
分かりづらい箇所を廃しております。たとえば、
キャリブレーション画面で青の■をしっかり押せたら…
黄色の■になる!…もちろんこれだけではありませんが細かいところも修正してます。
せっかくなので全体的にソースコードも見直してコメント等をできるだけ随所に挿入して、
プログラムの流れもつかみやすくなるよう努めるようにしました。
本来は書いた本人がプログラムの動作に関する詳しいドキュメントを書くべきなの
ですがこちらのかたが非常に分かりやすい解説をして下さっており、ねむいさんもいつも
参考にさせてもらっていま…あれ?
今回の修正はおきぱにあるSTM32F1,F2,L系のものを始め他社のARMマイコンのFatFs
移植例にも順次反映していきます。
●STM32F4で外部SRAMを使う
ねむいさん非常におまぬけなミスをずっと放置しておりました。STM32F4向けのいつもの
のプログラム中でターゲットボードにREDBULLを指定した場合は外部SRAMを使用できる
ようにFSMCの設定を行っていたのですが…REDBULL上ではキー入力も同時に有効にして
おりそこのGPIO設定がでたらめだったためFSMCのポートにもそれが波及し外部SRAMへの
特定のアドレスのアクセスで頻繁にHardFaultっておりましたorz
一見まともに動いているように見えたので気づくの遅れましたorzorz
今回のソースコードの見直しではぢめて気づきましたorzorzorz
というわけでそこを修正して大容量のSRAMをmalloc系関数のheap領域として使えるよう
にして、(さすがに内部SRAMと比べると非常に速度が遅いうえにマトリクス化されてい
ないのでスタック領域までは割り当てる気がありません…F4はCCMあるし)これでメモリ
サイズを気にせずに自由自在に使えるようになったー!
…と思いきや、16bitのアラインメントが乱れるようなアクセスが連続で続くとやっぱり
コケます。これはlibjpegで画像をデコードするような時に特に顕著になりこのように途中で
表示がグレーになったストール状態に、虹裏で見られる富山みたくなってしまいます。
↑libpngとgiflibだとこの現象一切起こらないのですが…調査はいずれまた…
また、FSMCのバスにSRAM以外に入出力容量の大きいブツ(低速でしか動作できない
一昔前のTFTLCD等)がぶら下がっているとやっぱりこけます。オシロでWRの波形を見たら
オーバーシュートしまくりです。なのでTFT-LCDも影響を与えないものをオシロの波形と
にらめっこして選ぶ必要があります。もしくはFSMCに影響を与えないSPI接続のLCDの
選択も考えてください。
ねむいさんが試行した限りでは16bit区切りになるような、たとえばVRAMとして16bitに
パックされたRGB565のデータをスタティックに確保しただけの状況下の使用では問題は
一切発生なかったのでこの先も慎重に確かめてみます。
●LPC4357全部載せ基板
RMBレートが13円のころに買っておいてよかったです♥USDも99円(20130411現在)まで
回復してますが海外のパーツ・基板漁りはひとまずお休みして買いためたブツを消化して
逝きましょう先ずはNxPのCortex-M系最高峰のLPC4357のボードです!
(2013年01月中旬当初は国際送料込みでなんと13000円台で購入できていた超格安な代物でした。)
以前LPC4330というLPC4300系の基板をいじっておりましたがあっちはプログラムを格納
するフラッシュ領域が全くなく、スズメの涙ほどの内蔵SRAMか低速なSPIFI-SPIROM
から実行せざるを得ない非常に使いづらい代物でした。しかしこいつは違います!204MHz
動作でフラッシュも1MB内蔵なので使い勝手が改善されて(ると思い)ます!…しかし…
…
4.3inchLCD基板の接合部でみてはならないものが目に入ってしまいました…
…なんだこの隙間は…これのせいでベースの基板もひん曲がってるし…
(後日このヘッダピンを半田槽で外し新しいものにまっすぐ付け直しました)
通電すると動作確認用のサンプルプログラムが起動します。またOpenOCD用のcfgを作
っていませんがLPC4300系のフラッシュ書き込みルーチンもまだレビュー段階なので
先ずはそこから基礎を固めて試してみましょうか(逆さになった何かを無視しつつ)。
●OpenOCDをさらに使いやすく
年明けくらいからでしょうか、ねむいさんが提供しているOpenOCDバイナリをSTLink/V2
から使用する際にドライバをLibUSBからではなくSTMicro提供の純正ドライバを使うように
変更できないだろうか?というご要望をちらほらいただくようになりました。
まさかとおもってSTMicro純正のドライバをよく調べてみると、Windows向けドライバとして
WinUSBが使用されているのがわかりました。また去年行ったFT2232系FTDIデバイスの
MPSSE対応の際にWinUSB(LibUSB-1.0)用のビルドができるようになっていたのですが、
STLink/V2に関してはVersaloonと同じくLibUSB0.1系を使用するようにビルドオプション
を指定したままになっていたので純正ドライバは使用できない状態でした。
今となってはWinUSB(LibUSB-1.0)を使用しない道理は存在しないのでSTLink/V2のドラ
イバとしてWinUSBを使用するようにビルドオプションを変えて純正ドライバをそのまま利用
できるようになったバイナリを現在は提供しております。
ST-LinkUtilityなどの純正ツールとOpenOCDがドライバの差し替えなしに利用できるように
なったのでぐっと便利になっております。
そのかわり従来のLibUSB0.1系からは使用できなくなっておりますのでご注意ください。
↑一応変更当時はトップにでかでかと告知してたので皆さん移行済みかと思います
追:
ドライバの扱いについてちょっとまとめます。
LibUSB-1.0:WindowsにおいてはWinUSBのラッパーとして働きます。
ですのでLibUSB-1.0のAPIを使いたい場合インストールするドライバは
WinUSBとなります。WinUSBのKMDFを使用しています。
LibUSB-0.1:WindowsにおいてはLibUSB-Win32と呼ばれ、LibUSB0.1(libusb0)の
APIはWDMを使用しています。
LibUSBK :WinUSBのエミュレーションとして働きますが、WinUSBでサポートしてない
アイソクロナス転送も使用可能です。また、libusb0のAPIとも互換性があるので
LibUSBKをインストールしておくと1.0系と0.1系APIを使うアプリがどちらも
ドライバの入れ替え無しに使用可能となります。
さらにFT2232系デバイスの方もZadigでインストールする際にLibUSBKを選択することにより
WinUSBを使うOpenOCDやLibUSB0.1系を使うUrJTAG/FlashROMなどの便利ツールが
ドライバの入れ替えなしにシームレスに利用できるようになり、低いコストと簡単な手順で
強力なデバッグ環境をそろえることが可能となっております♥
●aitendoさんのanux
>ANUX続けるのやめまーす(←peep.usでページを保存しました)
こ ん な こ っ た ろ う と お も っ た で す よ ぅ ! !
そうだねチャイナリスクです…せめて全回路図くらいPDFでくだち…
連絡・質問・免責は↑のリンクを
↓SNSもやってます↓
powered by まめわざ- ARM/STM32 (101)
- OpenOCD (27)
- ARM/NxP (34)
- ARM/Cypress (5)
- ARM/Others (3)
- ARM/Raspi (1)
- AVR (11)
- FPGA (4)
- GPS/GNSS (18)
- MISC (72)
- STM8 (1)
- Wirelessなアレ (16)
- ブラウザベンチマーク (28)
- 日本の自然歩道 (23)
- 中国自然歩道を往く -北伐!県境を越えて鳥取県に侵入せよ!-
⇒ ねむい (12/23) - 中国自然歩道を往く -北伐!県境を越えて鳥取県に侵入せよ!-
⇒ ひかわ (12/18) - 中国自然歩道を往く -北伐!県境を越えて鳥取県に侵入せよ!-
⇒ ひかわ (12/18) - いろいろ試す51
⇒ ねむい (06/26) - いろいろ試す51
⇒ ひかわ (06/10) - STM32G0使ってみる4 -1wireデバイスをいろいろ使ってみる-
⇒ ねむい (12/14) - STM32G0使ってみる4 -1wireデバイスをいろいろ使ってみる-
⇒ ひかわ (12/05) - 大緊急事案!!!1!Raspberry Pi Picoはぢめました!!1!!1
⇒ 竹本浩 (08/14) - 大緊急事案!!!1!Raspberry Pi Picoはぢめました!!1!!1
⇒ ねむい (08/12) - 大緊急事案!!!1!Raspberry Pi Picoはぢめました!!1!!1
⇒ 竹本浩 (08/08)
- January 2023 (1)
- December 2022 (2)
- November 2022 (1)
- October 2022 (1)
- September 2022 (1)
- August 2022 (1)
- July 2022 (1)
- June 2022 (1)
- May 2022 (1)
- April 2022 (1)
- March 2022 (1)
- February 2022 (1)
- January 2022 (1)
- December 2021 (2)
- November 2021 (2)
- October 2021 (1)
- September 2021 (1)
- August 2021 (1)
- July 2021 (1)
- June 2021 (1)
- May 2021 (1)
- April 2021 (1)
- March 2021 (1)
- February 2021 (1)
- January 2021 (1)
- December 2020 (3)
- November 2020 (1)
- October 2020 (1)
- September 2020 (1)
- August 2020 (1)
- July 2020 (1)
- June 2020 (2)
- May 2020 (1)
- April 2020 (1)
- March 2020 (1)
- February 2020 (1)
- January 2020 (1)
- December 2019 (3)
- November 2019 (1)
- October 2019 (1)
- September 2019 (2)
- August 2019 (1)
- July 2019 (1)
- June 2019 (1)
- May 2019 (1)
- April 2019 (1)
- March 2019 (1)
- February 2019 (1)
- January 2019 (1)
- December 2018 (3)
- November 2018 (2)
- October 2018 (1)
- September 2018 (1)
- August 2018 (1)
- July 2018 (1)
- June 2018 (1)
- May 2018 (1)
- April 2018 (2)
- March 2018 (1)
- February 2018 (1)
- January 2018 (1)
- December 2017 (2)
- November 2017 (2)
- October 2017 (1)
- September 2017 (1)
- August 2017 (1)
- July 2017 (1)
- June 2017 (1)
- May 2017 (1)
- April 2017 (1)
- March 2017 (2)
- February 2017 (2)
- January 2017 (2)
- December 2016 (7)
- November 2016 (2)
- October 2016 (2)
- September 2016 (1)
- August 2016 (1)
- July 2016 (1)
- June 2016 (1)
- May 2016 (2)
- April 2016 (1)
- March 2016 (2)
- February 2016 (1)
- January 2016 (1)
- December 2015 (3)
- November 2015 (1)
- October 2015 (3)
- September 2015 (2)
- August 2015 (2)
- July 2015 (3)
- June 2015 (3)
- May 2015 (4)
- April 2015 (2)
- March 2015 (4)
- February 2015 (1)
- January 2015 (3)
- December 2014 (3)
- November 2014 (2)
- October 2014 (1)
- September 2014 (2)
- August 2014 (2)
- July 2014 (3)
- June 2014 (2)
- May 2014 (1)
- April 2014 (1)
- March 2014 (4)
- February 2014 (4)
- January 2014 (3)
- December 2013 (5)
- November 2013 (4)
- October 2013 (3)
- September 2013 (2)
- August 2013 (2)
- July 2013 (2)
- June 2013 (3)
- May 2013 (2)
- April 2013 (2)
- March 2013 (2)
- February 2013 (2)
- January 2013 (3)
- December 2012 (4)
- November 2012 (2)
- October 2012 (2)
- September 2012 (4)
- August 2012 (1)
- July 2012 (3)
- June 2012 (2)
- May 2012 (3)
- April 2012 (3)
- March 2012 (2)
- February 2012 (3)
- January 2012 (3)
- December 2011 (5)
- November 2011 (3)
- October 2011 (2)
- September 2011 (2)
- August 2011 (2)
- July 2011 (2)
- June 2011 (2)
- May 2011 (2)
- April 2011 (2)
- March 2011 (2)
- February 2011 (2)
- January 2011 (3)
- December 2010 (7)
- November 2010 (1)
- October 2010 (1)
- September 2010 (1)
- August 2010 (3)
- July 2010 (4)
- May 2010 (1)
- April 2010 (2)
- March 2010 (2)
- February 2010 (2)
- January 2010 (3)
- December 2009 (3)
- November 2009 (8)
- October 2009 (7)
- September 2009 (5)
- August 2009 (4)
- July 2009 (6)
- June 2009 (7)
- May 2009 (14)
- January 1970 (1)
Copyright(C) B-Blog project All rights reserved.
Comments
Post a Comment