トピック関連記事
48時間以内の記事は New Mark で表示されます
Re: 続6ーPWM
うわー、また引っかかってしまった―


そうです。大体アナログと同じです。
けれども出力は高くありません。

なので、TRさんの図のように直接X9Cからスピンドルへと繋ぐか、
或いは私の図のようにボルテージフォロワ回路を通してから入れるのか、
と思っていました。
※スピンドル部の可変抵抗の電圧が5Vなので、多分、そこでもADCで受けているような気がするので、
直接でもいけるような気がします。

それと、ローパスフィルターを通した波形はNo1543です。
フィルタを通さなければ当然、PWMのHIGHとLOWを繰り返す波形です。角は多少崩れるでしょうけど。

時定数を下げれば(22kΩ×10UF →15kΩ×0.1UF)当然充電時間が早くなる分、元の波形が残ります。
つまり、数倍、波が高くなります。
尚、重要なのは「カットオフ」周波数では無く、つまり「ハイカット」の方では無く「ローパス」の波形です。
今回の要件は、「ハイの部分(ノイズ)をカットして、どうやってロー信号をそのまま取り込むか?」という要件ではありません。
波は時定数を大きくすればするほど充電時間に時間がかかる分、平に近づきます。

※でも10uFの電解コンと0.1uFのセラコンを両方つけるとスパイクが無くなるかも?


あと、TRさんの図では、そもそもローパスフィルターが付いてませんけど?

猛牛ロック 2019/06/06(Thu) 09:37 No.1575
Re: 続6ーPWM
猛牛ロックさん、
x9cの使い方ですが
ud やincにはad変換後の値を繋ぐのですか?
であればオペアンプは不用
ですか?
x9cのデータシートを和訳するとカウンターがとか出て来ます。

クロックとかデータ信号とか気になって来ました。
pic(ad値出力値)からのx9cへ渡されるのは8ビットのデータ信号ですか?

それから、自分とmaboさんは 、共にスピンドルモーターを回そうとしていますが、やり方が違います。
自分、ML4のスピンドルモーターのスピードコントロール用アナログ可変抵抗をデジタルポテンションメーターに換装し、結果的にスピンドルモーターを制御する。だから、うまくいったらと消極的表現をしています。

でも、maboさんは 、SEC基板からの信号をスピンドルモーター用インターフェースに繋ぐとカーネルスピードとPWM基本周波数の設定が上手く行かない。どうも、machの回転数と実際のスピンドルモーターの回転数に齟齬があるとか。
で、ローパスフィルターでPWMを均して、再度、PWM信号を出そうとしていると思います。

なので、自分の場合、ローパスフィルターは不用です。

>直接でもいけるような気がします。

この意味は 、オペアンプ無しでOKということですか?
TR   2019/06/06(Thu) 14:39 No.1576
Re: 続6ーPWM
udやincに繋ぐのはPICの出力=操作用のピンです。

> pic(ad値出力値)からのx9cへ渡されるのは8ビットのデータ信号ですか?

いいえ、この間のx9c_up関数やx9c_down関数です。udピンを合わせて、1クロック=↓↑入れるだけです。

> machの回転数と実際のスピンドルモーターの回転数
PWMはあくまでも電源を○○パーセント繋ぐ、というだけですから、必ずしもモーターの回転数と比例関係にあるとは限りません。
もちろん+方向にもっていけばモータの速度は上がるでしょうけど。
正しく回転させるには、実際の回転速度を読み取ってフィードバックさせる必要があるでしょう。
つまり、MachからのPWMはあくまで目標値で、それに応じて、その速度に回転数を読み取りながら上下させる、という感じかと。
※MABOさんの実験は、「実際の回転数をMachに取り込めば、自動でMachからのPWM出力が変化してその速度にしてくれる」という機能だと思うのですけど、
そちらの方に期待しています。

ローパスを入れるか入れないか、つまり、デジタルで読み取るか、アナログにするかは好みの問題です。
私の好みはデジタルです。

※アナログフィルターを入れるのならPICに繋がずにそのままスピンドルの可変抵抗でもいけると思います。
というのは、参考サイトはPCからの出力で、TRさんやMABOさんはSSボードだからです。
PCのカーネルは25kHzとかですけど、多分SSボードは4MHzとかですよね?高めの周波数、例えば10kHzとかでLPFを入れれば
それなりになると思います。

どういったつなぎ方にするかはTRさんの問題ですから、私からは何とも言えません。


> この意味は 、オペアンプ無しでOKということですか?

