無料ブログはココログ

スマイルスリム85版デコーダ

概要

  • ATtiny841を使用したSmileSlimデコーダ開発を目的として試作した、非実用的なATtiny85暫定版NEM651の汎用デコーダ
  • Bトレ機関車タイプに組み込む事を確かめるため、片面実装とし可能な限り薄型とする
  • 非対称DCC検出の非実用的な実験回路
  • モータ最大電流想定0.5A
  • DCC最大ピーク電圧想定18V
  • 5V/max40mA出力の双方向ファンクションFH、RH
  • *スマイルコネクタでスケッチ書き変えが可能

*スマイルコネクタは、スマイラーさんが提案されたDCCデコーダ向け書き込み規格です。

外観

回路図

Twsmileslim85_sch

部品リスト

部品番号 仕様 型式 入手先 通販コード 購入単位 価格 単価 数量 備考
C1 1608積層セラミック 10μ25V 秋月電子 P-07768 10個 \150 @15 1個  
C2 2012積層セラミック 22μ25V 秋月電子 P-08240 10個 \180 @18 1個  
C4 1608積層セラミック 0.1μ50V 秋月電子 P-04940 200個 \100 @0.5 1個  
D1,2,3,4 ショットキーバリアダイオード RSX101VA/1A 秋月電子 I-05951 20個 \180 @9 4個  
D6 ショットキーバリアダイオード RB751S/0.03A 秋月電子 I-05953 20個 \150 @7.5 1個  
J1 1.27mmピンヘッダ 2200SA-25G-34 秋月電子 C-03872 1x25 \50 @2 6ピン  
R1 1608チップ抵抗 47K1/10W 千石電商   10個 \53 @5.3 1個  
R2,R3 1608チップ抵抗 100K1/10W 千石電商   10個 \53 @5.3 2個  
R4 1608チップ抵抗 22K1/10W 千石電商   10個 \53 @5.3 1個  
U1 AVRマイコン ATTINY85-20SUR 秋月電子 I-09574 1個 \250 @250 1個  
U2 3端子レギュレータ TA78L05 秋月電子 I-00494 10個 \250 @25 1個  
U2 モータードライバー A4953ELJTR-T チップワンストップ   5個 \855 @85.5 1個  

スケッチの注意事項

  1. Drazzy Core ATtiny85でanalogWrite関数が動作するTimer1PWMはD4のOC1Bだけですが、下記urlでとても便利な関数が紹介されていましたので、無断で活用させて頂きました。
    Four PWM Outputs from the ATtiny85
    オリジナルの関数名はSetColour()ですが、モータ駆動にも使いたいのでpwmWrite()にリネームしています。関数のパラメータはTimer1限定に変更しました。

    const int motor_pwma = 0;
    const int motor_pwmb = 1;
    volatile uint8_t* Port[] = {&OCR1A, &OCR1B};
    int Pin[] = {1, 4};
    void pwmWrite(int colour, int intensity) {
      *Port[colour] = intensity;
    }

  2. コンパイルスイッチ1:#define PWM_ONBRAKE
        モータドライバーにA4953を使用しています。このドライバーはOn-FreePWMなので、PWMオフの間逆起電力の逃げ場が無く、リニアな駆動ができません。そのためOn-BrakePWMモードにするスイッチです

    #ifdef PWM_ONBRAKE
      pwmWrite(motor_pwmb, 255 - aPWMRef);
      pwmWrite(motor_pwma, 255);
    #else
      pwmWrite(motor_pwmb, aPWMRef);
      pwmWrite(motor_pwma, 0);
    #endif

  3. コンパイルスイッチ2:#define KIHA48
         NEM651の5ピンと6ピンでヘッドライトの双方向点灯を行っていますので、キハ48など片運転台でLEDに逆バイアスが掛かるのを防ぐスイッチです

    #ifdef KIHA48
      digitalWrite (FH, LOW);
    #else
      digitalWrite (FH, HIGH);
    #endif

スケッチのダウンロード

June20 '2017 スマイルコネクタ出力競合回避コードを修正  tw-smile_slim85.zip