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

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

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

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

連枝停電保持ラダー

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

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

PIC16F88停電保持

拡張機能について(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からの送信については問題なく動作しております。

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

PICへのプログラム書込みについて

PICへのプログラムの書き込みは以下の方法があります。

・PICライタによる書き込み
・PICKITによる書き込み
・ICDによる書き込み
・その他

・PICKIT3によるプログラムの書き込みについて

 チップごとの配線を図で記載いたしました。ご参考にしてください。
チップごとで配線する場所が異なりますので、ご注意ください。

PICKIT3の配線

・その他

 オンボード書き込み対応CPUにつきましては、事前にオンボード用に変換した
HEXファイルをPICに書き込んでいただくと、シリアル通信(UART)により
プログラムが書き込めます。
 シリアルポートをレベル変換し接続するか、USBシリアル変換器で接続するか、
Wifiシリアル変換器で接続し、連枝よりプログラムの書き込みをお願いいたします。

スペースを含むファイル・フォルダ名変換不可について

 ファイル名やフォルダ名に全角文字が含まれると、PICのHEX変換時に動作が停止いたします。
また、スペースを含むファイル名や、フォルダ名の場合、HEX変換せず、
アプリケーションが停止いたします。
 過去のバージョンでは、発生しなかったとのご連絡をいただいております。

 原因を特定して、ライブラリを修正いたしました。
ご迷惑をおかけしておりますが、ご了承ください。

連枝のCPUごとでの機能対応表(参考)

連枝における機能や仕様などが分かりづらいため、一覧表にしました。
ヘルプやデータシートから起こしたものです。

実際の動作につきましては、順次検証したいと思っております。
間違い等お気づきの際はお知らせいただけると幸いです。

皆様にとって、ご利用いただきやすいように
ライブラリのバージョンアップ等を検討中です。
ご要望などございましたら、お知らせください。

連枝の機能表

4525割込み内でI2C通信

 4525の割込みライブラリ(452-INT-LB)をご使用いただき、
割込みプログラム内で、汎用I2C通信(I2CINF-LB)などを使用した場合、
IO(Y)が正常に動作しない不具合が見つかりました。

 CPUのライブラリの不具合が原因でした。
現在は、改善しております。

ご迷惑をおかけいたしました。

4525でI2C経由でRTCとの通信(汎用のI2Cライブラリ)

汎用のI2Cライブラリと、その他のライブラリの違いということでご質問いただくことがございます。
今回は、汎用のI2Cライブラリについて、ご紹介いたします。

汎用のI2CライブラリではI2Cのプロトコルをラダーで記載することで機器と通信が行えます。
クロックのEnableやアドレスの指定、データの指定取り込みといった手順をラダーで記載しますので、
複雑な機器の場合は、ラダーが長くなります。

一方、その手順を書けば通信ができますので、様々なセンサやIOなどと通信が可能です。
その手順や方法をご紹介いたします。