そうです。無くても大丈夫な気はします。でも実際には試してみないと判りません。
猛牛ロック   2019/06/06(Thu) 15:21 No.1577
Re: 続6ーPWM
猛牛ロックさん、
>いいえ、この間のx9c_up関数やx9c_down関数です。udピンを合わせて、1クロック=↓↑入れるだけです

1クロックとはadcon関数による値(10ビット)を送るクロック信号ですか?


>PICに繋がずにそのままスピンドルの可変抵抗でもいけると思います。

つなぎ方は
SEC基板からx9c〜ML4ですか?
TR   2019/06/06(Thu) 15:56 No.1578
Re: 続6ーPWM
> 1クロックとはadcon関数による値(10ビット)を送るクロック信号ですか?

adconはPIC内部のレジスタの事ですよね?今更何を言ってるのでしょう?
adcon=○○;
とかで、操作出来ます。わざわざピンの上げ下げをする必要はありません。
1クロックはピンの「上げ下げ」もしくは「下げ上げ」です。
X9Cの場合は下げた時にストローブされます。

> つなぎ方は
> SEC基板からx9c〜ML4ですか?

いいえ、ローパスでアナログ化して、XL4です。
例の参考サイトは、そのままのPWM信号をスピンドルのドライバに入れようとした、のですけど、周波数の関係で、PICの周波数変換ボードを作りました。
ローパスでアナログ化もやはり、周波数の関係でPC(パラレルポート出力)ではきついですけど、SSボードならいけるのでは?
元々、ローパスでアナログ化して、PICに入れてX9Cですけど、PICの前とX9Cの後は同じ電位なんですよね?
それなら、そのままでもいけると思います。10kHzの微細な波が影響を及ぼすような気がしませんから。
まぁ、それもやってみないと判らない事ですけど。
猛牛ロック   2019/06/06(Thu) 16:25 No.1579
Re: 続6ーPWM
猛牛ロックさん

>いいえ、ローパスでアナログ化して、XL4です。

よく分かりません

つなぎ方は
SEC基板からローパス〜ML4ですか?

それと、ssからSEC基板の場合、マッハのカーネルスピードやPWM基本周波数の設定は不用ですか?

上げ下げの元は何?
pic端子から出る信号の元です。
お聴きします。
TR   2019/06/06(Thu) 16:41 No.1581
Re: 続6ーPWM
SEC基板の事を忘れていました。ちょっと回路が判らないので今現在、判断付きません。
SSボードからは信号は取れないのでしょうか?

> SEC基板からローパス〜ML4ですか?
私の中ではSSボード→ローパス→ML4です。抵抗とコンデンサを使うだけです。

> マッハのカーネルスピードやPWM基本周波数の設定は不用ですか?
設定は当然必要でしょう。肝ですから。
そもそも、元々はスピンドル用のPWM出力していないんですよね?

> 上げ下げの元は何?
> pic端子から出る信号の元です。
元とは何を聞いているのですか?incピンに繋ぐ端子?信号の「先」ですか?
元はX9Cを制御する為に繋いだPICの出力端子で、先がX9Cのincピンです。


<追記します>

いやいや、SSボードの方も判っているわけではありません。

実際の所、Mach出力される信号はSSボードとSEC基板だとどのように出力されるのでしょうか?
聞きたいのは5Vなのか、反転されるのか、といった部分です。
普通に、反転されずに5Vで出力されるのなら、SSボードでもSEC基板でもどちらでも良いです。
猛牛ロック   2019/06/06(Thu) 17:09 No.1582
Re: 続6ーPWM
とりあえず、もう一度図面を起こします。
猛牛ロックさんの写真を見て、見やすく書き直します。
TR   2019/06/06(Thu) 19:18 No.1583
Re: 続6ーPWM
猛牛ロックさん、maboさん、こんばんは。

今日、x9c103(10kΩ)が届きました。
早速、テスト、方法は写真を見て下さい。

予想と違う動作をしました。
最大で5Vとなるところ、4.5Vでした。
157mv(min)〜4.5V(max)

プログラムでしょうか?

TR   2019/06/06(Thu) 20:43 No.1584
Re: 続6ーPWM
TRさん,猛牛ロックさん,こんばんは。

猛襲ロックさん,さんっぷりんぐのプログラム,

いろいろありがとうございます。

のんびり,確かめてみようと思います。




TRさん,すみません,思い違いがあるようなので,

再度記述します。

いろいろやってますが,ローパスフィルターと,

ブログの記事は,分けてお考えください。

PWM→ローパスフィルター経由→ADC変換→出力(XC_9)

PWM→サンプリング(基本周波数の変換)→出力(PWM)

の両方試しています。



>最大で5Vとなるところ、4.5Vでした。

