忍者ブログ

あやの

NゲージをベースとしたDCCについての日記を 書いています。 ある程度貯まりましたら、鉄道模型のDCCのまとめサイトに まとめています。 DCC館 http://1st.geocities.jp/dcc_digital/ DCC2号館 http://dcc.client.jp/

2019/08    07« 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  31  »09
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兼用ライターが配布されると、便利ですね!


拍手[2回]

PR
【今日も難しい話です】
SmileWriter5in1を使って、PIC12F1822用のPICライターを作ろうと試行錯誤しています。

今日は、Arduinoのスケッチ:Ardpicprog、Windows7用ホストアプリ:ProgramPicが
GitHubに登録されているので、Fork(デットコピー)して自分のアカウントでリポジトリしました。


Windows7用ホストプログラム
ArdPicProgHost.exe
extended segment address に対応。

Arduino用シールド
ProgramPIC.ino
PIC12F683 と PIC12F1288に対応。


まだGitHubの使い方がよく分からない(^^;

拍手[0回]

【今日も難しい話です】
SmileWriter5in1を使って、PIC12F1822用のPICライターを作ろうと試行錯誤しています。

先日までの調査した結果から、プログラムを変更していきます。

1、Extended segment addressに対応させました。
   従来のプログラムは RECTYPE=04 を無視していたので、処理を追加しました。
2、EEPROMdump表示部分で、アドレスが0xF000だと、FFFFF000で表示されてしまうので、
  とりあえず何も考えずに、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ライタ部が完成したので、当初考えていた機能が
全部実装できました。パチパチ。

拍手[3回]

【今日も難しい話です】
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で良いのに、電圧変えないといけないのかぁ・・・



拍手[0回]

【今日も難しい話です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

そかー・・・・むむむむむ


拍手[0回]

ブログ内検索

プロフィール

HN:
あやのすけ
性別:
非公開
| HOME Next >>
Copyright ©  -- あやの --  All Rights Reserved
Design by CriCri / Material by もずねこ / powered by NINJA TOOLS / 忍者ブログ / [PR]