2019年12月2日月曜日

STM32F042K6T6 のブレークアウト基板を作成する(前編)

マイコン素人だけど、今年から自作キーボードを始め、最初はお手本通りに ProMicro で作ってみた。

ProMicro には atmega32u4 (QFP44) という、USB ペリフェラルが載ったマイコンが使われている。しかし、遊舎工房さんの meishi展パンフレット)では、atmega328p (QFP32) という USB ペリフェラルの載っていないマイコンを使って PCB を起こしているものがあり、それがとてもカッコよかった。ProMicro 基板を使わず、自分でもハンダ付けできそうなマイコンが直付けで、コンパクトにまとまっている!

どうやら V-USB という、GPIO で USB プロトコルを実装したライブラリがあるようだ。その後数ヶ月はその辺りを色々と調べ、qmk は使わずに、V-USB で HID キーボードデバイスを実装し、USBaspLoader で書き込むというところまでは動かすことが出来た。

というところで、だがしかし、職場の先輩社員から STM32F042K6T6 という、USB ペリフェラルが載っていて、しかも秋月で安く売られているマイコンがあると教えてもらう・・・。

atmega328p に比べると、外部クリスタルは要らないけど、3.3V レギュレータが必要。arduino よりも参考にできるサイトは少なそう。V-USB は一応ちゃんと動いたけど、だけどパケット効率があまりよく無いという記事(Interrupt free V-USB)もあったしなぁ・・・。
よし、やってみるか!ということで、KiCAD で作ってみたのがこちらの breakout 基板。


pcbgogo から届いて、早速ハンダ付けして mac につないでみたけど、まったく動かない(汗)電源 LED が付くだけ・・・。

だけど、ST-Link も持ってないし、オシロスコープも持ってないので、仕方なしにアナログテスターで地道に調べていくこと2〜3時間。

あれ?USB の D- 端子がプルアップされている!?このデバイスは USB のフルスピードのはずだから、D+ 端子がプルアップされるはずでは・・・?

回路図確認したら、D+ / D- 端子を逆につないでいた(汗)上の写真だと、裏面(下側)の R7, R8 と J3 の接続が入れ替わっている。そら動かんわ・・・。下の回路図は修正後のもの。


うわ〜、やってしまった〜、と思ったけど、何とか踏みとどまって修正法を考える。結局、R8 を対角線に取り付けて、R7 の方は R8 に並行に置いて、ジャンパー線で配線することにした。アクロバティック!色んなところがキワキワ。


なんとかこれで動いた!ふ〜〜っ。BOOT0 スイッチを押しながら RESET スイッチを押すと、USB ブートローダが起動している。


最後に L チカを書き込んで動いたところ。


STM32_Programmer_CLI を使って DFU 経由で書き込む。STM32CubeIDEをインストールすると、
/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.macos64_1.1.0.201910081157/tools/bin/STM32_Programmer_CLI
にプログラマのバイナリがインストールされているので、これを使う。

その後 ST-Link も入手し、現在は、修正した基板を発注中〜♫

後編に続く。





1 件のコメント:

  1. このコメントは投稿者によって削除されました。

    返信削除