sh2
sh2基板の話題が流れてるようだ。
みんな苦労しているのかな。
以前、10年くらい前までは、sh2にはよくお世話になった。
当時としては画期的なチップで、性能も桁違い。
何しろ内蔵Flashに書き込んで、チップ単体で動くなんて、夢のチップだった。
個人で購入するのは大変だったけど、頑張って手に入れてマウスを作っていた。
チップ単体も7145あたりで、¥7,000位したかな。
------
さて、shなんだけど、微妙にイケてない仕様がぽつぽつとあって、何度も苦しめられた。
とりあえず怪しいときは、各端子にプルアップ抵抗とか。
例えば、シリアル書き込みポートのRx側には、外部プルアップ抵抗は必須。
無くても、書けるときは書けるので、余計に厄介だったりする。
これは、CPUがブートモードで起動した場合でも、ポートの初期値は、ただの入力ポートに設定されることが問題っぽいように思う。
そもそも書き込みシーケンスが、イケてないのも一因。
sh2をブートモードで起動すると、ブートローダーが起動した後に、ソフトウエアレベルで、Rxピンを初期化し、サンプリングをし始める。
で、最初の”L”パルスの幅を計測して、ボーレート調整をする、ってのがある。
なので、ブートローダーが起動するまでには、このポートのレベルを、いったん”H”に釣っておいて、おもむろに”L”パルスを入れてやらないといけない。
レベルがLだと、いきなりブートローダーが起動失敗する。
接続されているレベルコンバーターの仕様によっては、まったく書き込めない状態にもなったりする。
------
このころのshは、クロックはすべて外部供給で、自分がいま何MHzで起動しているか分からないために、こんな手順を踏む必要があったようだ。
今どきのCPUは皆、ブートモード字は内蔵のクロックで起動する。
その点でソフトウエアのタイムベースの心配はなく、通信のクロックレートをサンプリングする、なんて動きをするのはなさそうだ。
(FLASHの書き込みやWDTの設定に、”実時間”を使う必要がある)
sh7125あたりだと、まだこの件を引きずっている世代なので、色々ケアする必要がある。
確かに、ルネサスのマニュアルを隅から隅までよめば、こそっと回路図にプルアップ抵抗が書かれていたりするんだけど、こんなの気づかねーよ、といいたくなる。
ちゃんとしたsh系CPUボードは、この辺りもちゃんとフォローしていて、必要な外付け部品は予めついていて、問題なく動く。(ことが多い)
当時流行った雑誌付属CPU基板は、この辺が甘々で、まービックリすることも多かったけど...
------
そもそも、ルネサス(旧日立系)のCPUは、リセット時にしかモードが切り替えられないくせに、起動後でもモードピンにノイズが乗ると、コロッと逝かれてたからなあ。
リセット時にサンプリングして、内部で保持してろよ、と思ったことも何度か。
結局プルアップ抵抗では不十分で、並列にコンデンサまで追加しないと、稀に暴走してしまうとか、なかなか難易度は高かった。
------
どうも秋月sh基板には、この手のプルアップ抵抗は、まったく実装されていないようだ。
使うほうで理解して手当てしないと、場合によっては怪しい挙動をすることがあるかもしれない。
まあ、大体はうまく動くと思うけど、大体は...
いまでは、stm32や、lpcとかに乗り換えて久しいので、この手のことに悩まされたことはないな。
まあ、別ベクトルの強烈なエラッタ(仕様?)は色々あったけど。
| 固定リンク | 0
コメント