LPC2388にもTFT液晶モジュールを

un
よし。
LPC2388の高速なFIOでもノーウエイトで十分に動かせられるのでかなり使えますね〜。
とりあえずaitendoさんに追加で発注掛けときました。これは良いものだ(マ・クべ顔で)
ソースはこちらに。ご利用は自己責任でどうぞ。今日はこれにて!








…と言いたいところだが!!話はSTM32、現在私が使用している最中のSTM32F107VCT
の話に戻ります。STM32のフォーラム見てたら例のブートローダーが動かないバグが
正式にerrataとして上がってました

> During the boot loader activation phase,
> if the USART1_RX (PA10), USART2_RX (PD6,
> remapped pin), CAN2_Rx (PB5, remapped pin),
> OTG_FS_DM (PA11) and/or OTG_FS_DP
> (PA12) pin(s) are connected to low level or left floating,
> the boot loader cannot be used.
> It is not possible to connect to the boot loader through either
> of CAN2 (remapped), DFU (OTG
> FS in Device mode), USART1 or USART2 (remapped).
だそうです。本来ならSTM32F103VBT6でうまくいってた接続ではSTM32F107/5系に
乗り換えても本来は正しく動くはずですが、errataのせいで正しい状態に遷移出来てな
かったようです。んでWorkAroundは…

> ● For 100-pin packages: depending on the used peripheral
> the pins for the unused
> peripherals have to be kept at a high level during the
> boot loader activation phase as described below:
> . If USART1 is used to connect to the boot loader
> : PD6 and PB5 have to be kept at a high level
> . If USART2 is used to connect to the boot loader
> : PA10, PB5, PA11 and PA12 have to be kept at a high level
> . If CAN2 is used to connect to the boot loader
> : PA10, PD6, PA11 and PA12 have to be kept at a high level
> . If DFU is used to connect to the boot loader
> : PA10, PB5 and PD6 have to be kept at a high level
一応回避策はあるようですね。…しかし…
>● For 64-pin packages: none. The boot loader cannot be used.
> In 64-pin packages, the USART2_RX remapped pin PD6 is not available and is internally
> grounded. Therefore, the bootloader cannot be used at all.
un


ねむいさんはSTM32F107VCT6(100Pinデバイス)なのでまだ負けていません。
回避できるかどうか早速試してみました。STM32F103VBTで使用していたUSART1は
107系ではUSB-OTGのvbusとぶつかってしまう為にremapされたUSART2を
使うのが都合が良いようです。

あとシステムメモリブート起動時のプルアップはworkaroundには"kept ata high
level"とだけ
書いていますがこれが10kohmとかでプルアップしただけじゃ全然ダメで、
一部のポートは1kohmくらいで強めに引っ張り上げとかなくてはなりませんでした。

20091216変更:
PB5に別の検証で使ってたデジトラのコレクタがぶら下っててこれ取り除いたら
10kohmでも問題ないことが分かり修正orz


20101206追加:
デジトラのコレクタがぶら下ってて気づくの遅れたのですが、どうやら
最初にサンプルで貰ったSTM32F107VBT6では1kohmで引っ張らないと無理です。
まぁESですから文句は言えませんね


remappedされたUSART2でブートローダーを使うときには以下の組み合わせで…。
PA10(USART1_RX) :10kohm
PD6(USART2_RX) :10kohm
PB5 (CAN_RX) :10kohm
PA11&PA12(USB_DATA) :4.7kohm
USART2(とUSART1も結局試したけど)はブートシーケンスに入るタイミングがかなり
シビアです。
ちんたらしてるとすぐに失敗します。なんとかホストPCとの通信に成功すると
いつものダイアログが出てくれます。
un
ここまでくれば安定してフラッシュの読み書きができます。でもここまでに至る過程が
非常に不安定です。それにCQ-STARMの基板流用してUSBから電源供給してるので
USART2からのブートのためにPA11,PA12(DP&DM)プルアップしてるとダイアログが
出まくって非常にうっとうしいです。USBと絡めて使うときはUSARTのブートは
使えませんね。

次にDFUで起動するかどうかを試しました。DFUでブートするためにはPA11,12の
プルアップはもう必要ないですが、vbus供給必須です!
先にも述べましたがvbusはUSART1のTXにぶち当たるのでリマップさせない限り
USART1は使用できなくなります。STM32EVAL-CのデモもすべてUSART2(remapped)
に切り替わってるのでSTM32F105/7系でUSART1をあえて使う理由もありませんが…。

念願のDFUが起動しました…
un
シリアルナンバーは"STM32"で固定です。一度ドライバ読んだら次からはUSBポート
のどこさしてもドライバは要求されません。

un
内部フラッシュメモリの読み書きのほかにoptionbyteもいじれるみたいですね。

un
書き込み速度は流石にJTAGにはかなわないです。でも単体でUSB経由でファームの
更新できるので出先でも書き換えができます。(実装次第ですが)


…と懸念事項であったSTM32F105/7のブートローダーが起動しない問題も
workaroundで一応の解決を見たのですがerrata-sheetを見るとUSB-OTGや
EthernetMACのerrataもたんまり増えてます。
これから使いたい機能にもろかぶりしてしまってるので、はまって足止め
くらわされないようにじっくり検証していきたいですね。

Go to top of page