パソコンで鉄道模型を制御するための基礎検討(9)
PC制御対応PIC基板のプログラム
PC制御+マニュアル操作対応のPIC基板用プログラム(HEXファイル)を出来次第、順次追記してゆきます。
ただし実施済みの動作確認テストはマニュアル操作およびPCとの1対1通信のみです。
複数接続の最終的なシステムテストはだいぶ先になります。
下記HEXファイルをPICマイコンに書き込む方法は以下の通りです。
HEXファイルをダウンロード(右クリック-->名前を付けてリンク先を保存)してローカルPCに置きます。
基板に電源を供給し、MPLAB SNAP等のPIC書込みツールをPCと基板に接続します。
MPLAB IPEを起動してチップの型番 PIC16F?????を記入し、ダウンロードしたHEXファイルをドラッグ&ドロップします。
connectボタンを押し、左上[settings]をクリック-->Release from Resetをクリックしてから【注:Hold on Reset解除】
programボタンを押して書き込みます。
書き込みツール等については「PICマイコンと開発ツール」のページやWeb情報を参照してください。
ただし実施済みの動作確認テストはマニュアル操作およびPCとの1対1通信のみです。
複数接続の最終的なシステムテストはだいぶ先になります。
下記HEXファイルをPICマイコンに書き込む方法は以下の通りです。
HEXファイルをダウンロード(右クリック-->名前を付けてリンク先を保存)してローカルPCに置きます。
基板に電源を供給し、MPLAB SNAP等のPIC書込みツールをPCと基板に接続します。
MPLAB IPEを起動してチップの型番 PIC16F?????を記入し、ダウンロードしたHEXファイルをドラッグ&ドロップします。
connectボタンを押し、左上[settings]をクリック-->Release from Resetをクリックしてから【注:Hold on Reset解除】
programボタンを押して書き込みます。
書き込みツール等については「PICマイコンと開発ツール」のページやWeb情報を参照してください。
PMD_S基板(PC制御対応のFM90を使ったポイント駆動用基板)のプログラム
PMD_S_PIC16F18325_57.6Kbaud.hex (2023/12/18に通信速度を57.6Kbaudに変更)
スイッチによるマニュアル操作とPCからの制御はどちらも常に有効です。
PC制御を使用せずマニュアル操作のみ行なう場合は通信端子のTx,Rxは未接続でOKです。
FM90のモーターはスイッチが切り替わった瞬間とPCからポイント切替のコマンドが来た瞬間のみ駆動されます。
PCからのポイント切替命令や状態読み出し命令はプロトコルテーブルのPMD_Sの欄を参照してください。
スイッチによるマニュアル操作とPCからの制御はどちらも常に有効です。
PC制御を使用せずマニュアル操作のみ行なう場合は通信端子のTx,Rxは未接続でOKです。
FM90のモーターはスイッチが切り替わった瞬間とPCからポイント切替のコマンドが来た瞬間のみ駆動されます。
PCからのポイント切替命令や状態読み出し命令はプロトコルテーブルのPMD_Sの欄を参照してください。
SPD_S基板(PC制御対応のスローポイント駆動用基板)のプログラム
SPD_S_PIC16F18325_57.6Kbaud.hex (2023/12/18に通信速度を57.6Kbaudに変更)
スイッチによるマニュアル操作とPCからの制御はどちらも常に有効です。
PC制御を使用せずマニュアル操作のみ行なう場合は通信端子のTx,Rxは未接続でOKです。
ステッピングモーターはスイッチが切り替わった後の4秒間とPCからポイント切替のコマンドが来た後の4秒間のみ駆動されます。
PCからのポイント切替命令や状態読み出し命令はプロトコルテーブルのSPD_Sの欄を参照してください。
スイッチによるマニュアル操作とPCからの制御はどちらも常に有効です。
PC制御を使用せずマニュアル操作のみ行なう場合は通信端子のTx,Rxは未接続でOKです。
ステッピングモーターはスイッチが切り替わった後の4秒間とPCからポイント切替のコマンドが来た後の4秒間のみ駆動されます。
PCからのポイント切替命令や状態読み出し命令はプロトコルテーブルのSPD_Sの欄を参照してください。
SIG3_S基板(3灯式信号機用基板)のプログラム
SIG3_S_PIC16F18346_57.6Kbaud.hex
(2024/3/10にPCとの通信時の信号色指定コードがプロトコルテーブルと合っていなかったので修正しました)
(2024/4/1にセンサー出力パルス幅を1秒以上に延長し、PC側から確実に補足できるようにしました。)
(2024/8/11にPC側から信号色を指定して変更した際、タイマー設定動作の起動がかからなかったので修正しました。)
スイッチによるマニュアル操作とPCからの制御はどちらも常に有効です。
PCからの命令はプロトコルテーブルのSIG3_Sの欄を参照してください。
(2024/3/10にPCとの通信時の信号色指定コードがプロトコルテーブルと合っていなかったので修正しました)
(2024/4/1にセンサー出力パルス幅を1秒以上に延長し、PC側から確実に補足できるようにしました。)
(2024/8/11にPC側から信号色を指定して変更した際、タイマー設定動作の起動がかからなかったので修正しました。)
スイッチによるマニュアル操作とPCからの制御はどちらも常に有効です。
PCからの命令はプロトコルテーブルのSIG3_Sの欄を参照してください。
SIG6_S基板(6灯式信号機用基板)のプログラム
SIG6_S_PIC16F18346_57.6Kbaud.hex
(2024/4/1にセンサー出力パルス幅を1秒以上に延長し、PC側から確実に補足できるようにしました。)
(2024/8/11にPC側から信号色を指定して変更した際、タイマー設定動作の起動がかからなかったので修正しました。)
スイッチによるマニュアル操作とPCからの制御はどちらも常に有効です。
PCからの命令はプロトコルテーブルのSIG6_Sの欄を参照してください。
なお、基板上のジャンパピン設定はPC側から読み出しはできますが関連動作をPC側から変更することは出来ません。
(2024/4/1にセンサー出力パルス幅を1秒以上に延長し、PC側から確実に補足できるようにしました。)
(2024/8/11にPC側から信号色を指定して変更した際、タイマー設定動作の起動がかからなかったので修正しました。)
スイッチによるマニュアル操作とPCからの制御はどちらも常に有効です。
PCからの命令はプロトコルテーブルのSIG6_Sの欄を参照してください。
なお、基板上のジャンパピン設定はPC側から読み出しはできますが関連動作をPC側から変更することは出来ません。
SW_S基板(デュアルキャブ制御用リレー基板)のプログラム
SW_S_PIC16F18346_57.6Kbaud.hex
電源投入後の初期化時に最大4個搭載できるリレーの内、実際にどのリレーが基板に実装されているかを判定します。
その結果(1個~4個)に従ってPCからのループネットワークに応答します。
リレー有無の判定はリレー駆動用のPICマイコン出力ピンにLED+抵抗(Pull down)が接続されているか否かで行ないます。
IN1~IN4のマニュアル操作用トグルスイッチ入力はON(short)からOFF(open)またはその逆の変化を検出して対応したリレーをON/OFFします。
PCからループネットワーク経由でリレーの制御信号が来るとIN1~IN4の入力状態にかかわらずリレーをON/OFFします。
電源投入後の初期化時に最大4個搭載できるリレーの内、実際にどのリレーが基板に実装されているかを判定します。
その結果(1個~4個)に従ってPCからのループネットワークに応答します。
リレー有無の判定はリレー駆動用のPICマイコン出力ピンにLED+抵抗(Pull down)が接続されているか否かで行ないます。
IN1~IN4のマニュアル操作用トグルスイッチ入力はON(short)からOFF(open)またはその逆の変化を検出して対応したリレーをON/OFFします。
PCからループネットワーク経由でリレーの制御信号が来るとIN1~IN4の入力状態にかかわらずリレーをON/OFFします。