GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
山口と申します。初投稿です^^;
GR-LYCHEEでPWM出力を試したいのですが、
PWM使えるポートはありますでしょうか?
試しに
PwmOut pin(P6_10)
PwmOut pin(P3_10)
とポート指定して使おうとすると
ボード上の4つのLEDがピカピカして(システムエラー?)動きませんでした。
PwmOut pin(P5_14)だと大丈夫そうなのですが、、、
そういうものでしょうか?
見当違いの質問でしたら申し訳ありません。
よろしくお願いいたします。
ライブラリの gr_common/mbed-os/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_GR_LYCHEE/PeripheralPins.c を見ると
/************PWM***************/ const PinMap PinMap_PWM[] = { {P2_8 , PWM_TIOC0A, 3}, {P8_4 , PWM_TIOC0A, 5}, /* for 208QFP */ {P8_6 , PWM_TIOC0C, 5}, /* for 208QFP */ {P2_2 , PWM_TIOC0C, 3}, {P7_9 , PWM_TIOC1A, 6}, {P9_2 , PWM_TIOC1A, 5}, /* for 208QFP */ {P2_7 , PWM_TIOC1A, 3}, {P5_14 , PWM_TIOC2A, 4}, {P7_0 , PWM_TIOC2A, 5}, {P9_4 , PWM_TIOC2A, 5}, /* for 208QFP */ {P2_6 , PWM_TIOC2A, 3}, {P6_7 , PWM_TIOC3A, 5}, {P2_5 , PWM_TIOC3A, 3}, {P3_11 , PWM_TIOC3A, 3}, {P6_9 , PWM_TIOC3C, 5}, {P3_12 , PWM_TIOC3C, 3}, {P5_8 , PWM_TIOC4A, 3}, {P2_4 , PWM_TIOC4A, 3}, {P5_10 , PWM_TIOC4C, 3}, {NC , NC , 0} };
となっており、P6_10 や P3_10 はこの中にないので使えないのでは。
GR-LYCHEE のピンマップにあるのは P2_2, P2_4, P2_6, P2_7, P2_8, P3_11, P5_10, P5_14, P5_8, P6_9 だけのようで、更にこの内 P2_6 と P5_14、P2_4 と P5_8 は同一のタイマが使われるので同時には使えないと思います。
自由に PWM が使えるのは P5_14(D0) だけだと思います。
ピンマップにある TIOC のピンと半分くらい一致していないので、現在のライブラリの PinMap_PWM[] の内容が適切でない可能性もあるかもしれません。
ぐちさん、fujita nozomuさん、ご指摘ありがとうございます。
mbedのPWM機能を実現するために、LSI機能「マルチファンクションタイマパルスユニット2」のPWMモード1を使用しています。(PWMモード2は全チャネルの周期が共通になるため使用しません。)PWMモードとして使用できる端子は以下の通りです。
ピンマップにあるTIOC端子は以下のようになっており、下記のPWMモードが1の端子のみPWMに指定できます。
端子 機能 PWMモード 補足P2_4 TIOC4A 1 LED_GREENP3_11 TIOC3A 1 LED_YELLOWP3_13 TIOC3D - LED_ORANGEP2_2 TIOC0C 1,2 LED_REDP3_10 TIOC3B - D8P6_8 TIOC3B - D5P6_9 TIOC3C 1 D4P6_10 TIOC3D - D2P5_14 TIOC2A 1,2 D0P4_1 TIOC2B 2 IO19(ESP32)P4_0 TIOC1B 2 IO22(ESP32)P2_3 TIOC0D 2 RSTB(Camera)P2_5 TIOC3A 1 PWDN(Camera)
そのため、自由に使用できるPWM端子はP6_9(LCD未使用時)とP5_14のみとなります。
To:に~のさん上記内容で問題ないようでしたらピンマップのTIOCを修正いただけないでしょうか。
dkatoさん。
長い間検証頂いたみたいでありがとうございます。
少しこちらでも検証してみました。
テンプレートベースで改めて数箇所 pwm 操作用関数を追加したソース一式 (添付します) を添付します。
// ※ でコメントしてある行を(4か所を)追加しています。
で、わかった点ですが、
このノースをそのまま、Lychee基板+カメラのみで実装したところ、上手くいきます。(再現しません)
ところが、いくつか外部に回路を接続すると、ハングします。
接続しているのは以下の2つ。
・I2c Wire( 20pin , 21pin ) →プルアップ抵抗 10kΩ+レベル変換用バッファー(TXS0102DCTR) →モータードライバー(DRV8830)
・Pwm (D0 pin) →レベル変換バッファー(TXB0102DCUR)) →サーボモーター
レベル変換用バッファの一次側電源は Arduino互換コネクタの 3.3V から、二次側は5V モバイルバッテリーから入れています。
なんとなく負荷がかかるとハングアップするように見えますが、そんなことありえるのでしょうか?
ちなみに、上記構成で I2c 側のバッファを ICソケットから外した状態 (プルアップだけがつながっている状態) でも
やはりハングアップしました。
電源は USBコネクタから入れていましたが、そういえばVIN にモバイルバッテリーの 5V を直接入れていたとき、 OpenCV の部分が全く動かないと
いった現象があったのも思い出しました。
(訳が分からなくなってきました。)
> 添付の仕方もわかりませんでした。
[Reply] をクリックの後、`Use rich formatting' をクリックするとファイルをドロップすることで投稿に添付できるようなります。
添付するファイルの種類には制限があるので予め .zip にしておくと良いでしょう。
今回、私もモーター使いましたがTakSanさんの指摘そのまんまの対策を取りました。GR-LYCHEE自体が結構電気食うだろうと思っていたので、USBからの電力供給は選択肢から外し、モータドライバー基板側からGR-LYCHEEに供給する方式としました。ルネサスナイトのLT後もずっと電源入れっぱなしで、帰りの片付け時間までリセットすることなく動作していました。
モーター駆動していない状態で400mA位でした(ESP32のWiFi使ってます)。瞬間的にはもっと高いと思います。バッテリーは電動ガン用のものを使いました。右側のモバイルバッテリーは3200mAhのモノですが、それよりはコンパクトですし瞬発力もあります。
※個人的には、マイコンボード側でモーターの電力まで賄える必要は無いかなと思ってます。
全然PWMとは関係無い話になってしまいましたが、ご参考まで。