もしかして,最大動かしても残る 40Ω?

にしては,大きいですかね。

この辺,ちょっと,不明です。




MACHへの入力と出力に乖離があるのは,

PWMコントローラーのFET?にに原因があるのかな,

なんで,邪推してます。

そこで,FETで,ドライバー作り始めました。

幸い,手元に,2SC1815 やら 2SA1015 等のトランジスタ

あるので,

http://srd.s43.xrea.com/Circuit_library.htm

参考に,プッシュプル回路等,勉強しながら始めました。
mabo   2019/06/06(Thu) 22:05 No.1585
Re: 続6ーPWM
maboさんへ

>PWM→ローパスフィルター経由→ADC変換→出力(XC_9)


XC_9って、なんですか?


そして、PWMの前はないのでしょうか? 〇の部分を聞いています。

〇→PWM→ローパスフィルター経由→ADC変換→出力(XC_9)


XC_9って、なんですか?
TR   2019/06/06(Thu) 22:17 No.1586
Re: 続6ーPWM
データシートに
End-to-End Resistance, ±20%
この20%が原因でしょうか?
専門書の英語は変換が難しい、意味不明な和訳が出てきます。。


後発で、本来、欲しい1kΩのx9c102が来るので
試してみます。
TR   2019/06/06(Thu) 22:43 No.1587
Re: 続6ーPWM
TRさん,こんばんは。

すみません,XC_9は X9Cの間違いです。

◯の部分ですが,

私の環境では,

 SS(ポート2 14ピン)→PWM

 SEC(汎用出力 14ピン)→PWM

 PC(シリアルケーブル横取り 14ピン)→PWM

どれでも,PWMの信号確認できてます。SS,SEC,PCがそれぞれ,◯に当たると思います。

要は,PWM信号が取り出せれば大丈夫なので。

ここのところ,SSから取ることが多いです。


MACHにもSSにもカーネルと基本周波数の設定あります。

ただ,どのように,関連してるのかは,不明です。

−−追記−−

 X9Cで,ワイパー最端まで動かしても,抵抗が残るようなので,

 必要なら,外部に回路(短絡の)付け加えて,PICで

コントロールするようかなあ,なんて,当初考えてました。

 その抵抗が,最高回転数に,どのくらい影響するかでしょうね。
mabo   2019/06/06(Thu) 22:50 No.1588
Re: 続6ーPWM
maboさんへ

な〜んだ、すでに、x9cお持ちだったんですね!!
プログラムはどうしていたのですか?
アルディーノでしたか?
アルディーノなら、先達者がプログラムがあるようですね。
ご参考になされたのでしょうか?


>その抵抗が,最高回転数に,どのくらい影響するかでしょうね。

いわれたら、その通りですね。
これで、とりあえず、ML4のスピンドルモーターは回せそうです。
TR   2019/06/06(Thu) 23:09 No.1589
Re: 続6ーPWM
猛牛ロックさんへ

拙い自分と掲示板でのやり取りは難しいですね。
申し訳ないです。


今回のプログラムで、4回、若しくは8回で割っていますが、
SEC基板と繋ぎ場合、SEC基板からの信号には、
乱れはないでしょうから、ローパスフィルターは不要、
そうなると、
4回とかで割る必要は、本来ないのでしょうか?



プログラムを動作500μとなっているので、4回サンプリングに戻しました。
平均をとること自体、いいことだと思います。
TR   2019/06/07(Fri) 06:35 No.1590
Re: 続6ーPWM
TRさん,おはようございます。

いえ。X9Cの実機は手元にまだありませんので,

LEDのシュミレーションしてましす。

発送の連絡はありましたが,まだ,届いていません。

それから,先達の arduino のプログラムもみましたが,

見たい部分が,ライブラリーになっていて,ちょっと分かりませんでした。


それから,TRさん,ローパスフィルターは,

信号に乱れがあるから入れるのではなく,

今回は,AD変換で受け取るためです。

ローパスフィルターを使わないのであれば,

猛牛ロックさんが,後で書いてくれたような,

サンプリングのプログラムで,PWMのDUTY比を調べる必要あると思います。

 PWM出力→→ローパスフィルター(PWMのDUTYの変化を直流電流の大小に変換)→→X9Cの抵抗に変換

 PWM出力→→サンプリング(PWMのDUTYの変化をサンプリングで受け取りDUTY比を計算)→→X9Cの抵抗に変換

みたいになると思います。ローパスフィルターなしのPWM信号を,AD変換で受けたことないので,

