This is My First Keyboard Project.
これらのデータで発注・加工する。
このリポジトリは自作キーボードのためのリポジトリ。 ただしハードウェア設計に関するファイルのみ。うp主のインフラの事情的に、ハードは Windows ソフトは Ubuntu で開発することになってしまったので、ハードとソフトでリポジトリを分けた。 統合してぇなぁ...
- USB バスパワー:5V 500mA
- Raspberry Pi Pico の GPIO のパワー
- Raspberry Pi Pico のピンによる電気特性は RP2040 のデータシート 『5.2.3. Pin Specifications』を参照
- .
- キーボード全体で 300mA になるようにしたい。
- USB 5V だが、実際 500 mA くらい使用すると 4.8V くらいに下がってしまうので、USB デバイスはそうならないように余裕を持たせて設計する。
- GPIO で FET のゲートを制御し、Vbus からの電力を供給する。
- LED と制限抵抗は必ず一つにまとめる。
- .
- 謎があって、USB から電力を入手するとしても、87 個の LED を並列に点灯させようとすると、一つの 抵抗 + LED に流せる電流は最大でも 300 mA / 87 個 ≒ 3.4 mA となってちょっと弱すぎじゃね?って感じがしてしまう。これじゃあ LED 点灯できないじゃん...
- .
- LED のデータシート?これ何?
- output current 出力の最大値 MAX 100 mA
- current limit 制限電流 MIN 150 mA TYP 350 mA MAX 450 mA
- .
- LED の設定
- 一つの LED に電流制限可変抵抗と LED を直列に繋いだ回路において、デューティー比 100% という条件で以下の状態を記録。
- 電源電圧 5 V
- 抵抗降下電圧 1.692 V
- LED 電圧 3.17 V
- 電流 19.30 mA
- 抵抗値 84.5 Ω
- ※小数点以下一桁目より下は当てにならないかも... 0.1 レベルなら当てになるかも。
- 上記が丁度よい輝度になっている。
- .
- 参考までに、電源電圧 3.3 V の時の値も記録しておく。
- 抵抗降下電圧 0.267 V
- LED 電圧 3.03 V
- 電流 10.58 mA
- 抵抗値 21.2 Ω
- ※小数点以下一桁目より下はry
- .
- ついでのついでに参考として、データシートの値を記録しておく。
- デューティー比 100% 電流値 30 mA
- デューティー比 10 % 電流値 100 mA
- 20 mA の時の LED 電圧降下 3.1 V
- .
- 疑問点
- PWM 制御すれば、デューティー比 100 % の時よりも大きな電流を流せるということはわかるけど、推奨デューティー比が 1/10 とかになってて、結局欲しい輝度に届かなくなったりしないのかな?
- Arduino でいいから実験してみると良いかもしれない。
- .
- FET + PWM で実験してみた。
- Nch MOSFET 2N7000 で実験したので、回路的にはローサイド駆動。
- 電流制限抵抗 45Ω PWM: 20ms(50Hz) 100% において、以下を記録。
- 電流 30 mA LED 降下電圧 3.5 V 抵抗降下電圧 1.46 V 但し、100% では僅かに発熱したため、100% 以下での駆動を推奨する。
- .
- なんかもうぐちゃぐちゃしてきたから、いっそのこと実験して特性曲線を自分でプロットすればいいんじゃないかと思って、特性曲線を描いてみた。いや、厳密には点を打っていっただけなんだけど...
- そのスプレッドシートがこちら
- .
- PWM 制御について参考にしたサイトと数式(自作)
- PWM について考える基礎
- 上記サイト内で出てくる数式 y が電力 x が電流 r が制限抵抗 v が電源電圧。回路は 電源-抵抗-対象素子-GND
- .
- いろいろ考えたけど、USB 電源である以上、最大 500 mA で、しかも余裕を持たせないといけないから 300 mA にしないといけないことも考慮して、一つの 抵抗-LED に流せる電流を考えたら、3.5 mA が限界なわけで、結局 3.5 mA 流すことになるならそれで考えたら良いのではないかという結論に至った。
- Vbus-可変抵抗-LED-[D]NchMOSFET(ON)-[S]GND[G]330Ωカーボン抵抗-3V3PWM の回路において、PWM 100% かつ LED 電流 3.5 の時、630Ω の電流制限抵抗がいい感じ。
- ゲート抵抗が無いと FET が ON になったときにショートしてしまう。よってゲート抵抗は必要。
- ではゲート抵抗はどのくらいが良いのか。実は計算する方法がある。
- R_G = V_in / I_G ∩ I_G = Q_g / t で求めることができる。 |記号|意味| |---|---| |R_G|ゲート抵抗| |V_in|入力電圧| |I_G|ゲート電流| |Q_g|ゲート入力電荷量| |t|ゲート立ち上がり時間|
- ここで、入力電圧はゲート抵抗への入力電圧であり、ゲート抵抗を超えた時のゲート電圧とは違う。(つまりゲート抵抗で電圧降下する前の電圧ということ)
- ゲート入力電荷量は、使用する FET のデータシートに記載されている。
- 2N7002 のデータシート見てみたけど、書いてない...今回は 100R でいいんじゃね?
- LED のみを安直に並列に接続してはいけない。一つの LED に対して一つの電流制限抵抗が必要となる。よって LED を並列に接続したいときは電流制限抵抗 + LED で一つの素子として考えたほうがいいかもしれない。
- USB の電力は 5V 500 mA である。しかし、デバイスが 500 mA 近く流れそうになると実際は 5 V より少し小さい値に低下してしまう。これを防ぐためにデバイスに流れる電流は 300 mA 程度とし、余裕を持たせたほうが良い。
- FET のゲート抵抗は計算できる。
- FET の G-S 間には 10kR の抵抗をつなぐとよいことを知った。これは MOSFET が OFF の時確実にゲートを OFF にする目的。抵抗が無いと、G-S 間の疑似コンデンサに電荷がたまった状態で、電位は 0V にならず、浮遊状態となり、基準電位を失ってしまう。結果的にゲートの電位が不安定になり FET を ON にしていないにも関わらず勝手に ON になってしまうことが起きてしまう。
- USB 端子に直接つながっている Vbus 端子には、コンデンサがあるとよい。USB 機器のコードは長く、電圧が降下してしまうので、それを防ぐ意味でコンデンサを Vbus GND 間に取り付ける。ただし今回は PWM 制御することを考えるので、電気容量についても注意する必要がある。井口先輩は考えた末に「勘だけど 20 ~ 47 uF」と言っていた。
- ベタグランドはただやたらめったら面積を広くすればよいというものではなく、ベタグランドがアンテナになってしまうときは、敢えて面積を小さくしてでもベタ GND を除去する必要がある。どうしても除去したくない場合は、裏面のベタグランドにビアを繋ぐことで回避できる。
- 配線幅は電流に応じて変更したほうが良い。というかしろ。