今日は午後に研修があって、終わったら夏休みだ、
と思って職場に戻ると、ハードウェア設計者がマイコンの起動時の処理について相談にやってきた。
その場で検討したところ、マイコン外部で持っていた分周器の機能をマイコン内部に取り込むと解決できることがわかった。
それに伴うピン割り付け変更の候補だけ決めて、それに伴う回路の変更は僕が夏休みの間にやるとのこと。
そもそも、事の発端はアナログ回路の駆動に必要なクロックをマイコンから供給することにしたこと。
当初、ハードウェア設計者はマイコンのクロックをそのまま出して、それを外部で分周することを考えていたのだが、
このマイコンはクロックを直接出力する機能がないので、タイマからPWM信号としてクロックを出力する必要があった。
メインクロックが8MHzで、周期8クロック、Duty比50%のPWM信号を出力すれば、それは1MHzのクロックを供給できる。
一方で、どうせタイマからPWM信号でクロックを出すなら、直接、希望の周波数で出力すれば、外部の分周器は不要なのでは? と提案した。
必要なクロックは2種類、タイマペリフェラルの個数は足りることはわかっていた。
ただ、このときはこの提案は採用されず、当初想定していた分周器を置く方式が採用された。
当時、ピン割り付けに懸念があったようで、そのあたりも外付けの分周器が維持された背景にあったようだ。
ところが、通電時の挙動を検討したところ、通電~クロック供給開始の間の分周器の出力と供給先のアナログ回路の組み合わせがよくないらしい。
それで、マイコン側で追加の制御信号を出して解決できないかと相談に来たのだった。
分周器の使い方が悪いんじゃないの? とも思いつつ、「そもそも、分周器やめたら、この問題解決できるんじゃないですか」と言ったら、一気に事が動いたと。
マイコンの出力ピンは通電後、プログラムで設定するまではハイインピーダンスなので、
外でプルアップなりプルダウンして、供給先のアナログ回路にとって都合の良い出力を選べる。これが決め手だった。
これはハードウェア設計者にとっては想定外の回答だったようだが。
手早く追加のクロック出力ピン候補を決めて帰ったのだった。来週に回路の詳細が検討されるようだ。
こんなことをよりによって、夏休み直前、数十分前に言い出すなよと思ったけど。
ハードウェア設計者側からすれば、ギリギリで間に合ったということなんでしょうね。
別に僕の夏休みを軸に引いたスケジュールではないんだけど、本当は今週にはハードウェア設計は一通り終わってるはずだったような。
本来、僕が担当するマイコンの設計はスムーズに進んでいて、自分はやることやって夏休みと思ってたんだけどね。
でも、事情も知らずにへんてこりんな設計にされて、後でなんだこの設計と言うよりはいいか。
この問題を解決するために、本来は別の目的で使っている信号を無断で転用される恐れもあったわけだし。