[戻る]
新着表示

Re: I2CSlave通信について 投稿者:Gokan 投稿日:2017/04/11(Tue) 09:54:48 No.887

これはI2Cの仕様ではなくてMasterとSlaveのI2Cを制御する
プログラムの遅延時間次第です。
I2C自身の仕様では遅延時間は必要ありません。

> PIC24FのI2CのSlave通信について教えてください。
> MasterがSlaveからデータを連続で複数取得する場合、Slaveは、データを送信する側としてデータを送る度にWait時間が必要になるのでしょうか。
> 100μsのWaitで動作させるとデータが抜けたりしたため、1ms程度まで増やすと正常にデータを受信することができました。
> 参考にしたサイトでは、約2ms程度の遅れが必要とありました。
>
> 仕様的にどうなっているかご教示頂けないでしょうか。
> よろしくお願い致します。

Re: 周波数特性測定器に関して 投稿者:Gokan 投稿日:2017/04/11(Tue) 09:51:02 No.886

0dBと-20dBの信号を実際に入力してy=ax+bの式でaとbを求めて
換算式としています。


> 質問の続きです。
> PICのCH0とCH1には電圧信号が入り、それを読み取っていると思うのですが、それをdB換算するときのロジックが今一つ分からなかったので質問させていただきました。

周波数特性測定器に関して 投稿者:HT 投稿日:2017/04/10(Mon) 23:05:32 No.885

質問の続きです。
PICのCH0とCH1には電圧信号が入り、それを読み取っていると思うのですが、それをdB換算するときのロジックが今一つ分からなかったので質問させていただきました。

周波数特性測定器に関して 投稿者:HT 投稿日:2017/04/10(Mon) 22:58:51 No.884

PICは全く初めての超初心者です。
USB接続で苦慮しましたが、組み立て中にデバイスにダメージを与えていたようで、PICデバイスを交換後、USBに難なく接続でき、動作確認できました。今回は手持ちのDIPタイプのAD8037を使用したかったためユニバーサル基板で組みました。なおAD9851は安価な中国製DDSモジュールを使用しました。クリスタルが30MHzだったのでプログラムを修正し書き込みました。これから調整、仕上げとなります。
現状の1V信号時の周波数特性を添付しますが、DDS出力もしくはログアンプ入力部の低周波側と高周波側の時定数を調整する必要がありそうです。
ところで質問です。
改定新版のUSB機器自作のすすめに添付されたソースファイルベースに調整をしようと思いますが、P257記載のCH0測定からdBに変換までのプログラムの内容が今一つわかりません。
ここが分かればdBレベル等の調整がより正確にできると思い質問させていただきました。

I2CSlave通信について 投稿者:なべ 投稿日:2017/04/08(Sat) 00:12:55 No.882

PIC24FのI2CのSlave通信について教えてください。
MasterがSlaveからデータを連続で複数取得する場合、Slaveは、データを送信する側としてデータを送る度にWait時間が必要になるのでしょうか。
100μsのWaitで動作させるとデータが抜けたりしたため、1ms程度まで増やすと正常にデータを受信することができました。
参考にしたサイトでは、約2ms程度の遅れが必要とありました。

仕様的にどうなっているかご教示頂けないでしょうか。
よろしくお願い致します。

Re: 役立ちましたか? 投稿者:Qman 投稿日:2017/04/02(Sun) 13:50:00 No.876


回答があったことは知っていました。
まず、自分の考えでプログラムしてダメだったら
nさんの回答をじっくり読んでトライしてみようと思っていました。

オシロでも確認した結果、OKだったのでトライしていません。
せっかく、貴重な時間をいただき回答いただいたのに
すみませんでした。

> Qmanさん
> nです。
>
> 私の回答は役立ちましたか?
> (10bitデータの下位2bitの扱い等)
> さしつかえなければ、参考までにお聞かせください。
>
> >
> > nさん、回答ありがとうございます。
> >
> > >以下の仮説をご検証ください。
> > すみません。
> > 検証する前に気が付いた事があり、質問した件は、プログラムを変更して全て解決しました。

役立ちましたか? 投稿者:n 投稿日:2017/04/02(Sun) 13:01:34 No.875

Qmanさん
nです。

私の回答は役立ちましたか?
(10bitデータの下位2bitの扱い等)
さしつかえなければ、参考までにお聞かせください。

>
> nさん、回答ありがとうございます。
>
> >以下の仮説をご検証ください。
> すみません。
> 検証する前に気が付いた事があり、質問した件は、プログラムを変更して全て解決しました。

2: PWMでDuty=0が実行されない 投稿者:Qman 投稿日:2017/04/02(Sun) 10:28:40 No.874


nさん、回答ありがとうございます。

>以下の仮説をご検証ください。
すみません。
検証する前に気が付いた事があり、質問した件は、プログラムを変更して全て解決しました。

> Qmanさん
>
> はじめましてnです。
>
> データシートを読んだだけなので実際には試していません。
> 以下の仮説をご検証ください。
>
> データが35のとき、カウンタ?は「0b00100000.11」でコンペアされ、
> PWM出力用のFFがリセットされます。
> このとき、カウンタの上位8bitはクリヤされますが、下位の2bitは、
> クロックOSCの信号を参照しているだけなので、変化しません。
>
> つまり、10ビットカウンタ?の値は「0b00000000.11」です。
> これを捕まえるためには、データも「0b00000000.11」と指定します。
>
> 0b00000000.00になるのは、0b11111111.11の次です。
> 0b00000000.11→0b00000001.00→0b00000001.01→…0b11111111.11
> このため、約1周期リセットが遅延します。
>
> void pwm_duty_set(signed long x)
> {
> if (x > 0){
> CCP1CON.dat = x & 0b00000011; // 下位2bit
> CCPR1L = x >> 2; // 上位8bit
> }else{
> CCP1CON.dat = CCP1CON.dat; // 下位2bit(保存)
> CCPR1L = 0; // 上位8bit
> }
> }
>

: PWMでDuty=0が実行されない 投稿者:Qman 投稿日:2017/04/02(Sun) 09:52:00 No.873


> duty=0は厳密にはならないはずなので、
それが「PWM2さん」の作ったプログラムで言われてことならば
見直されたらいかがですか?
確実に duty=0 になります。
>きちんとオシロスコープで出力を解析されることをお勧めします。

「PWM」、「duty」で検索してみたらいかがですか?
身近なところでは後閑さんのpicfun にもduty=0は使われています。

PS.
質問した件は、プログラムを変更して全て解決しました。

2: PWMでDuty=0が実行されない 投稿者:Qman 投稿日:2017/04/02(Sun) 09:26:54 No.872

>PWMのduty=0の出力は、保障外だと思いますが。
H/W(CPU)はduty=0が可能な機能を有しています。
したがって、問題はCPUを動作させるS/Wにあります。
「PWMさん」が、確実に、そして保証できるプログラミングを
すればいいだけの話だと思いますが。

>PWMをOFFにすればいいのでは
言葉のあやですね。
PICのPWMは10bitです。
通常はduty=0h〜3ffhとしてONとかOFFという言葉は使いません。

PS.
質問した件は、プログラムを変更して全て解決しました。

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |

- WebForum -