pro micro から始まる PWM 物語
pro micro で SPI TFT を動かそうと pinout 図を眺めていて、発見というかこれに気づいて驚きました。
SPI の SS (8) が欄外表記。並んでいる 22 ピンも未配線! 何たることじゃと本元の Leonardo ボードを思ってみてみるとこれも 8, 22 ピンは未配線。32U4 を使う上での仕様のようです。気にしないでおきます。
pinout 図はおなじみ http://www.pighixxx.com/test/portfolio-items/pro-micro/ より。* CC BY の許しによりコピー
この図で気になったのは PWM の注記です。
てか 5 ピンしかない… I2C 使ったら残り 4 つ…
PWM の分解能や速度が違うようす。HS は速そうな感じがしたのでデータシート見てみたんですけど読み方がわからず。どのくらい速い信号出せるのかヘルツで言ってくれよ~って先生に泣きついたら良記事*1 を教えてくれました。
pro micro の PWM は、通常 1kHz 以下 (488 Hz, 976 Hz)*1 で動作。これは Arduino UNO の初期状態とほぼ同じです (490 Hz, 977 Hz)*2。それが条件によっては 62kHz、最高で 187kHz、もっと頑張ると 375kHz で動作できるようです(実用的かどうかについては私は知りません)。リンク先 (*1) にサンプルソースコードが有ります。
参考:
*1 http://r6500.blogspot.jp/2014/12/fast-pwm-on-arduino-leonardo.html
*2 https://theoriesblog.blogspot.jp/2014/05/arduino-pwm.html
Arduino UNO だと最高 30k か 60kHz っぽいので桁違いに速いですね。
終わりです。結論とかないです。へぇーってメモなので!
他
話は変わります。Arduino UNO とか Arduino nano の 328P 関連。調べてる最中に見つけたこと。
・Arduino UNO (328P) の delay は Timer 0 によるものであり、976.5625(977) Hz なので、正確には 1 秒じゃなかったのね、という話。
時計作ろうとしたとき普通は RTC モジュールを使うのでしょう。手抜きして作ろうとしたら簡単に作れないという。
https://qiita.com/hotchpotch/items/382cb6a66fafbb819767
・PWM 周波数変更関連はこのページ見るとかなり扱えるようになりそう。
https://theoriesblog.blogspot.jp/2014/05/arduino-pwm.html
・あとは PWM 周波数を任意の数値 (16Hz~1MHz) に変えられるという記事。これは面白い。
http://blog.kts.jp.net/arduino-pwm-change-freq/
・Arduino PWM 関連で真っ先に参照されるサイト
https://garretlab.web.fc2.com/arduino/inside/arduino/wiring_analog.c/analogWrite.html
・落とし穴とかがわかりやすくて読みやすそうと思ったサイト
http://www.ejwt.net/archives/1019
ン~、理解してないで読んでるので頭が混乱してきました。三角波~ノコギリ波~レジスタ~タイマー~ピン~、ン~…0(:3 )〜 _('、3」 ∠ )_
まだクローリングしてるだけなので、日を改めてまとめようと思います。
0コメント