あやの
NゲージをベースとしたDCCについての日記を 書いています。 ある程度貯まりましたら、鉄道模型のDCCのまとめサイトに まとめています。 借りている容量が最大に達しましたので、移転します。 ★移転先:http://maison-dcc.sblo.jp/
今日は気が進まない出張の為、某所に。
ガラゲーなので、綺麗に撮れていませんが、かがやきです。
停車中も床下からFANの音がガンガン聞こえているんですね。
しかも、向こう側のホームに停車していないと聞こえないんですね。
帰宅後、DCC信号が3.3V系になっている事を確認して終了w
メモ
ガラゲーなので、綺麗に撮れていませんが、かがやきです。
停車中も床下からFANの音がガンガン聞こえているんですね。
しかも、向こう側のホームに停車していないと聞こえないんですね。
帰宅後、DCC信号が3.3V系になっている事を確認して終了w
メモ
//------------------------------------------------------------------------ // DCC Receive Routine DCC 受信処理 // // Howto: uses two interrupts: a rising edge in DCC polarity triggers INTx // in INTx handler, Timer0 CompareB with a delay of 80us is started. // On Timer0 CompareB Match the level of DCC is evaluated and // parsed. 使い方: 2つの割り込みを使用します。 DCC極性の立ち上がりエッジでINTxハンドラのINTxがトリガされ、80usの遅延を持つタイマ0のコンペアBが開始されます。 Timer0 CompareB Matchで、DCCのレベルが評価され、解析されます。 // // |<-----116us----->| // // DCC 1: _________XXXXXXXXX_________XXXXXXXXX_________ // ^-INTx // |----87us--->| // ^Timer-INT: reads zero // // DCC 0: _________XXXXXXXXXXXXXXXXXX__________________ // ^-INTx // |----------->| // ^Timer-INT: reads one // // new DCC Receive Routine without Timer0 ........................................................ タイマー無しの新しいDCC受信ルーチン。 // // Howto: uses only one interrupt at the rising or falling edge of the DCC signal // The time between two edges is measured to determine the bit value // Synchronising to the edge of the first part of a bit is done after recognizing the start bit // During synchronizing each part of a bit is detected ( Interruptmode 'change' ) DCC信号の立ち上がりエッジまたは立ち下がりエッジで1つの割り込みのみを使用します。 2つのエッジ間の時間が測定され、ビット値が決定される。 開始ビットを認識した後、ビットの最初の部分のエッジに同期する。ビットの各部分の同期中に検出される(割り込みモード「変更」)。 // // |<-----116us----->| // DCC 1: _________XXXXXXXXX_________XXXXXXXXX_________ // |<--------146us------>| // ^-INTx ^-INTx // less than 138us: its a one-Bit // // // |<-----------------232us----------->| // DCC 0: _________XXXXXXXXXXXXXXXXXX__________________XXXXXXXX__________ // |<--------146us------->| // ^-INTx ^-INTx // greater than 138us: its a zero bit // // // // //------------------------------------------------------------------------
PR
デコーダー開発ボードに、SparkFun SAMD21 Mini Breakoutを取り付ける為の
変換アダプタを工作。
SAMD21G18って、3.3Vタイプなので、とりあえずDCC PULSEだけは3.3Vで入力できるように
変換回路追加。
MicrochipのWebページをながめてたら、ATSAMC21E18Aという5Vで動くタイプがありました。
これ欲しいんですけどw
デバックポートはDCC信号入れている時はUSBポートからのデバックができないので、
UARTを使おうと思ったら、3.3Vじゃん。RS-232C変換器がないやという事で終了。
みみずゲームやろうっとw
【追記】
前に買った、USB TTL変換基板のCP2104を持っているのを思い出して取り付けました。
USBがTYPE-Aなのでちょっと微妙だなと思っています。
GNDとTXD,RXDの3本だけ繋いでおけばいいかな。
【なにやってんの?】
ARM Cortex-M0ベースのArduino M0を使ったデコーダを作ってみようという妄想の作業ですw
ATmega328のフラッシュは32kBなのですが、SAMD21G18のフラッシュは256kBあるので
贅沢に使えるのですねー。
変換アダプタを工作。
SAMD21G18って、3.3Vタイプなので、とりあえずDCC PULSEだけは3.3Vで入力できるように
変換回路追加。
MicrochipのWebページをながめてたら、ATSAMC21E18Aという5Vで動くタイプがありました。
これ欲しいんですけどw
デバックポートはDCC信号入れている時はUSBポートからのデバックができないので、
UARTを使おうと思ったら、3.3Vじゃん。RS-232C変換器がないやという事で終了。
みみずゲームやろうっとw
【追記】
前に買った、USB TTL変換基板のCP2104を持っているのを思い出して取り付けました。
USBがTYPE-Aなのでちょっと微妙だなと思っています。
GNDとTXD,RXDの3本だけ繋いでおけばいいかな。
【なにやってんの?】
ARM Cortex-M0ベースのArduino M0を使ったデコーダを作ってみようという妄想の作業ですw
ATmega328のフラッシュは32kBなのですが、SAMD21G18のフラッシュは256kBあるので
贅沢に使えるのですねー。
塩漬けにしていた、Ateml製マイコン Cortex-M0+コアのSAMD21を使った、DCCデーダーを
ちょっとやってみようと情報を仕入れたら、
最新版のNmraDccのコメントに
2017-01-19 added STM32F1 support by Franz-Peter
おー、STM32F1に対応したみたいです。
Franz-Peterさん、goodです!
Webサイトがあるのかなーとググってみたけど、http://ww.stummiforum.de/ かなー
と思うけど開きませんでした。
ドイツは遠かった。
Arduino zero(M0)のCortex-M0でもうごくかな?!
ちょっとやってみようと情報を仕入れたら、
最新版のNmraDccのコメントに
2017-01-19 added STM32F1 support by Franz-Peter
おー、STM32F1に対応したみたいです。
Franz-Peterさん、goodです!
Webサイトがあるのかなーとググってみたけど、http://ww.stummiforum.de/ かなー
と思うけど開きませんでした。
ドイツは遠かった。
Arduino zero(M0)のCortex-M0でもうごくかな?!
山形での休日に暇を持て余しているときに、アマゾンでスイッチサイエンスのSAMD21 Mini Breakoutを
ポチっていました。
USBが Micro-B Cableなんですよね。持ってませんでしたので、ダイソーで購入しました。
ますは、セットアップ
arms22さんの、 Zero/M0 互換ボード「Adafruit Feather M0 Bluefruit LE」の開発環境を準備する。
が便利です。
1、セオリーのLチカ。
合わせて、USBポートからシリアル出力できる様に確認しています。
SerialUSB.begin(9600);
SerialUSB.println("foo");
という感じに記述すればOKです。
2、エミュレートEEPROMを試す
SAMD21(ATSAMD21G18)は、E2P-ROMが実装されていないので、256kBあるフラッシュメモリ
を流用するらしい。
ライブラリはFlashStorage library for Arduinoを使用。
オレンジで塗った
while(!SerialUSB){
;
}
を追加しておかないと、setup内のprintlnを表示してくれなかった。
スケッチ書き込んだ直後は、以下のメッセージを表示。
リセットすると、以下のメッセージを表示。
ポチっていました。
USBが Micro-B Cableなんですよね。持ってませんでしたので、ダイソーで購入しました。
ますは、セットアップ
arms22さんの、 Zero/M0 互換ボード「Adafruit Feather M0 Bluefruit LE」の開発環境を準備する。
が便利です。
1、セオリーのLチカ。
合わせて、USBポートからシリアル出力できる様に確認しています。
SerialUSB.begin(9600);
SerialUSB.println("foo");
という感じに記述すればOKです。
2、エミュレートEEPROMを試す
SAMD21(ATSAMD21G18)は、E2P-ROMが実装されていないので、256kBあるフラッシュメモリ
を流用するらしい。
ライブラリはFlashStorage library for Arduinoを使用。
オレンジで塗った
while(!SerialUSB){
;
}
を追加しておかないと、setup内のprintlnを表示してくれなかった。
スケッチ書き込んだ直後は、以下のメッセージを表示。
EEPROM is empty, writing some example data:
-> 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
Done!
After commit, calling isValid() returns 1
リセットすると、以下のメッセージを表示。
EEPROM has been written.
Here is the content of the first 20 bytes:
-> 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
うまく記録ができています。
とりあえず、IO制御、シリアルデバック、EEPROMモドキの確認ができました。
次は、PWMとかカウンタとかタイマーとかですねぇ。
という日記を書いて、明日からずっと山形ですw
18日はホビセンに行く予定!!!
うまく記録ができています。
とりあえず、IO制御、シリアルデバック、EEPROMモドキの確認ができました。
次は、PWMとかカウンタとかタイマーとかですねぇ。
という日記を書いて、明日からずっと山形ですw
18日はホビセンに行く予定!!!
ブログ内検索
カテゴリー
最新記事
(12/31)
(12/31)
(12/29)
(12/23)
(12/18)
リンク
プロフィール
HN:
あやのすけ
性別:
非公開
| HOME |