2023年9月17日から2023年9月13日までの日記を表示中

2023年 9月17日 (日)

基板

起動時キー書き込みの仕切り直しということで、まずはピン上げする形で信号に割り込むようにした 92641C-1 の改造を手直ししてみます。この基板、先日までのデータバスに横付けする形でキーを書き込む実験に使っていた関係で 61番ピンと62番ピンのところはピン上げを戻していました。今回は、ここを改めて上げて外に引き出せるようにするのと、雑につけていたプルダウン抵抗を何とかすることを目指します

92641C-1の改造を手直し

まずは61番ピン・62番ピンを引き出すところから。前回はピッチ変換基板を固定する良い方法がなくて強度に不安が残る状態となってしまいました。今回は信号を引き出すのに使う2ピン分のピッチ変換基板に、こんな風に使わないスルーホールをたくさん残しておくことでこの問題に対処します。

ピッチ変換基板の切り方を改善

こうしておくと、どこにも繋がっていないスルーホールを利用して基板を固定することが可能になります。今回のケースでは、61番ピン・62番ピン用のピッチ変換基板の右側は電池跡地を使って固定し、左側は元々あった41番ピンから47番ピンに繋がっているピッチ変換基板と重ねて、スルーホールのところではんだ付けして結合させてます。

しっかりCボードの基板に固定できるようになった

で、ここから必要な線を引き出します。しっかり固定できていると安心感が全然違いますねw。将来基板を起こす際は、ここはひと続きの基板として作ることになるとは思いますが、この固定方法はそのまま使えそうです。

信号線を引き出し

プルダウン抵抗の方は、PICを載せているCPicSKの基板に移設しました。デバッグ用LEDのパターンがそのまま使えていい感じにw

プルダウン抵抗はCPicSK基板に移設

動かしてみます。

動作確認

おお、動きました。よしよし。

起動時キー書き込み成功

チキチキボーイズも安定して起動します。あー気持ち良いw

チキチキボーイズもテスト

安定して起動

ここでふと、BボードとCボードのデータバスに4053 (マルチプレクサ) を挟むのは速度的に大丈夫なのか気になり、データシート見たり波形を取ったりして調べてみました。確かに4053の入り口と出口で比べるとデータシートに書いてあるくらいの遅延が入ってはいるようですが、元々ゆっくり動いているようなので、そこまで心配しなくてもいいのかな。

オシロで遅延具合を確認

2023年 9月16日 (土)

FDSKEY

家電のケンちゃんさんからFDSKEYが届きました。FDSStickがあるから要らないかなーと思っていたんですが、中の人の入荷ツイートを見てたら何か欲しくなってしまい・・・w。デザインがかっこいいですね。

FDSKEY届いた

2023年 9月15日 (金)

PIC

前々からPICのコードを書いていて気になっていたことの1つに、GPIOを入力から出力に変えたとき、なぜかデフォルトで1になっている場合があるというのがあったりするんですが、PICのマニュアルをよく読んだら何か書いてありました。理解が間違っていなければ、以下のようです。

  • GPIOの出力ポートの値をBCF命令もしくはBSF命令で1bitずつ変更する場合、GPIOからの出力用のデータを保持したラッチをRead-Modify-Writeをすることになる
  • Read-Modify-WriteのReadのときに、GPIOに入力属性のポートがあると、そのポートについては外から入力されている値を読み込んでしまう (出力属性のポートは、出力している値が読み取られる?)
  • Read-Modify-WriteのWriteによって、入力属性のポートから読み取った値が、出力用のデータを保持したラッチの、そのポートに対応したビットに設定される
  • 後々になって、入力属性のポートを出力属性に変えると、上記でラッチに設定された値が初期値として出てしまう

これが正しいとするなら、GPIOを出力に変える際の初期値をコントロールするには、まず入力属性の状態のうちにそのポートの初期値を設定して、その上で、そのポートだけを出力に切り替えればよいのかな。必ず1ポートずつ操作する感じで。

基板

これまでの実験結果などから考えると、CPS1の起動時キー書き込みをやってチキチキボーイズが起動しなくなるのは、CPS-A-01がデータバスに信号を流してくるタイミングで、PICが衝突回避のためにGPIOを入力に切り替えているからっぽいですね。その場合、こんな感じの波形が出てくるわけで、CPS-A-01によるバス操作が、(たとえ一瞬であっても)そのままCPS-B-21に認識されちゃうんだと思われます。

