電子工作初心者が STM32F072CBT6 を使って設計と実装した記録
前置き
個人的な記録なので, マニュアルとしては役に立たない. 色々試行錯誤し, 一人二人くらいには役に立ちそうに思ったので残す. 最終的には期待通りに動作したが, 正確な情報は他で見た方が良い.
設計と書いたが kicad のスキーマは Casasgi を基幹部分においてベースとしているので新規に自分で設計したというより, Casasagi をコピーし理解しながら自分の希望に合うように整形していった, というのが実際.
キースイッチの他には LED (キー スイッチごとのバックライト) と OLED をつけた.
回路としてはスプリットではなく一体型で MCU や USB コネクタはひとつ.
2020/12 時点においてキーボードの現物は存在しないが, 設計データは公開されている.
極めて有益だった. 他の設計データを比較しながら奮闘する最中に設計データが公開された. リファレンスとのうたい文句通り一気に理解と作業が進んだ.
初心者の程度
自作キーボード以外の電子工作経験無し.
直列, 並列, オームの法則について分かろうとしたことがある.
できていたこと
公開 Kicad データを切り貼りして動作するキーボード基板を作ったこと二回. 実際利用して特に問題なし.
Smkj の Discord に度々目を通し, 断片的な知識は持っていた.
勉強して大変役に立ったこと
何もわからないと LED or OLED or EEPROM 付ける場合, 既存設計データの丸写ししかできない.
それらをつけないなら不要.
検索するとわかり易い記事がたくさんかかるのでキーボード設計に必要な程度なら学習コストは低かった.
何もわからないと mcu のピンへの割当 (e.g. ROW0 COL1 BOOT) を自分で決められない.
割当について既存データのコピーに徹するなら不要.
読み方の簡単なポイント
ROW や COL の読み取り (電圧の High / Low を読み取る : IOピンと呼ばれる) に利用できるピンは Px (e.g. PA1 PB2) が振られているもの. 表の中に alternate functions 列があり, それぞれの Px ピンに IO 以外の機能がありそうだとわかる. 取り敢えず気にしなくていいが, i2c など必要に応じて検索する. (e.g. PB7 には I2C1_SDA とあるので, i2c 利用時に sda として配線しうる)
設計
1. 部品点数や種類が必要最小限に絞られている.
2. kicad_pcb ファイルの配置, 配線について意図を汲み取りやすいので自分の設計においての取捨選択がし易い.
(casasagi に限ったことではないが, BOM (Bills of materials) という部品表が kicad データとして用意されているので, 部品選択の知識がなくとも大方揃えられる.) USB 周り, 電源周り, MCU 周り
casasagi と全く同じにした. 前述の通り他のキーボードに比べ部品が必要最低限の量であることと部品調達の簡易さを考慮している点で魅力的だった. (もともとは複数キーボードのいいとこ取りしながら設計していたが, 部品の種類の多さはそのまま不安になっていた)
LED
qmk では LED について stm32 への対応が不十分と公式にうたわれていたので, casasagi に関する discord の投稿を参考にプルアップによる 5 V 回路を使うこととした. (他のキーボードでは軒並みレギュレータという部品により昇圧していたが実装スペースがかなり少なかったので) cassagi の BOM より型番で引き当てることで 9 - 10 割完結した. 他を選ぶ際に必要だった知識
電流の安定化のためにつけるものだが, キーボード回路は比較的単純なため極論するとなくても動作はする. よって余り神経質にならなくていい. 例えば静電容量値についてデータシートの推奨値と casasagi の採用値は異なるがキーボードにおいては問題とならない.
気にするパラメータは基本 Capacitance (静電容量) と Package (形 / 大きさ) で電圧は 10 V もあれば十分. 大は小を兼ねる, と思っていい.
casasagi では 0603 パッケージで統一されているが, より小さい 0402 パッケージも利用できる. ただし適当なピンセットがないとはんだ付けの難易度は挙がる. キャパシタと異なり, 動作の成否に直接関わる.
気にするパラメータは基本 Resistance (抵抗値) と Package (形 / 大きさ) で Watt (消費電力) は 0.1 w 程度 ???
実装
USB-C と MCU の足 (0.5 mm ピッチと比較的狭い) は想像したよりは難儀した. まず部屋が 8 度程度と低めだったことが良くなかった. はんだが溶けづらさからコテの温度を上げると, こて先が接する部分への負荷は高くなり色々破壊してしまう. 初心者なのでおとなしく大手の無難なはんだ線, フラックス, 吸い取り線を用意しなおした. そうして初めて手持ちの道具の劣悪さに気づいた. (e.g. aliexpress のはんだ線で一度ブリッジすると取れないものがあった. [aliexpressfの吸い取り線で, 吸い取らずにはんだをただ押し広げるだけのものがあった.) やり方については動画がいくつもあるので余り悩むことはなかった. 道具がまともならブリッジしても簡単に解消できる.
実装直後は全く動作しなかった. 不通や短絡はなかったので, 問題の切り分けのために 1200 円のロジックアナライザを購入した. 実装直後は最初の一つだけ点灯し, あとはどうやっても点灯しなかった. ケーブルを交換したら動作した. 当初のケーブルも不通, 短絡はなかった. いずれ原因を突き止めたい.
qmk の設定