新しく提供している連枝では、以前より ToolChip が表示される
タイミングでエラーが発生しているようです。
すべてのパソコンで発生しているわけではなく、
Windows7 OS で発生しやすいようです。
原因は調査中なのですが、解決に至っておりません。
このような症状の場合、お問い合わせいただければ
ToolChipを表示しない連枝のご提供をさせていただいて
おります。
ご迷惑をおかけいたしますが、ご理解・ご協力のほど
お願い申し上げます。
連枝に関するサポートのカテゴリ
新しく提供している連枝では、以前より ToolChip が表示される
タイミングでエラーが発生しているようです。
すべてのパソコンで発生しているわけではなく、
Windows7 OS で発生しやすいようです。
原因は調査中なのですが、解決に至っておりません。
このような症状の場合、お問い合わせいただければ
ToolChipを表示しない連枝のご提供をさせていただいて
おります。
ご迷惑をおかけいたしますが、ご理解・ご協力のほど
お願い申し上げます。
最近お問い合わせいただいた件を記します。
ラジコン用のサーボモータの制御を連枝で行いたいとのことでした。
調べてみたのですが、今の連枝では、ご要望にお応えすることは
難しいようです。調べた結果が以下の通り。
ラジコン用のサーボモータの制御信号(PWM)
周期14.4ms パルス幅 1~2.1ms
(連枝でできること)
・ DACO命令(DA変換機能)を利用し、
周期128μs(変更不可)、分解能0.5μs
P版のみで出力可
パルス幅は、0~255範囲で、データレジスタで指定可能
・PULSE命令を利用し、
周期20ms(可変)
分解能100μs 0~99の設定値で可能
ただし、設定値データレジスタではなく、
プログラムに直値で指定
また、PULSE命令はソフトウェア割込みで実現
しているので、通信機能など使用時は、パルスが
不安定になる。
との結果になりました。将来的には、ラジコン用のサーボモータ
の制御が連枝でできるようにしたいと思っております。
DA変換機能を改造して、ラジコン用のサーボモータを
制御できるようにしたいですね。
PICの4525などでご提供しております、
高速カウンタの不具合のお問い合わせです。
これが不具合かどうか悩むところではございますが、
不思議な動きをしていたのは確認できました。
・PI18F452(5)シリーズ用 変換ライブラリーセット
パルス、高速カウンタ、キー・スキャン P452-SET-LB
高速カウンタ =割り込み入力をカウントします。 途中カウント値がメモリーに入ります。
こちらのライブラリですが、
RA4に入力されたパルスのカウント数をカウントする
ものです。カウントアップすると特定の出力がHIGHから
LOWに変化いたします。
カウント値につきましては、D30にBCD値で入るとのことでした。
カウント値の値によって、異常な値が発生することが
確認できました。
また、カウントアップしたときの出力を使用するのではなく、
常時カウンタを動かして、カウンタ値の差分をとるような場合に
異常な値が発見されました。
今回、この以上につきましては、タイマーのカウント値の
読み出しプログラムの不具合とオーバーフロー後の以上挙動により
異常なカウント値が発生しております。
現在のライブラリでは、この点を修正しております。
また、ヘルプにはカウントを行う場合には設定値を0にすると
バイナリ値として取り出せると記載されておりますが、
確認した結果こちらは確認できませんでした。
設定値をBCD値として、K9999としていただき
新たなヘッダファイルを適用していただくと
9999~0の値で繰り返すプログラムを作成することが可能となります。
連枝では、汎用のI2C通信を標準のポートを利用して、ソフトウェア上で通信を行っております。
今回、お問い合わせをいただき、確認いたしました。当方も覚書として記載させていただきます。
使用するI/Oピンは、下記のいずれかが可能です。
・RB1:SCL RB5:SDA
・RC1:SCL RC5:SDA
・RD1:SCL RD5:SDA
通信時のタイミングの本来の仕様は下記のサイトの30ページに記載されております。
今回、調査した結果、プログラムで待ちを利用しながらソフトウェアでの通信となっております。
通信等のタイミングのお問い合わせがありましたので調べた結果が以下の通りです。
ただし、従来の連枝では書込(CPUから外部機器)はタイミングを合わせていますが、読込(外部機器からCPU)はタイミングを合わせていないようです。
そのため、相手機器によってはデータの読み出しが上手く行かない場合も想定されます。この点については、今後の検討課題としてとらえております。
連枝で設定する場合、汎用のI2CならCPUの設定は通信にはチェックは入れません。
一方、ラダーについてですが、以下の命令が使用できます。
STA2C・・・I2Cのスタート信号
STP2C・・・I2Cのストップ信号
W2CO・・・相手機器のアドレス指定と書き込み指定
W2CDO・・・メモリアドレスの指定またはデータの指定
R2CO・・・相手機器のアドレス指定と読み出し指定
AC2CI・・相手機器から送られたデータを取り込み
ちなみに、下記の指定で、K2Y10と書いている場合は、RB1とRB5を使用する。K2Y30ならRC、K2Y40ならRDです。
・相手機器のアドレスが(51)hで1番地からの読み出し
STA2C K2Y20 ・・・・ スタート信号をRC1とRC5から発出
W2CO H51 K2Y20・・・ 相手機器のアドレス指定とWモード
W2CDO H1 K2Y20・・・ 対象のメモリアドレス指定
STP2C K2Y20 ・・・ ストップ信号をRC1とRC5から発出
STA2C K2Y20・・・・ スタート信号をRC1とRC5から発出
R2CO H51 K2Y20・・・ 相手機器のアドレス指定とRモード
AC2CI K2Y20 D10・・・相手機器からのデータ受信
AC2CI K2Y20 D11・・・相手機器からのデータ受信
STP2C K2Y20 ・・・ ストップ信号をRC1とRC5から発出
・相手機器のアドレスが(51)hで1番地から書き込み
STA2C K2Y20・・・・ スタート信号をRC1とRC5から発出
W2CO H51 K2Y20・・・・相手機器のアドレス指定とWモード
W2CDO H1 K2Y20・・・ 対象のメモリアドレス指定
W2CDO D10 K2Y20・・・D10を1番地に書き込み
W2CDO D11 K2Y20・・・D11を2番地に書き込み
STP2C K2Y20 ・・・ ストップ信号をRC1とRC5から発出
今回、通信のチェックで活用したのは、
秋月電子通商様が販売されているRTCのモジュールキットです。
現在のところ、4620および4680に対応した
ライブラリが見つかっておりません。
以前は、対応したライブラリがあったとの
お問い合わせをいただいたのですが、
調査中です。
また、引き継いだ時点での販売ソフトおよび
ハードの再開を目指していますので、
新しいチップへの対応は少し時間がかかりますことを
ご了承ください。
以前の4525のライブラリでは、BCD命令の転送先の
デバイスは、ワードデバイス1つ分でした。
一方、最新のライブラリでは、BCD命令の仕様が
変更されております。
変更範囲は、指定したワードデバイスと次のデバイス
2つ分を変更いたします。
ご注意ください。
高速パルスを出力する機能と通信機能両方使用する
プログラムの場合、高速パルスが断続的に
出力される現象が確認できました。
これは、パルス出力中に通信機能が働き、
パルス出力が中断されることによる
不具合となります。
根本的な解決ではございませんが、
高速パルス出力中に通信を停止する措置を
する対応をする予定です。
また、この仕様につきましては、今後根本的な
解決に向け検討する予定です。
割込のタイミングがおかしい
「パルス、高速カウンタ、キー・スキャン P452-SET-LB」ではなく、
ツールバーの割込ボタンでプログラムする割込です。
TOISTAタイマ割り込みを使用して1ms周期の割込しています。
4525では正常だが、46K22だと0.5ms周期になってしまう。
内部のクロックが上がったことによる不具合です。
こちらにつきましては、ライブラリの修正を行いました。
「パルス、高速カウンタ、キー・スキャン P452-SET-LB」
で、指定したパルス数でタイマーの出力が停止しないという
事象がありました。
ライブラリ及びヘッダファイルの問題が確認されました。
現在は修正いたしました。
「4525で通信ができていたI2Cだが、46K22に
なると書き込みができるが、読み出しができなくなった」
とのお問い合わせをいただきました。
調査の結果、I2Cの汎用ライブラリ
「 汎用I2C素子用プロトコル生成ライブラリー P452-I2CPROT-LB 」に
問題がございました。
CPUの内部クロックが上がったことによる
弊害となります。
この問題につきましては、ライブラリを修正いたしました。