どうなるかは,わかりませんが,もしかして,DUTYの変化を受け取ることできないかもしれないと思います。
mabo   2019/06/07(Fri) 09:00 No.1591
Re: 続6ーPWM
> SEC基板からの信号には、乱れはないでしょうから
乱れが無いの意味が違います。
添付図のようなデジタル波形で、角が綺麗、とかそういった意味です。
アナログ化したら↓のような波形になります。
Machからは↑の波形で、HIGHとLOWの割合で回転速度を知らせます。
MAXを10000回転で設定して、S8000とGコードにかけばHIGHが4に対してLOWが1の割合で出力されます。つまり、速度のMAX設定にした割合を知らせます。
それをどう料理するかは利用者の問題です。


PC(MACH)からのPWMはデジタルですから、アナログ変換しないのならデジタルで受けます。
アナログ変換したのならADCで受けます。
勿論、デジタル信号も、アナログで受けてサンプル数を増やして、平均を出せば出来ますけど、
デジタルでやった方が良いです。
(来る信号は1023付近か0付近なのと1か0になるかの違いで、数が膨れ上がるかどうかの違いです)



> 157mv(min)〜4.5V(max)

0.157Vなので、3.14%≒300Ω程度ですね。
データシートでは両端は40Ωでmax100Ωですから2ワイパー分位はおかしいですね。
Maxでは1kΩ程度ですね。

maxの方ですけど、上の画像でLEDを付けていますよね?
これは2重の意味で駄目です。
1つはX9Cの特性です。
X9Cの出力は弱いのでLEDを直接光らせる能力はありません。
つまり、それだけの電流を流した時点で出力端子の電圧は狂います。
光らせるつもりなら、ボルテージフォロアでも作ってその先で光らせてください。。
そして、もう一つは電気の特性(オームの法則)です。(添付図→参照)
※可変抵抗部は両側の抵抗値の割合で電圧値を出します。でもそれは同じ電流を両側流す時です。
 V=I*Rのオームの法則で、Iが一定だからR1:R2はV1:V2になるのです。
 なので、添付図で↓方向に電流を流したらいけません。というか、流せば分圧の関係が崩れますから
 (図で言えばI*R1:I2*R2の関係になる)、当然ボリューム位置の値にはなりません。



プログラム的に気になっているのは最初の初期化部分です。ここで1ワイパー分おかしくなる可能性があります。

> //デバイス初期化関数
> void x9c_init(void) {
> ud = 0;
> for (char i = 0; i < 99; i++) {
> inc = 0;
> __delay_us(1);
> inc = 1;
> __delay_us(500);
> }
> x9c_val = 0;
> }

for (char i = 0; i < 100; i++) {
と99→100に変更しておいてください。
※その前にピンの初期化でincピンをHIGHにしてあれば問題無いのですけど、LOWで初期化した場合は
最初の1回は動きません。
勿論関数の最初に
inc = 1;
__delay_us(2);
を付けても良いです。

猛牛ロック   2019/06/07(Fri) 09:53 No.1592
Re: 続6ーPWM
maboさん、有り難うございます。
そうか、出力14番からはPWMか、ゴチャゴチャになってました。

ローパスフィルターのコンデンサーは電解コンデンサーで、10マイクロですか?
TR   2019/06/07(Fri) 10:06 No.1593
Re: 続6ーPWM
猛牛ロックさん
自分には話が長すぎます。

>デジタルでやった方が良いです。
(来る信号は1023付近か0付近なのと1か0になるかの違いで、数が膨れ上がるかどうかの違いです)

SEC基板~pic~x9c~ML4
アナログ可変抵抗をx9cに換装したいです。 この繋ぎ方をお勧め?



>Maxでは1kΩ程度ですね。

どこがMaxでは1kΩ程度ですか?
TR   2019/06/07(Fri) 11:22 No.1594
Re: 続6ーPWM
TRさん,そうです。

私は,諸兄のHPと同じ,

  22kΩ
  10μF

を使ってやりました。



猛牛ロックさん,別件なのですが,FETは,なんかシビアなんですね。


見方よく分からないのですが,ID-VGS特性 なる表をみると,

当たり前でしょうけど,いろんなものがあるんですね。

添付のような特性のFETの方が,PWM等でコントロールするには,

あっているんでしょうね。

mabo   2019/06/07(Fri) 11:24 No.1595
Re: 続6ーPWM
猛牛ロックさんへ

計測方法を伝えます。

電圧は確かに間違いでした。
でも、抵抗値も計測していました。

300Ω〜8.51kΩでした。
茶色矢印の間です。

TR   2019/06/07(Fri) 12:46 No.1596

処理 記事No 暗証キー

- JoyfulNote v6.02 -
++ Edited by Hamel ++