PIC18F4525でロードモジュール用ADコンバータHX711の使用

今回はロードモジュール用ADコンバータのラダーを掲載いたします。
HX711では、シリアルによる通信で測定データを取得します。

この時、ダイレクト入出力命令SETDやRSTD、ダイレクト入力など使用いたします。
参考にしていただければと思います。

HX711_Ladder ラダー図

HX711の通信プログラム概略

連枝PIC16F88でデータの停電保持

 PIC16F88では、停電しても記憶しておくためのレジスタが存在します。
CPUの関係で、このレジスタはビット単位でアクセスするL0~L47と
なっています。

 通常のラダーでは、L0~L47はビット単位ですので、ワード値の
停電保持はできません。

 そのことから、ラダーを工夫して、ワード値の停電保持をご紹介いたします。

連枝停電保持ラダー

ポイントは以下の通りです。
1.起動時1スキャンリレーを使用し、退避していたL0~L15のデータをD0に転送する。
2.D0が変わった信号を使用し、D0と共にL0~L15にデータを格納する。

サンプルのラダーでは、X0をカウントを増やす接点とし、そのカウント値を停電保持リレーに記憶するものです。

PIC16F88停電保持

連枝のシリアル通信(無手順通信)でGPS/GNSS取得

お客様からお問い合わせいただき、シリアル通信を
確認いたしました。
シリアル通信の無手順ライブラリを使用することで
アスキーコードの通信が行えます。
また、やり取りするデータを数値に変換するためには、
WAND、SFTR、*、+などの応用命令を使用いたします。
その内容を添付資料にまとめました。

通信プログラム

ご参考までに。

連枝によるシリパラ変換IC BU2090制御

 お客様からのお問い合わせいただきましたICの制御について
動作確認ができましたので、皆様にお知らせいたします。

 既存のライブラリではそのまま制御が行えませんでした。
そのため、応用関数を組み合わせて通信する方法をご紹介いたします。
詳細のプログラムは下記のリンク、PDFをご覧ください。

シリパラ変換IC_BU2090

 また、動画をご用意いたしました。
参考までご活用ください。

シリパラ変換IC BU2090

連枝PIC16F88CPUにMCP23008のIO拡張

 MCP23008のIO拡張についてお問い合わせいただきましたので、
その内容についてお知らせいたします。

 動作ライブラリのプログラムおよびその使用についての
動画をご紹介いたします。

MCP23008の拡張動作ライブラリP16F88

PIC16F88CPUにIO拡張(MCP23008)

SLEEP関数について

 お客様よりご要望いただいております機能について
ご紹介いたします。
 SLEEP命令について今後、各CPUで
サポートしていきたいと思っております。
追加で、SLEEP命令についてご要望がございましたら
ご依頼いただきましたら、機能実装で、検討したいと思っております。

・技術文書
SLEEP命令のサポートについて

・SLEEP関数に関する動画
連枝を使用したSLEEPについて

拡張機能について(IOが足りなくなったら)

連枝では、IOの点数が足りなくなった場合に、複数のCPUやExpanderICを接続して、
IOを増やすことができます。その方法は以下の通りです。
配線方法やIOの番号などについては、ページの下部のPDFファイルをご確認ください。

CPU2個を接続して拡張(マルチCPU接続)
CPUにExpanderICを接続して拡張(MCP接続)
複数のCPUをネットワーク化(I2C通信 4台までが目安)
複数のCPUをネットワーク化(CAN通信 8台までが目安)

拡張機能について

CAN通信を使用する場合

CAN通信を使用する場合、以下の点に注意してください。

・機器のCPUに注意してください。
 458・258 シリーズ同士、4585・4680シリーズ同士での
接続しかできません。458と4680の接続はプロトコルが異なるため
通信できませんのでご注意ください。

 PIC18F458(PIC18F258) – PIC18F458(PIC18F258)

PIC18F4585,PIC18F4680 – PIC18F4585,PIC18F4680

・クロックは必ず外部発振をご使用ください。
CPU設定で、「XTL外部」にチェックを入れ、
CPUクロックをCPUのデフォルト値を指定してください。
その他のクロックを指定した場合、I2Cなどの不良動作と
なることがあります。
※内部クロックでは、不安定動作の原因となります。

・MCLRは必ず外部入力をご使用ください
CPU設定で、「リセット外部」にチェックを入れ、
10kオーム程度でプルアップしてください。
 また、リセットICなどで対応してください。
※MCLRを内部で使用した場合、正常動作しないことがあります。
・・・MCLRを内部のとき、CANに接続された機器が
 途中で、電源が入ったり、電源を入れなおした場合、
再投入後、タイマーが正常動作しなかったり
処理が停止したりします。外部入力によるMCLR(プルアップのみ)で
不具合が解消いたしました。外部

・CANを使用する場合は、シリアル通信が正常動作していません。

 不具合情報をご確認ください。今後、改善に努めたいと思います。

CANとシリアル通信について

18F4680のデバッグ中に確認できた不具合です。
CAN通信を有効にすると、シリアル通信の動作に影響を与えます。

具体的には、PICの受信が数回程度しかできず
それ以降は受信処理が行われないようです。
CAN通信が無効な場合は正常動作しております。
また、PICからの送信については問題なく動作しております。

現在、調査中ですが、問題解決まで時間がかかりそうです。
ご迷惑をおかけいたしますが、今しばらくお待ちください。