あやの
NゲージをベースとしたDCCについての日記を 書いています。 ある程度貯まりましたら、鉄道模型のDCCのまとめサイトに まとめています。 借りている容量が最大に達しましたので、移転します。 ★移転先:http://maison-dcc.sblo.jp/
DCC電子工作連合のデコーダも板厚1.6mmから、0.6mmタイプへの移行が進んでいます。
OneCoinデコーダーは0.6mmタイプの配布が始まっています。
スマイラーさんからスマイルライターCOMBOを配布してもらいましたので、
早速組み立てて見ました。
KiCADを使ってみよう! 「スマイルライターCOMBO」の製作 その3
ライターのプログラムはArduino NANOが司っていますので、私の場合Macなんで、
USBシリアル変換ICがFTDIタイプのArduino NANOを使用します(赤い!)
使用している部品はDIPなのですぐに作れました。
ん、Thinは薄い。Slimはスリム?
アクリル板の用意されています。
※アクリルの傷防止用の保護シートが貼ったままなので白っぽくなっています。
(私としてはこれは、これで良いかなと(^^
このコネクタに1.6mmは刺しちゃダメだったかなーと思ったけど、
自分的に左側は1.6mm。
右側に0.6mmデコーダーを接続しました。
1.6mm / 0.6mm兼用ライターが配布されると、便利ですね!
OneCoinデコーダーは0.6mmタイプの配布が始まっています。
スマイラーさんからスマイルライターCOMBOを配布してもらいましたので、
早速組み立てて見ました。
KiCADを使ってみよう! 「スマイルライターCOMBO」の製作 その3
ライターのプログラムはArduino NANOが司っていますので、私の場合Macなんで、
USBシリアル変換ICがFTDIタイプのArduino NANOを使用します(赤い!)
使用している部品はDIPなのですぐに作れました。
ん、Thinは薄い。Slimはスリム?
アクリル板の用意されています。
※アクリルの傷防止用の保護シートが貼ったままなので白っぽくなっています。
(私としてはこれは、これで良いかなと(^^
このコネクタに1.6mmは刺しちゃダメだったかなーと思ったけど、
自分的に左側は1.6mm。
右側に0.6mmデコーダーを接続しました。
1.6mm / 0.6mm兼用ライターが配布されると、便利ですね!
PR
【今日も難しい話です】
SmileWriter5in1を使って、PIC12F1822用のPICライターを作ろうと試行錯誤しています。
今日は、Arduinoのスケッチ:Ardpicprog、Windows7用ホストアプリ:ProgramPicが
GitHubに登録されているので、Fork(デットコピー)して自分のアカウントでリポジトリしました。
Windows7用ホストプログラム
ArdPicProgHost.exe
extended segment address に対応。
Arduino用シールド
ProgramPIC.ino
PIC12F683 と PIC12F1288に対応。
まだGitHubの使い方がよく分からない(^^;
今日は、Arduinoのスケッチ:Ardpicprog、Windows7用ホストアプリ:ProgramPicが
GitHubに登録されているので、Fork(デットコピー)して自分のアカウントでリポジトリしました。
Windows7用ホストプログラム
ArdPicProgHost.exe
extended segment address に対応。
Arduino用シールド
ProgramPIC.ino
PIC12F683 と PIC12F1288に対応。
まだGitHubの使い方がよく分からない(^^;
【今日も難しい話です】
SmileWriter5in1を使って、PIC12F1822用のPICライターを作ろうと試行錯誤しています。
先日までの調査した結果から、プログラムを変更していきます。
1、Extended segment addressに対応させました。
従来のプログラムは RECTYPE=04 を無視していたので、処理を追加しました。
とりあえず何も考えずに、myRightという関数作って右から4文字を表示する様に変更。
3、ProgramPICスケッチ側
pic12F1822のdeviceInfoを確定させました。
EEPROMのアドレスの件は、
KO-IBO project blogさんの、Pic12F1822のデータEEPROMに書き込むのは
を参考にしました。
結局PIC12F1822のEEP-ROM領域は0xF000〜です。
完成〜!!!
Erase → Write とボタンを押すと、Program,Config,EEP-ROMが正常に書き込めました。
あとは電車に実装して、動作確認です。
でも、手頃な電車が無いな〜
ちなみに、書き込み電圧は12Vのままです。
これで、PIC12F683とPIC12F1822用のPICライタ部が完成したので、当初考えていた機能が
全部実装できました。パチパチ。
【今日も難しい話です】
SmileWriter5in1を使って、PIC12F1822用のPICライターを作ろうと試行錯誤しています。
ほぼ調べたメモ代わり状態ですw
HEX ファイル上のLOAD OFFSETが0008の時、PICのアドレスは4なのですね。
だから、ArdPicProgHostのソースでアドレスを取り込む部分で、
intDataAddress = Val("&H" + strSourceFileIntelHex.Substring(intFilePointer, 4)) >> 1
の様に「>>1」で右に1bitずらしていたのですね。
このint型への変換でValを使っていますが、これは負号付き16bitなので、
0xE000が来ると、16bit負号ありで10進数に変換されると、「-8192」になって、
おかしくなってしまうのですね。
int型から、Long型に変えて、
longDataAddress = Clng("&H" + strSourceFileIntelHex.Substring(intFilePointer, 4)) >> 1
10進数変換は、Clng()を使うと良さそう。
SmileWriter5in1を使って、PIC12F1822用のPICライターを作ろうと試行錯誤しています。
ほぼ調べたメモ代わり状態ですw
HEX ファイル上のLOAD OFFSETが0008の時、PICのアドレスは4なのですね。
だから、ArdPicProgHostのソースでアドレスを取り込む部分で、
intDataAddress = Val("&H" + strSourceFileIntelHex.Substring(intFilePointer, 4)) >> 1
の様に「>>1」で右に1bitずらしていたのですね。
このint型への変換でValを使っていますが、これは負号付き16bitなので、
0xE000が来ると、16bit負号ありで10進数に変換されると、「-8192」になって、
おかしくなってしまうのですね。
int型から、Long型に変えて、
longDataAddress = Clng("&H" + strSourceFileIntelHex.Substring(intFilePointer, 4)) >> 1
10進数変換は、Clng()を使うと良さそう。
あとは、 RECTYPE = 02 の時の、拡張セグメントアドレスレコードの演算部分を追加して
あげればPIC12F1822の対応ができそう。
!!!
えーPIC12F1822の,VIHHって、Min8.0V 〜 Max9.0Vなんですか!
詰みました。
PIC12F683は12Vで良いのに、電圧変えないといけないのかぁ・・・
【今日も難しい話ですw】
SmileWriter5in1で、PIC12F1822ライタが作れないかなの調査です。
PIC HEXファイルを分析していたところ、先日赤枠で囲ったところは、実はConfiguration Wordの
値でした。
MPLAB IPE をMacにインストールして、HEXファイルを覗いてメモリマップを確認したのと、
HEXファイルを分析してわかりました(^^;
レコードタイプが04だと拡張リニアアドレスという事なので、アドレスを算出するには、
32bitに拡張する計算が必要です。
((0x0001<<16) + 0x0000+0x0001) / 2 = 0x8000
0x0001 を左に16bitシフトして、LoadOffset(0x0000)を加算
Data(0x0001)を加算して、2で割ります。
というわけで、現状のHostProgramであるArduino Pic Programmerが
拡張張リニアアドレスレコードに対応していないんだなー。
この辺を調べましょう。
【追記】Ardiono Pic Programmerのソースファイルを眺めて・・・
'process extended segment address -> not required
そかー・・・・むむむむむ
SmileWriter5in1で、PIC12F1822ライタが作れないかなの調査です。
PIC HEXファイルを分析していたところ、先日赤枠で囲ったところは、実はConfiguration Wordの
値でした。
MPLAB IPE をMacにインストールして、HEXファイルを覗いてメモリマップを確認したのと、
HEXファイルを分析してわかりました(^^;
レコードタイプが04だと拡張リニアアドレスという事なので、アドレスを算出するには、
32bitに拡張する計算が必要です。
((0x0001<<16) + 0x0000+0x0001) / 2 = 0x8000
0x0001 を左に16bitシフトして、LoadOffset(0x0000)を加算
Data(0x0001)を加算して、2で割ります。
というわけで、現状のHostProgramであるArduino Pic Programmerが
拡張張リニアアドレスレコードに対応していないんだなー。
この辺を調べましょう。
【追記】Ardiono Pic Programmerのソースファイルを眺めて・・・
'process extended segment address -> not required
そかー・・・・むむむむむ
ブログ内検索
カテゴリー
最新記事
(12/31)
(12/31)
(12/29)
(12/23)
(12/18)
リンク
プロフィール
HN:
あやのすけ
性別:
非公開