Smart I/OでのPWM信号のマスク方法

Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
ShMi_1495391
Level 4
Level 4
50 replies posted 25 replies posted 10 replies posted

使用するデバイスはPSoC4100Sです。

Smart I/OにPWM信号と2つのデジタル信号を入力させます。

出力は2つのPWM信号です。入力した2つのデジタル信号に応じてPWM信号を出力するか、マスクするかを決定します。

要はAND回路のような働きをさせたいです。

この際、デジタル信号はソフトウェアで切り替えたいのですが、TCPWMブロックを使う以外で何か方法がありますでしょうか。

LUT0とLUT1の設定は同じです。

top design.png

configure_smartIO.png

(6/18追記)LUTの設定が間違っていたので修正しました。

LUT0_1.png

0 件の賞賛
1 解決策
Anonymous
適用対象外

下記のLUT設定でテストできますか?

制御信号はGPIO側で、DATA側ではないことに注意してください。

Data0はPWM信号、gpio0とgpio1は制御信号、gpio2とgpio3は出力信号です。 LUT2とLUT3はロジック制御に使用されます。

1.jpg2.jpg3.png

Regards,

Nada

元の投稿で解決策を見る

7 返答(返信)
HirotakaT_91
Moderator
Moderator
Moderator
500 replies posted 250 replies posted 100 replies posted

少しディジタルコンポーネントは増えてしまいますが、Digital Virtual MuxとLogic Low, Logic High コンポーネントを利用してdata1, data2のソフトウェア制御は可能になります。

pastedImage_0.png

ただ、いただいている質問の認識が間違っているかもしれないので、ぜひ追加でご質問ください。

よろしくお願い致します。

Hirotaka Takayama

0 件の賞賛

LUTの設定が間違っていたので訂正いたしました。

私がやりたいことは、data1、data2が"0"のときはgpio0、gpio1はLow出力。

data1が"1"のときgpio0からPWM出力、同様にdata2が"1"のときはgpio1からPWM出力です。

ご紹介いただいたデジタルロジックはソフトウェア上で変更できないと思っていましたが、

例えばLogic Low⇒Logic Highにソフトから変更する方法がありますでしょうか?

0 件の賞賛
Anonymous
適用対象外

下記のLUT設定でテストできますか?

制御信号はGPIO側で、DATA側ではないことに注意してください。

Data0はPWM信号、gpio0とgpio1は制御信号、gpio2とgpio3は出力信号です。 LUT2とLUT3はロジック制御に使用されます。

1.jpg2.jpg3.png

Regards,

Nada

お返事が遅くなり申し訳ございません。

ご提案いただいた設定について質問があります。

gpio0,gpio1の制御信号は外部から入れるものということでしょうか?

(内部信号をソフトで変更は諦めるべきですか?)

0 件の賞賛
Anonymous
適用対象外

回答が遅くなり大変申し訳ありません。

> gpio0,gpio1の制御信号は外部から入れるものということでしょうか?

はい、gpio0,gpio1の制御信号は外部から入れるものです。

この方法では、ファームウェア制御のデジタル出力ピンをgpio0とgpio1の入力ピンにワイヤで外部から接続します。

これで、ファームウェアでのデジタル出力ピンの変更はSmartIO LUTに反映されます。ただし、追加のGPIOを使用し、外部接続が必要です。

以上、よろしくお願いいたします。

Nada

承知しました。

ありがとうございました。

0 件の賞賛
Anonymous
適用対象外

It sounds like you want the PWM to be masked in real-time based on the two input "0" signals? The muxes don't seem to support this in hardware from what I can see. If you setup an interrupt controller ISR to handle the input data signals, and then enable/disable the PWM based on that, you might get similar functionality to an AND circuit.

0 件の賞賛