ラベル Arduino の投稿を表示しています。 すべての投稿を表示
ラベル Arduino の投稿を表示しています。 すべての投稿を表示

2024年5月22日水曜日

RetroVGen クロック調整してみた (Arduino Uno)

友達から追加オーダーが入ったので、前回同様に作成します
何か知らんけど、UNOの拡張端子はズレているので、専用基板をチョイス。
作成方法は同じですが、
ショートしないようレジンでコーティング
操作しやすいように、リセットスイッチ追加
テスト端子を付けたので、周波数調整も簡単(^^♪
水平同期
垂直同期
調整は「videoparam.h」の「H Total」と「V Total」で行う。
それぞれ1減らしたらいい感じになった。

※将来独自設定作るための備忘録


画面全体に文字を表示している、設定5を利用。
H-Syncパラの検証 48p(黄色)⇒20p(白) ※分かりやすいようにp追加
0.0625μS × 48p = 3.00μS が 1.25μS 測定結果と一致
H Totalの値が優先されるためか、同期信号の幅のみ縮んでいる
1ドット 0.125μS(0.0625μS × 2p) 文字は8ドットなので、16p
H Front Porch,H Back Porchの値はないが、48p、64pくらいと考えると計算的に合う。
644p-(48p+48p+64p) = 484p
484p / 16p = 30.25文字
基本的に、H Totalが重要で、文字で画面を可能な限り表示しているだけ。
Line Doubler同様に横方向も引き延ばせればいいような気もするが、処理速度的に実現できなかったんだろうなと妄想(*´ω`*)
V-Syncパラの検証 8(水色)⇒4(白 下段)
H-Syncの個数で指定しているようだ
こちらも同期信号のみ縮んでいる。
同様にFront Porch、Back PorchもH-Syncの個数
V Total 448(初期値) から 16,8,24引いて 400ラインが表示領域
400ライン、V Char 25から文字フォントは16ライン
Line Doubler 0:全ライン、1:2ラインをまとめ、半分の解像度にする
※周波数調整で448⇒447としているため、V-Syncのどこかの部分が切り捨てられいると考えられる。V Back Porchで調整すると先頭が欠けることから、安全をとるならV Front Porchを減らすのが正解と思われる。


2023年8月27日日曜日

RDT1713LMの細かなテスト(RetroVGen 再作成)

RDT1713LMのテストにあたりRetroVGenが無いと不便なので再作成してみた。
今度はArduino Nanoを使って可能な限り小さくしてみた。
ロータリースイッチが無いので、設定変更はPCから行う^^;

それではテスト開始(^^♪
0:VGA 31KHz OK 全て表示
1:NTSC 15KHz OK 全て表示
2:X1 15KHz OK 全て表示
3:X68000 15KHz △ 下2行欠け
4:PC-9801 15KHz OK 全て表示
5:X1turbo 24Khz △上下が切れている模様
   ※手動調整でここまで可能、下が切れているが実機でどのくらいかは不明
6:PC-9801 24KHz OK 全て表示
7:X68000 31KHz △ 下段0,1が切れているのでファンクションが見れないと思われる。

2023年8月24日木曜日

RetroVGen 作ってみた(Arduino Uno)

 レトロPCで使えるモニタは貴重なのですが、型番以外のロットもチェックする必要があるので買ったけど使えなかった事件が頻発しているようだ。((+_+))

ということで、友達に依頼されて作成してみました。

細かな使い方は『「ちまちま」のゲーム日記』が参考になります。

このキット、Arduino Unoで開発されているので、キットさえ持っていればソース開いてコンパイル⇒流し込み、RGB周りは簡単な抵抗とスイッチ類のみで作れるので入門レベルで作れてしまいます。

開発キットの追加モジュールの回路図
RGBコネクタはピッチが異なるで穴あけ
RGBシールド完成
勢いで配線したので、見た目は微妙。
あとは乗っけるだけ
完成!
動きました。
モニタがショボいので、0設定しか表示できませんけど( ;∀;)
これでハードオフめぐりが楽しくなりそうです。(*´ω`*)

2020年9月3日木曜日

LEV40-8 CMUの信号を覗いてみた その2

助っ人を召喚しました。

USB-CAN デバッガアダプタ。

適当に安いのを選んだためか、中国語しか対応していません。( ゚Д゚)
なんとか使えているので良しとするか・・・。


繋いだらCMUの動作に変化が見られました!

接続前
0.000036600,0,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK
0.000298600,1,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK
0.000560600,2,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK
0.000822800,3,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK
0.001084800,4,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK
0.001346800,5,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK
0.001608800,6,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK
0.001871000,7,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK

接続後
0.018130200,0,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,ACK
0.018432600,1,DATA,0x612,0x8,0x0F 0x2D 0x0E 0xA6 0x0F 0x2E 0x0F 0x30,0x3924,ACK
0.018739000,2,DATA,0x613,0x8,0x0F 0x31 0x0F 0x2E 0x0F 0x30 0x0F 0x33,0x684E,ACK
0.019043200,3,DATA,0x614,0x8,0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF,0x2D67,ACK
0.058140800,4,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,ACK
0.058443200,5,DATA,0x612,0x8,0x0F 0x2D 0x0E 0xA7 0x0F 0x30 0x0F 0x30,0x0061,ACK
0.058745600,6,DATA,0x613,0x8,0x0F 0x31 0x0F 0x30 0x0F 0x30 0x0F 0x33,0x0DF9,ACK
0.059049800,7,DATA,0x614,0x8,0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF,0x2D67,ACK

ロジアナ上でも変化が! 連続して送信し続けていたのが、間欠送信となりました。


CANバスの仕組みとして、データを受信したノードがCRCを計算して問題なければACKを返す仕組みがあり、送信側はACKが無いので同じデータを送り続けていたようです。

では送られてきたデータを読み取ってみましょう。
0x611,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF
バランス実行無し、29℃、29℃、29℃、29℃、29℃
0x612,0x0F 0x2D 0x0E 0xA6 0x0F 0x2E 0x0F 0x30
S1:3.885mV、S2:3.750mV、S3:3.886mV、S4:3.888mV
0x613,0x0F 0x31 0x0F 0x2E 0x0F 0x30 0x0F 0x33
S5:3.889mV、S6:3.886mV、S7:3.880mV、S8:3.891mV 
0x614,0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
未使用

0x611については諸説あるのであれですが、612~614の電圧はあっているように見えます。

最後にバランスコマンドのテストを・・・

あれ? マニュアル通りに設定しているのにちゃんと送れない。
ロジアナで確認すると拡張IDでRTR形式で送信している。なぜだ( ゚Д゚)

原因判明 なんとIDタイプとRTRの指定を中国語のまま保存する仕様になっており、文字化けで誤動作していました。該当の文字をコピペしてなんとか設定完了。

0x611のバランス情報が0xFDとなり2セル以外バランスしていることが分かります。
0.149405400,16,DATA,0x3C3,0x8,0x0F 0x10 0x01 0x04 0x03 0x00 0x00 0x00,0x67F1,ACK
0.184412000,18,DATA,0x611,0x8,0xFD 0x30 0x51 0x51 0x51 0x51 0x51 0xFF,0x10FC,ACK
0.184710400,19,DATA,0x612,0x8,0x0F 0x2B 0x0E 0xA3 0x0F 0x2D 0x0F 0x2D,0x20B0,ACK
0.185008800,20,DATA,0x613,0x8,0x0F 0x2E 0x0F 0x2D 0x0F 0x2D 0x0F 0x31,0x28B6,ACK

左がバランスなし、右がバランスありです。セル2が低いので他7セルを抵抗で消費しています。

動画はこちら。バランスコマンドは1回送ればいいのではなく、コマンドの都度数ミリ秒実行されるようです。
停止⇒連続⇒停止⇒連続⇒頻度小⇒頻度中と変化させてみました。



2020年8月23日日曜日

【Arduino】 AVRISP_mkIIが来たので環境を整えてみた

・TL866IIPlusしかもっていないので、ROM書きが面倒。
 1.Arduino IDE ⇒ Arduino UNO
 2.TL866IIPlus ICSP UNO読込み ⇒ TL866IIPlus ICSP LCDスクリーン書込み

AVRISP mkIIがあればそのままArduino IDEからROM書きできるみたいなので購入してみました。
もちろん、パチモンですけどね。(*´ω`*)

早速Arduino IDEから書込みを試みましたが、USBデバイスを認識してくれません。
初期不良の可能性もあるので、本来の環境であるAtmelStudio7で確認。
ドライバがいくつかあるのですが、
 
左のMicrochipToolsの方で正常に認識し、読み書き正常。
色々調べていくとArduino IDEとAtmelStudio7ではドライバが異なるようで、それを補うためのlibusb-win32というツールがあるようなのですが、Windows10 64bit環境の署名問題で現状ではうまく動かないようです。

そこで、AtmelStudio7でArduino IDEライブラリを使う方法を調べてみました。

最初試したのは、AtmelStudio7のArduinoスケッチ読込み機能なんですが、U8g2ライブラリをインポートしてもコンパイル時にヘッダファイルが無いの一点張り。エディタでは正常に認識しているのに何だろう。

次に試したは、拡張ツールである「Arduino IDE for Atmel Studio7」
こちらは、U8g2ライブラリを認識してコンパイルしてくれます。素晴らしい!!(≧▽≦)
せっかくAtmel Studio7環境に移行したので、JTAGICE mkIIにしてデバックできるようにしたいな。

2020年8月15日土曜日

【Arduino】 スマートBMS用 LCDスクリーンディスプレイ を使って開発してみよう

スマートBMS用に組まれたボードですが、
Arduino環境での開発が出来そうだったので試してみました。

マイコンはATmega328P。
ICSP端子も付いているのでAVRISP mkIIがあればそのままArduino IDEからROM書き可能。

LCDパネルは、JLX19296G-380
マニュアルを確認すると、LCDコントローラはST75256。
・よかった。u8g2ライブラリでサポートされている



・設定はSPI接続で、
その他ポートまわりを調べた結果がこちら、普通に使えそう。

テストプログラムを書いてみた。

自分はTL866IIPlusしかもっていないので、
 ・Arduino IDE ⇒ Arduino UNO
 ・TL866IIPlus ICSP UNO読込み ⇒ TL866IIPlus ICSP LCDスクリーン書込み

と面倒なので、素直にAVRISP mkIIを買おう。