投稿

3月, 2021の投稿を表示しています

ProMicroから脱却したい! #6(終)

イメージ
Promicroから脱却を目指すシリーズ第6回です. 実は,今回で完成しました. なにも部品を壊さなかったことが奇跡のように思えます. ※このシリーズは全編に渡ってド素人が書いてお入ります.間違ったことも多々書いていると思うので参考にしないでください. おさらい 前回は実験の計画をしました. 計画だけで終わったので内容としては面白味のない感じになってしまっていますが,今回こそ実験をします. 結果を端的に 実験の経過をダラダラと書いても仕方がないので,端的に結果から書きます. 結果としては,ATMEGA32U4の25個のI/Oポートはすべてキースイッチの入力として使うことができました. はい. そんな気はしていましたが,なにはともあれよかった(?)です. おまけ ここから先はログとして実験の内容を書いておきます. こちらは実験風景です. 前回の実験計画に基づいた配線をして,動作を確認しています. 初めに,ProMicroで正常に動作するファームウェアを書きましょう. 当然(?)ですが正常にすべてのキーで入力が行えました. 前回作った表を見ながらジャンパーワイヤーを付け替えます. 配線はこれで準備OK. そしたらQMK_firmwareのconfig.hを書き換えましょう. ここですね. やっぱり変換表を見ながら書き換えていきます.順番を変えてしまうとキーマトリックスが崩れるので要注意ですね. そしたら,コンパイルしてQMKtoolboxでATMEGA32U4に書き込んでやりましょう. ファームウェアを変える前と同じ動作をするか,すべてのキーを確認します. 途中ファームウェアを書き換える際に,I/Oポートの設定がうまくいっていなかったのかわかりませんが,想定しない挙動を示す場面がありました. 悩まされつつもコンパイルし直して,ファームウェアを入れ直したりしていたら正常に動作しました.これについては何が原因だったのかは本当に謎です. 難しいことはよくわからないので考えないことにしておきます(正常に動いているのであればそれでいい). こんな調子で実験は終わりました. あっけなく終わってしまうものですね. ほんとうのおまけ 今度こそ本当のおまけです. I/Oポートのの動作を確認した後,少し気になっていたことを確認しました. 何かというと,LEDです. ProMicroには3つ

ProMicroから脱却したい! #5

イメージ
Promicroから脱却を目指すシリーズ第5回です. 投稿頻度が週1回になりつつありますが,私は生きています. 直近1週間はいろいろと進捗があったのですが,記事になるのはまた先になりそうです. ※このシリーズは全編に渡ってド素人が書いてお入ります.間違ったことも多々書いていると思うので参考にしないでください. おさらい 前回はついにユニバーサル基板上でコントローラが動きましたね.回路図を写し間違えるというくだらないミスのせいで動くまでに結構時間がかかってしまいました. 今回は実際にスイッチをつなげてキーボードを動かしてみます. 実験の概要 ATMEGA32U4コントローラを使って何を実験するのか初めに整理しておきましょう. 実験の目的はどのI/Oポートが使えるのかを調べることです. ProMicroには18個のI/Oポートがありますが,ATMEGA32U4コントローラにはデータシート上25個のI/Oポートがあります. この25個のI/Oポートが使えるのであれば,一つのコントローラでProMicroよりも多くのキースイッチが制御できることになります. 前回やっと動いたこちらを使って,どのI/Oポートを使うことができるのか検証していきます. 基板上のピンヘッダはこのために用意していました.25個あります. たまには役に立つ 実験を行うために,過去に作ったキーボードを 引っ張り出してきました. これはPCBを設計する前に試作したキーボードです. ユニバーサル基板に余っていたタクタイルスイッチを5行7列で組んでいます. ProMicroはピンヘッダでの接続だったため,今回の実験で活躍しました. (過去に作ったこういったものが捨てられないのですが,とっておくと役に立つときもあります)  まずは頭の整理から ワーキングメモリの少ない私は並行作業がとっても苦手です.ポンコツです. 先の作業を円滑に進めるために,頭の整理をしておきましょう. なにがややこしいかというと,ProMicroにかいてあるポート名とファームウェア上でのポート名が異なることです. 度々登場しているこちらの画像ですが,画像を確認するとProMicroの一つのポートに複数の記号が割り振られています. 左上にその内訳(色ごとに)が書いてある通り,扱い方によってそれぞれのポートの”呼び名”が異なっています. 例えば,