Vol.844 13.May.2022

キャンピングカー構造要件の変更 PWMパワーパック おまけ(PICのCIP)

C キャンピングカー構造要件の変更 〜8ナンバーの取得

by fjk

 キャンピングカーとして8ナンバーを得る条件が令和4年4月1日から変更になった。主な変更点は、

@着座姿勢で利用可能な炊事設備(85cm以下)がある場合、床面高さを1.2mとする(従来は1.6m)。
A乗車定員3名以下の就寝設備の最低人数を大人1名以上(従来は2名以上)。

 この改正により、乗用車をキャンピングカーに改装(8ナンバー化)するのが困難であったのが、より改装しやすくなった。特に軽自動車でのメリットが大きそう。詳しくは、国土交通省のページを参照。
 なお、1.4ナンバーは毎年車検だが、8ナンバーは2年ごとの車検。

★参考:自動車税(富山県
ナンバー種類3.5.8.1.4.自家用貨客兼用車(4人以上)
(円/年)自家用乗用車特殊用途車積載〜1t 積載〜2t積載〜3t
軽自動車 10,800 5,000 5,000 ーーー ーーー
1L以下 29,500 23,600 13,200 16,700 21,200
1〜1.5L 34,500 27,600 14,300 17,800 22,300
1.5〜2L 39,500 31,600 16,000 19,500 24,000
(乗車定員3名以下のトラック)⇒ 8,000 11,500 16,000

★参考:重量税
 
ナンバー種類 自家用乗用車 特殊用途車 トラック
(円/2年分) 3.5ナンバー 8ナンバー 1,4ナンバー
軽自動車 6,600(車両重量に係わらず)
〜0.5t 8,200 8,200 6,600
0.5〜1t 16,400 同 上 同 上
1〜1.5t 24,600 16,400 13,200
1.5〜2t 32,800 同 上 同 上


N Nゲージ列車のデジタル運転(1)  〜PWMパワーパック

by fjk

 鉄道模型では列車の走行をパワーパックを使って制御している。昔はアナログ12Vの電圧を制御していたが、最近は電圧を12Vと一定でデジタルパルスの幅を制御するPWM制御がよく使われている。そこで、PICのパルス発生機能を使って列車の走行を制御するパワーパックを作ってみる。
 PICのパルス発生方法は、全てプログラムで作成する手法が簡単だが、正確な波形を作るのは難しい。そこで。ハードウェアとしてPICに内蔵しているCIP(周辺モジュール)を使うのが一般的である。PICにはそのためのモジュールとして@CCP、AECCP、BPWM、C16bit-PWM、DCWG、ECOG、FNCOなど(詳細は後述の「おまけ」を参考)がある。

1.パワーパック回路図と試作電子回路
PICは16F18325で2チャンネルのCCP(PWM)、列車のDCモーターには12V1A程度の電源が必要なので、大電流に耐えうるモータードライバー(TB6643Q)を用いた(12V2A_ACアダプタ利用)。
パワーパック回路 ブレッドボードで試作
2.MCCによる環境設定
MCCで以下のモジュールを準備しGenarate
●システムクロック:HFINTOSC、32MHz
●ADC:(CoversionTime = 23uS、割込有り)
●TMR2:(Time Period = 32uS)
●PinModule:(SW_A2、AN_A4、LED_A5、WPU無し)
●PWM5、PWM6:(SelectTimer = Timer2)
3.制御プログラム
 LEDの明るさ制御と異なり、列車の運転中に電流が流れている状態で方向転換すると、トラブルの元になるので、方向転換スイッチが変わったら、速度ボリュームが0Vになるまでパルス出力を停止し、赤色LEDを点灯している。その後、速度ボリュームが0Vで赤色LEDは消灯し、再びパルス出力が可能となる。すなわち、パルス発生(運転)中に進行方向のスイッチを切り替える(またはリセットスイッチを押す)と緊急停止となる。
 変数"aVal"はデバッグ用にグローバル変数としたが、main関数内に記述しても良い。
 速度ボリュームを回して0Vから電圧を上げてゆくと、PWMのパルス幅が広がり、12VのPWMパルスが出力され、列車が走行した。緑または黄LEDも点灯するので、出力を確認できる。
 が・・・、==>続く。(5/27追加)
 
main.c

#include "mcc_generated_files/mcc.h"
    uint16_t aVal;

void stop_wait_Vr_Zero(void){
    LED_A5_SetHigh();
    PWM5_LoadDutyValue(0);
    PWM6_LoadDutyValue(0);
    do{
    }while(ADC_GetConversion(AN_A4) > 0);
    LED_A5_SetLow();       
}

void main(void)
{
  	SYSTEM_Initialize();
    INTERRUPT_GlobalInterruptEnable();
    INTERRUPT_PeripheralInterruptEnable();

    uint8_t  drc;
    uint8_t  d_sw;
    drc = SW_A2_PORT;
    stop_wait_Vr_Zero();

    while (1)
    {
        d_sw = SW_A2_PORT;
        if(d_sw != drc){
            stop_wait_Vr_Zero();          
            drc = d_sw;
        }
        aVal = ADC_GetConversion(AN_A4);
        if(drc == 0){
            PWM5_LoadDutyValue(aVal);
            PWM6_LoadDutyValue(0);
        }else{
            PWM5_LoadDutyValue(0);
            PWM6_LoadDutyValue(aVal);
        }
    }
}
PWM波形例(10〜50%)
(上:PWM5、下:PWM6)
R103で列車の走行テスト
(車両はBトレインshorty)


※本レポートの参考・利用は、あくまでも自己責任でお願いします。


〜〜〜〜<おまけ(PICのCIP)>〜〜〜〜〜〜〜〜〜〜〜〜〜〜
 PICマイコンでコアから独立した周辺モジュール(CIP)はハードウェアで構成される周辺モジュールで、クロック速度、消費電力、ソフトウェアの複雑さを低く抑え、応答時間を短縮しながら、8ビットアプリケーションの性能を向上できる(PICがスリープ中でも信号の出力・処理が可能)。
 パルス発生に関係する主なモジュールは、

@ CCP(Caputer/Compare/PWM)
16ビットのカウンタで構成され、パルスのカウント、カウンタの比較、パルス幅変調(PWM)の3機能がある。ただし、PWMは最大8+2の10ビットで動作。
A ECCP(Enhanced CCP)
CCP機能のPWMモードを強化したもので、単純なパルス矩形波のみならず相補出力信号出力(デッドタイム設定、シャットダウン機能付き)を追加したもの。
B PWM(Pulse Width Modulation)
CCP機能からPWM機能だけを分離したもの
C 16bit-PWM
PWM波形の位相や同期の設定、センターアラインなどの機能が追加されている。
D CWG (相補波形ジェネレータ、Complementary Waveform Generator)
ECCP機能から(1つの入力信号からの)相補出力信号部分を分離したもので、ハーフブリッジ、フルブリッジ、およびステアリングのPWM波形を生成する。ECCP機能との下位互換性がある。
E COG (相補出力ジェネレータ、Complementary Output Generator)
CWGより高度な相補波形モジュレータで、イベントドリブン方式で信号を生成。
F NCO (数値制御オシレータ、Numerically Controlled Oscillator)
20ビット幅のアキュームレータと加算機からなり、固定デューティモード(FDG)および周波数パルスモード(PF)の2種類のパルス波形を生成。
G COMP (アナログコンパレータ、Comparator:) (シャットダウン用電圧の比較など)
内部や外部からの入力される2つのアナログ電圧を比較しH又はLを出力。
H FVR (定電圧リファレンス、Voltage Reference:)
1.024Vの定電圧電源があり、この1,2、4倍の電圧をPIC(DACやCOMPなど)に供給できる。
I DAC(Digital-to-Analog Converter)
5/8/10ビットのデジタルアナログ変換器。(FVRと一緒に用いて任意の基準電圧を作成)
J ADC(Analog-to-Digital Converter)
10/12ビットのアナログデジタル変換器 (アナログVR入力でパルス幅の制御)
K CLC(Configurable Logic Cell)
プログラム可能なロジック回路をPICに内蔵したもの。
L PPS(Peripheral Pin Select)
PIC内部の機能を柔軟にピンに割り当てる機能。

−−−− クロック発生用 (参考)−−−

・TMR0(Timer)
基本的な16ビットタイマー。カウントアップのみ。
・TMR1,3,・・
ゲート付きの16ビットカウンタ
・TMR2,4,・・  (パルス発生用ベースクロックに用いる)
プリセット・リセット機能付き8ビットカウンタ


キャンピングカー構造要件の変更 PWMパワーパック おまけ(PICのCIP)