STM32F207はぢめました
ツイニキタヨー
去年くらいに発表されて以来トンと音沙汰なかったですけどES品ですがやっっと
一般ユーザの手にもわたり始めましたSTM32 F-2シリーズ。
従来のSTM32と違う部分は最大動作周波数が120MHzまで増加したのとメモリ保護
ユニットがついたのとフラッシュアクセラレータが(やっと)強化されて120MHzまで
ノーウエイトで動作可能となったのとその他諸々のペリフェラル機能が追加された
点しょうか。
ライバルに相当するLPC1769も似たような機能をすでに備えているのでいまさら
目新しものではなくなってしまいましたがー…。あ、そうそうフラッシュ容量も
1MBまで増加してます。低速な外付けのメモリとか用意しないでも結構でかい
サイズのフォントもぶち込めるのがうれしいです。
てわけでさっそく使用してみましたが、STM32F107VCT6とは一部ピンの定義が
違います。そこだけ注意してデータシートのmigration guideを参考に
配線を変更しました。
使用したボードは元はSTM32F103VET6が乗っかっていたebayで格安で購入した
基板です。STM32F207からはFSMCが使えるので(←これ重要!)あえてこのボードを
選びました。
次に開発環境ですが、もちろん従来から使ってきたCodesourceryG++を使用
します。しかしまだSTマイクロの公式サイトではF-2デバイス用のペリフェラ
ルライブラリなんぞは用意されていない(10x系とはレジスタ定義は全く違う)
のでKEILのサンプルに含まれているF-2用のbeta版に当たるV0.01と記された
定義ファイルのみと上記のごく簡単なサンプルコードを頼りに手探りで
進めていきました。
ちなみにフラッシュの書き込みもF-2デバイスは手順が違うようでOpenOCD
ではSTM32F1xx系とは別に用意されていました。後述しますがOpenOCDは
STM32F103xF/G系の512kByte以上のフラッシュを持つ種への書き込みも対応
しています…これはありがたい。
書き込み時はこんな感じです。
ぽぽぽぽーんと動かしてみたところです。480x272も一瞬だわ…
流石120MHzとFSMC…。そして国内のホビーユーザーでF2のデバイス動かした
人間としては今度こそねむいさんが初めての人ですね!一番乗り!
次はSDIOに進みたいところですが、上で述べたとおりライブラリが無い状態
なので手探りで進むことになりそうです。まぁ10x系のものを参考にしたら
何とかなるでしょう。
実はここまで動かすレベルになるのにかなり手間かかった…
何せ資料が全くない…。
おまけ
2xx系はまだまだですが、512kByte以上のフラッシュ容量をもつ10x系の
STM32マイコンはすでにdigikeyやmouserで購入可能です。ねむいさんも
速効ひとつ購入してしまった。1年くらい前にtaobaoでSTM32用の格安の
空基板買っといたのがやっとこ日の目を見れましたのでこっちにさっそく
装着。単にフラッシュ容量が増えただけなので従来のライブラリが
そのまま転用できて動作の確認が非常にラクです♥
お約束カワウソ。
いろいろ試す8
国内は大変苦しい状況が現在進行形で続いていますが、今は新しい生活が
始まる季節でもあります。ねむいさんも二度とていどひくいと
いわれないように言われないように毎年この時期に新たな決意をしながら
勉強を重ねてきたつもりですが彼ははるかにていどたかくなってしまって
やっぱ資質も必要だよねと思いつつLED点滅で足踏みして茶を濁す毎日を
送っております…そうかあの悪たれも今春から阪大か〜…#
…てわけで前回に引き続き今回も小ネタをこなしていきます。
●キャラクタLCDを2線で制御する
元ネタは中華サイトのBBSより。
2線と言ってももちろんi2c液晶ではないです。最低でもデータ4bit+制御
2bit分合計6本のI/Oの接続が必要なHD44780互換タイプのLCDモジュールを
受動部品を駆使してたった2本のI/Oで制御を行うとこのとです。
コンセプトとしてはでんし研氏の鶏卵問題を解決するAVRライタに近いですね。
↑実際にATMEGA1284Pを使用してやってみました。久しぶりにAVR使った…
20230629追:
11年後も同じ事やってる私
●LPC1114のI/Oトグルが遅い?…
> >>278
> main system clock48Mで、IOパタパタは約2Mだたよ。
とのことです。んなアホなと私も思いましたが、検証用のI/Oをトグルさせてる
部分のコード↓
while(1)
{
LPC_GPIO2 -> DATA = 0x00000000; // GPIO, write data
LPC_GPIO2 -> DATA = 0xffffffff; // GPIO, write data
}
をGCC4.5.1の-O2でビルドして出てきた該当箇所のアセンブルリストが
LPC_GPIO2 -> DATA = 0x00000000; // GPIO, write data
390: 4a03 ldr r2, [pc, #12] ; (3a0) <-2cycle
392: 4b04 ldr r3, [pc, #16] ; (3a4) <-2cycle
394: 2100 movs r1, #0 <-1cycle
396: 50d1 str r1, [r2, r3] <-2cycle
LPC_GPIO2 -> DATA = 0xffffffff; // GPIO, write data
398: 3101 adds r1, #1 <-1cycle
39a: 4249 negs r1, r1 <-1cycle
39c: 50d1 str r1, [r2, r3] <-2cycle
39e: e7f7 b.n 390<-3cycle
でリファレンスマニュアル首っ引きで調べると合計14サイクル、理論上でもシステム
クロックが48MHzで約3.43MHzくらいでしかトグルすることが出来ない計算になってし
まうので最適化レベルにもよりますけどやっぱしこんなものですね…
ちなみにガチでLPC1114で理論上とりうる12MHzのトグルスピードを出したいのならば
STR命令の部分だけ延々と続くようにしてやればいいので、
while(1)
{
LPC_GPIO2 -> DATA = 0x00000000; // GPIO, write data
LPC_GPIO2 -> DATA = 0xffffffff; // GPIO, write data
LPC_GPIO2 -> DATA = 0x00000000; // GPIO, write data
LPC_GPIO2 -> DATA = 0xffffffff; // GPIO, write data
LPC_GPIO2 -> DATA = 0x00000000; // GPIO, write data
LPC_GPIO2 -> DATA = 0xffffffff; // GPIO, write data
LPC_GPIO2 -> DATA = 0x00000000; // GPIO, write data
〜(出来る限り沢山並べる)
LPC_GPIO2 -> DATA = 0x00000000; // GPIO, write data
LPC_GPIO2 -> DATA = 0xffffffff; // GPIO, write data
}
ってしてやるとよいです。
この場合実際のトグル波形は↓のようになります。
Cortex-M0のSTR命令は最短2サイクルのため、GPIOがAHBバスに繋がっている
LPC1114では48MHzの場合は最高I/Oトグル速度は理論上12MHzとなります。
話は変わりますが、audin氏が指摘しているMARY基板で公開しているソースの
ライセンスが矛盾している件ですが、ねむいさん的には金銭が絡まない限り、
つまりソースコード自身はタダで利用できる状態のうちは別に大きく騒がれない
だろうと思われます(ぉぃ
などと偉そうに言ってるそういうお前はどうなんだと言われそうですが、私の
公開しているものは該当するスタートアップのコードはSTM32のアセンブラの
スタートアップコードを参考にしてarm-v6mでビルドが通すことのできる独自の
ものなので…
…ぇーとあのその…セ、セウト!
20111203追:
その後の顛末
あつ氏の見解
audin氏曰くMARYのライセンス形態が修正されたようです
i2c.h,i2c.cに関しては大本のNxPのKeil向けライブラリのライセンスに関する
文章を引用すると...
> Software that is described herein is for illustrative purposes only
> which provides customers with programming information regarding the
> products. This software is supplied "AS IS" without any warranties.
> NXP Semiconductors assumes no responsibility or liability for the
> use of the software, conveys no license or title under any patent,
> copyright, or mask work right to the product. NXP Semiconductors
> reserves the right to make changes in the software without
> notification. NXP Semiconductors also make no representation or
> warranty that such application will be suitable for the specified
> use without further testing or modification.
とのことです。
ざっと見たところ
"ここにあるソフトは製品(ここではLPC1xxx)のプログラムのしかたに
関する情報をカスタマーに提供する例示的な目的のためだけに書かれました"
ってのと
"(あなたが)このソフト使うことに(NxPは)責任も負債も持ちませんし
特許・著作権・製品のマスクワークのもとにあるライセンスや商標も譲渡しません"
という点がミソですね。再配布(redistribution)の制限に関する記載が見当た
らないのですが、再配布たことによって面倒なことになっても俺(NxP)は
責任持たないよと解釈しておけばよいでしょうか。
おまけ
MARY基板でaitendoさんの格安OLEDボード動かして見ましたねむいさんは
CheepにいくZE!これは公開しているプログラムに反映されています。
●SUG○IHUBはSUG○Iのか
http://www.system-talks.co.jp/product/sgc-4X.htm
ねむいさんはシステムトー○ス製のSUH○IHUBを副業元のノートパソコンで
愛用しています。SUG○Iハブは独自の電力増強回路によりUSBデバイスを安定
して動作させることができるという触れ込みです。確かにやっすいUSBハブでは
よく発生する「バスパワーのUSBデバイス挿しただけで突入電流で電圧ドロップ
して同じハブに刺さってるUSBデバイスも巻き添えで認識外れる」現象が一切
発生しません。しかし…
STM32のマイコン基板を一から組んででLDOの動作確認してる時に気づいた
のですが、このハブを使った時だけダウンストリーム側のVbusの波形が
えらめっちゃ汚い…
※ねむいさんが持ってるSUG○Iハブはこっちの少し古い型なので現行の
モデルでは改善されているかもしれません
恐らく独自の電力増強回路(=+5VDCDCコンバータ)のスイッチング時の
出力波形がもろに出ちゃってる感じです。デジタル回路だけならあんまし
問題無いですが、これアナログ含む回路だとこんだけ揺れてるとちょっと
都合が悪いです。
てわけでハブ側の改造でさらにSUG○くできるかしてみました。
基板はDC-DCコンバータとNEC製のUSBコントローラIC,そして2ポート分
(PORT1とPORT2)だけですがUSBパワースイッチャ(電源監視)ICまで積んで
あります。さらにダウンストリーム側には100uFのアルミケミコンが1ポート
ずつ鎮座しています。市販のハブのほとんどが最低限のパーツで寄せ集めた
チープな作りなのを鑑みると値段にしては超豪華な作りだと思います。
で、こんだけ出力に電解乗ってて波形があれってことはESR不足かな?
てことでDCDCの出力部に低いESRのキャパシタ乗っけりゃ解決かなと
判断してねむいさんのトラの子NEC-TOKIN製NEOCAP(150uF/10V品)を
ぶち込んだ!
よし!
てわけでさらにSUGO○くなれたようです。前途のとおりデジタル回路用途
のみなら未改造でも問題無いので昨今のUSB機能付きのマイコンでバリバリ
開発する人には多少のおいたにはびくともしないこのハブお勧めです!
●某付録のRX62N基板
国産マイコンは諸般の事情で全く興味ないので去年と同じく電源周りの挙動だけ…
電源立ち上がり
電源立ち下がり
去年のSH2A基板はLDOの出力が入力が断たれた後も0.数V程ず〜っとチャージを
保ったままになって次回の電源投入時に不具合が出ていました。しかし、
今回は+3.3VLDOにSBDをかまして素早くチャージを放電するようにしてあり、
しっかり対策されているようですね。
-
免責・連絡先は↑のリンクを
↓SNSもやってます↓
powered by まめわざ- ARM/STM32 (117)
- OpenOCD (27)
- ARM/NxP (34)
- ARM/Cypress (5)
- ARM/Others (3)
- ARM/Raspi (1)
- AVR (13)
- FPGA (4)
- GPS/GNSS (19)
- MISC (80)
- STM8 (2)
- Wirelessなアレ (16)
- おきぱ (1)
- ブラウザベンチマーク (28)
- 日本の自然歩道 (25)
- STM32U0はぢめました
⇒ ねむい (08/07) - STM32U0はぢめました
⇒ ひかわ (07/28) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ ねむい (05/17) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ どじょりん (05/16) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ どじょりん (05/16) - いろいろ試す61(と今年の反省会)
⇒ ねむい (01/02) - いろいろ試す61(と今年の反省会)
⇒ ひかわ (01/02) - いろいろ試す61(と今年の反省会)
⇒ ひかわ (01/01) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ ねむい (12/31) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ ひかわ (12/31)
- September 2024 (1)
- August 2024 (1)
- July 2024 (1)
- June 2024 (1)
- May 2024 (1)
- April 2024 (1)
- March 2024 (1)
- February 2024 (2)
- January 2024 (1)
- December 2023 (4)
- November 2023 (2)
- October 2023 (2)
- September 2023 (1)
- August 2023 (2)
- July 2023 (1)
- June 2023 (2)
- May 2023 (3)
- April 2023 (1)
- March 2023 (1)
- February 2023 (1)
- 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.