中央のパルスみたいなのが拾われてしまう

ていうか、普通に考えたらそうですよね。何でこれでいけると思ったんだっけ・・・(汗)。あー、当初はCPS-A-01がバスアクセスしている中でも起動時キー書き込みに成功していたからそう思ったのか。今考えてみると、あれはPICのGPIOを出力属性にしたままで、さらにデフォルトはLOWにして書き込んでいたから、そのタイミングでCPS-A-01がデータを流しても、バス上の信号はLOWのままとなり、影響を受けなかったということなのでは・・・。データをデフォルトHIGHにしたら不安定になって、クロックをデフォルトHIGHにしたらまったく起動しなくなったのも、これと辻褄が合いそうです。で、今回、律儀に衝突を避けるようにしたことで、CPS-A-01のアクセスが100% ノイズとして割り込むようになり、キー書き込みの前のロック解除すらうまくいかなくなった、みたいな。

PICのGPIOは出力にしたまま、デフォルトLOWとして、バスアクセスのタイミングだけCPS-A-01とずらすというやり方をすると衝突の影響を無効化できる可能性はありそうですが、多分電気的によろしくない状態ですよね。うーん、やはりバスに横付けする形の起動時キー書き込みは諦めて、当初のようにキー書き込み中はデータバスをBボードから切り離すことにすべきか。この1週間、何も得られなかったわけではないのが救いですが、かなり無駄なことにエネルギーを注いてでしまいましたな。はぁ。

2023年 9月14日 (木)

基板

CPS1の信号回りを見ていて、ふと気になってロジアナの設定を確認したところ、トリガレベルがTTLになっていました。もしかして、これ、CMOSレベルで見ないとだめだった・・・?とりあえず、PICが何もしていないとき、普段はHIGHになっていたデータバスが、スレッショルドが変わったことでLOW表示になりましたw

CMOS設定に変えたらデータバスの信号の雰囲気が一変w

で、今日は、CPS-A-01によるメモリアクセスを避ける上で、OBJEOに代わってHSYNC同期できないか実験してみました。OBJEOだとトグルする回数が少ない関係で、これに同期しちゃうとどうしてもCPUリセット解除までにできることが限られてしまうんで。HSYNCなら60μ秒程度の周期でずっと出続けているはずです。

HSYNCを引き出すための配線を追加

Cボードの116番ピンから信号を引き出して観測してみると、HSYNCはOBJEOと同じくらいの時間LOWになっていることが判明 (波形のグレーがHSYNC、紫がOBJEO)。CPS-A-01によるデータバスへのアクセスタイミング (波形の緑と青) とほぼ同時にHIGHに戻ってる感じですが、ここを狙って同期すれば、PICの遅さも相まって、ちょうどいい感じに処理を挟めそうです。

HSYNCに同期すれば良さそう

HSYNCに同期してキーを書くようにし、さらにメモリアクセス競合を避けるようにプログラムを修正してみたところ、チキチキボーイズでも起動してくれました。ただ、不安定で、ダメなときも多めです。

波形を観察してみると、今まで見てきた通り電源投入直後からデータが流れまくるパターンと、逆に一切データが流れないパターンの2種類があることがわかりました。後者のようなケースになる場合があったとは気が付かなかった・・・。そして、後者のパターンに当たるとうまく起動して、逆に前者のパターンに当たると起動しない傾向にあるようです。うむむ、これはもしや・・・。

2023年 9月13日 (水)

基板

CPS1の起動時キー書き込みに関して、昨日試したOBJEOに同期させた方式を実用化すべく、CPUリセット解除前にデータバスに余計な信号が流れない殿様の野望2の基板を利用して、既存のコードを段階的に変更。が、修正とテストを繰り返していたところ、突然ある変更で動かなくなり、その後、さっきまで動いていた状態にまでコードを戻しても動かないみたいな事態となってしまいました。まさかと思いながらもPICを別個体に替えたら改善。PICがヘタったのか・・・?

そして、別個体で実験を継続してわかってきたんですが、キー書き込みに使うデータ信号をデフォルトHIGHにして、書き込むタイミングで正しい値に設定するようにするとキー書き込みが不安定になるようです。さらには、クロック信号の方をデフォルトHIGHにするとまったく動かなくなるという謎現象も。うーん、ちゃんと回路的に問題ない動きになってると思うんですが、何でダメなのか・・・。うーん、苦しい。

2023年9月17日から2023年9月13日までの日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2023年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