2025年5月29日から2025年5月25日までの日記を表示中

2025年 5月29日 (木)

基板

Arduino Unoのキーチップテスタで読み出したキー情報を手入力でPC側に取り込むのが面倒だったので、Arduino Unoからシリアル出力してみることに。が、シリアル出力を有効化したら急にキーチップに正しくアクセスできない状態になってしまいました。うむむ?

あ、シリアル出力をUSB側に出す場合であっても、Digital pin 0 (PD0) とDigital pin 1 (PD1) は空けておかないとだめなのかも? 現状、PD0とPD1をキーチップを叩くのに使ってしまっていました。

というわけで、PD0とPD1を使わないようにピンの接続位置をずらし、Arduino Unoのコードも修正。速度を出すためにPORTBやPORTDを直接叩いているので、単純にdefineをいじっておしまいにできないところがちょっと面倒ですね。

PD0とPD1を空けた

無事にArduinoのIDEのシリアルモニタに読み出した内容が出力されるようになりました。これは便利・・・と思いきや、何かArduinoのIDEのシリアルモニタの使い勝手がイマイチな感じで微妙かもw

シリアルに出力されるようにはなったが・・・

2025年 5月28日 (水)

基板

Arduino Unoのキーチップテスタでキーチップのキーを読み出して、出てきた情報をPC側に手入力で記録した後、念のためこの情報でググると既知のキーチップの情報をまとめていると思しきサイトがヒットするんですよね。

読み出して出てきた情報でググると・・・

これが出てくるということは、正しく読み出せていて、さらにそれを正しくPC側に手入力で書き写せているということを意味するわけですが、その一方で、こうも網羅されていると、一体何のためにキーチップを読み出しているんだという複雑な気分になります・・・w

2025年 5月27日 (火)

RGB2C02N

ふじっこさんがRGB2C02N搭載ファミコンでアルマジロの映像がおかしくなるとお困りの模様。

アルマジロは現物が手元にあるので、RGB2C02N 搭載機で試してみることに。先日ラベルを貼ったお陰で、ものすごい速さでカセットにたどり着くことができましたw

アルマジロのカートリッジ

動かしてみましたが、映像自体がおかしくなるようなことはありませんでした。ゲーム自体は操作にクセがあってしんどいところがありますがw。ワリオの森と同様に、ファームウェアアップデートで解消する問題なのかもしれませんね。

2025年 5月26日 (月)

基板

昨日エラー24で動かなかった自作のキーチップクローン、PICのプログラムの問題を手直ししたところ、動くようになりました。

自作のキーチップクローン

青リロの起動に成功

昨日動かなかったのは、信号の取り込み処理の高速化のために、取り込みのループで行わないようにしたAND演算を、ループの外で実施するのを忘れていたからでしたw。残念な理由だw

ここを書くのを忘れていた

真・三國無双ORIGINS

下邳の戦いで呂布を回復無しで撃破し、ついに赤兎馬をゲットすることに成功。一体何回リトライしたことかw。最後の最後で相手が覚醒したところで、こちらも覚醒して残り体力を削り取るのがポイントでした。

2025年 5月25日 (日)

基板

昨日、Arduino Uno側でNAOMIのキーチップを叩けなかった問題ですが、落ち着いて調べた結果、酷い初歩的なミスをしていたことが発覚。まず、キーチップのPICは、外部からクロックを供給する必要があるのに、それをやっていませんでした。なぜか内蔵オシレータのクロックで動いているものと思い込んでいました(汗)。また、MCLREが有効になっているのに、4番ピンをHighにしていませんでした。多分これをやらないとリセットが解除されないはずです。

というわけでPICに4MHzのクロックを入れるようにして、4番ピン (MCLR) をプルアップしてみました。これでどうだ。

PICにクロックを入れてMCLRをプルアップ

お、Arduino Unoからのメッセージに純正キーチップのPIC が応答するようになりました。

PICが応答するようになった

しかし、この応答に、今度はArduino Unoの方が反応してくれません。何かArduino Uno側が、PIC側のクロックのトグルをちゃんと拾えていないような・・・。で、調べてみると、トグルの検知や値の読み込みに利用しているdigitalReadという関数が激遅との情報が出てきました。そして早くしたかったら直接レジスタを操作すると良いとのこと。なるほどねー。

digitalReadを使うのをやめて、直接レジスタを読むように書き換えたところ、メッセージと応答のやり取りが進むようになり、ついに純正キーチップの情報の読み出しに成功しました。やった。これでようやく自作キーチップクローンのデバッグが進むw

やり取りが進むように

純正のキーチップの読み出しに成功

早速Arduino Unoに自作のキーチップのクローンを読ませてみたところ、こちらは失敗。波形を見ると、何かやり取りをしているように見えなくもないですが、変ですね・・・。

やり取りをしているようだけど何か変

これはもしや・・・と、試しにArduino Uno側のクロックのトグルを遅くしてみたら、PIC側が正しく反応するようになりました。これはつまり、PIC側が遅くて、クロックの読み取りに失敗している可能性が高そうですw

クロックを遅くしたらPIC側が正しく応答したっぽい

ソースを見返してみると、PIC側でクロックを検知してレジスタの値を読み込む部分のループカウンタが無駄にintになっていたので、これをcharにし、さらにレジスタから読み出した値に7をANDして、下位3bitのみをメモリに保存する処理を、ループの外で行うようにしたところ、Arduino Uno側を遅くしなくても応答が返るようになりました。読み出せた情報も正しそうです。

正しい情報が読み出せていそう

では再度実機で動かしてみます。

実機で動かしてみる

う、だめか。しかし前回はエラー26だったのが、今回はエラー24に変わりましたw

エラー24になった

波形を見ると、それなりにやり取りをしているように見えるんですが。うーん、何がだめなんだろう。

波形はそれっぽいけど・・・

2025年5月29日から2025年5月25日までの日記を表示中

中の人情報

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

カレンダー

カレンダーがありません

最新の10件のエントリ

最近の10件のコメント

過去ログ