ホーム -> 電気工作 -> 実験用、治具用基板 -> mega32u4実験用基板

mega32u4実験用基板 制作メモ


最初の実験基板 回路図 基板図 単独用回路図 単独用基板図 単独用部品表 基板が入った荷物 生基板(表) 生基板(裏) Type-C半田付け USBコネクタ信号 基板組み立てた ハンダでジャンパー 抵抗、クリスタル、コンデンサを追加 Flip起動 Atmega32U4選択 セッティング USB  オープン デバイスデータ表示 Blank  Check Blank  Check 結果 HEXファイルの選択 HEXファイル書き込み後 速い点滅 約1秒間隔の点滅
  • 発想 2022年5月1日
    • 新しいIN-17の6桁時計を作ろうと思た時に、 SMDのATmegaが軒並み、「今は注文できません」とか、「納期不明」とか、「2023年7月30日」など、 mega328系列の32ピン、mega664系列の44ピンが入手困難になっていた。
      なので、取りあえず今は秋月で入手できる44ピンATmega32u4を動かしてみたいと思った。 USB経由でも書き込めるみたいなので、使えれば今後も楽になると思う

  • 構想 2022年5月11日
    • 最低はLED点滅とユニバーサル部分を作り、ISPでかきこめればよい。
      出来れば USBで書き込めてUSBで通信が出来れば最高。

  • 実装についての考え
    • 5月12日

      調べてみるとこのCPUにはブートローダ領域のUSBのDFU規約にブートローダーで、 その規約にのっとったやり取り、作成したプログラムを書き込むことが出来る様だ。
      相手側(パソコン、Windows)は、このCPUをUSBを使って接続すると自動的ドライバーをインストールする。 但し、windows7の例ではうまくインストールできずに手動でインストールする必要が有る旨の記述が有った。 実際、どうなのか?
      ドライバーが入った後はどうやって作ったプログラムを送るのか?
      「AtmelのFLIP」というプログラムを動かして書き込むみたい。 それが何処に有るのかよくわからない。web上の説明でリンクが張って有るものをクリックしても、 Atmelでは無くMicro chipの所に行ってしまう。
      現状まだ確実な所の動作が確認できないが、基板を作れば、USBを繋ぐだけでプログラムを書き込めると理解して良さそうだ。

    • 2022年5月23日

      調べてみると、USBでは「FLIP」を使えば一度は書き込める事は確かみたい。
      だが、2度目もUSBで書き込めるかはハッキリしない。と言うか、書き込めないみたいな気がする。
      2度目もUSBにするには1度目の時に「DFU」を一緒に入れる必要が有るみたいだが、「FLIP」がそれを 自動的にやってくれるかがわからない。
      「DFU」が無くなっているとUSBでは書けないのでISPで「DFU」を書く事になる。 これならば、始めからISPで書いても同じではないだろうか。 基板にはISP用のコネクタ(端子)を設ける必要が有るので、最初からこのコネクタを使ってプログラムを書き込めばよい事になる。 作るプログラムの中で、USBでの制御が必要なら別だが、必要が無いのならUSBはいらないと思える。
      そうなるとこのCPU「ATmega32U4」を使う意義がなくなってしまう。 現在はSMDのATmegaがなかなか手に入らないので、これを使うと言う選択も有るが、 他の物が普通に手に入るのなら、わざわざこれを使う理由が無くなってしまう。

    • 2022年5月23日

      LED点滅プログラムが出来たので、実験用基板をどの様な物にするか。
      ユニバーサル部分は必要で、電池1本からの昇圧電源回路とON/OFFスイッチと回路との切り離しジャンパー、 発振子とそれ用コンデンサ、リセット回路とそのスイッチ、ISPコネクタ、 USBコネクタとUSB、電源端子、動作確認用のLEDと抵抗

    • 2022年6月1日

      基板設計で、発振子とそれ用のコンデンサを入れるのは難しいので止める事にした。

    • 2022年6月6日

      秋月に頼んだtype-cのコネクタが来た。半田付けする端子が小さい。これをうまく取り付ける自信がない。 Type-Bの普通のコネクタにした方が良いと思う。両方共入れる事にする。

    • 2022年6月7日

      ユニバーサルで試しの回路を組んだ時、電源を繋がなくても動作確認をしたい。 なので、電池を載せたい。単4電池で5Vを作って供給出来れば良いのだが、 そうなると単4電池が大きいので、100x100の基板を作る事になりそう。
      USBを使う時はUSBから電源をもらうとすれば、3Vの電池で動作は出来る。 CR2の電池を使う事にすれば、50x100位で入るだろう。


  • 現状
    • 5月1日
      秋月にATmega32u4を2個頼んだ。
    • 2022年5月4日

      秋月に頼んATmega32u4が来た。DIP変換基板も付属していた。回路設計の前にこれを使って実験が出来そう。

    • 2022年5月12日

      DIP変換基板にCPUを半田付けした。 後はこれにISP用6PコネクタとUSBのタイプBを付けて、 5V電源を入れて、通信が出来れば第1段階はOKと考える。

    • 2022年5月13日

      プログラム書き込みに 普通に作ったhexファイルを書き込むと、DFUが無くなってしまうみたい。 少なくともISPを使って書くと、書く前に入っている物を消す事になるので、そこで消えてしまうみたい。 USBを書き込みに使うFLIP(DFUを使う)は、消すのかどうかまだハッキリわからない。
      DFUが入っている買ったばっかりのサラのCPUを一つ用意して置けば、DFUを読み出す事が出来るのではないかな?
      読み出した物を書き込めば、DFUが使えると思うがどうだろうか? 取りあえずFLIP(DFUを使う)は、ダウンロードした。覚えの電子工作のフォルダ内の「ATmega32u4」に入れた。

    • 2022年5月14日

      DIP変換基板にCPUを半田付けした。 5V電源と電源LEDを取り付けて変なショートは無く、電源LEDが点灯することを確認した。
      後はこれにISP用6Pコネクタとリセットスイッチ付ける予定。 これでISPを繋げて、CPUの中のデータ(ヒューズデータ等)が読めればOK
      次にUSBのタイプBとクリスタル+コンデンサを付ける予定。これでUSBで繋がり、アクセスできればOK。

    • 2022年5月16日

      DIP変換基板にUSB-TYPE-B以外を半田付けした。 恰好は悪いが、ISPでアクセス出来るはず。今日はここまでで、まだアクセスはしていない。

    • 2022年5月20日

      「FLIP」と「Atmel Studio7.0」をWindous10(インターネットに繋がっている)にインストールした。 それぞれの画面は出て来た。
      「Atmel Studio7.0」では変数の操作のコードを書いたらコンパイル(ビルド)は出来、 hexファイルも出来たが、動くかどうかはわからない。XC8なので、GCCで作った方が良いのかな?
      GCCでも作ってみた。数バイト長いが、コードその物が短いので何とも言えない。 他のCPUでLED点滅ぐらいしてみないとわからない
      「FLIP」はターゲットのCPUをmega32u4にして、 「Atmel Studio7.0」で作ったhexファイルを読み込むまでは出来た。
      今日はここまで

    • 2022年5月21日

      USB-TYPEBを接続した。データの直列抵抗は15Ω(30パラ)にした。
      今日はここまで

    • 2022年5月25日

      USBケーブルでWindous10に接続しても変化なし。FLIPでUSBを選んでもダメ。 デバイスマネージャーでUSBの所を見てもそれらしい物は無い。
      何をどうしたら良いのかわからない。

      ISPではヒューズもプログラムもアクセスできる。適当なプログラムは書けて、ベリファイも通った。
      USBは諦めて、ISPで書く方が簡単。

      「実装についての考え」でも書いたが
      今の所、作ったプログラムでUSBを操作する事が無いので、ISPで書く方式で支障はない。
      言い換えれば、USBは邪魔。

      取りあえずはLED点滅が出来れば良しとして、ISPで書き込んで点滅するまで
      PC7にLEDを繋いで、点滅プログラムを書き込み、動作は確認できた。

      後は、実験用のユニバーサルなどを載せた基板を作る事になる

    • 2022年6月1日

      実験用の基板の設計はほとんど終わった。後は「ユニバーサル部分をどの程度にするか」、がまだ。 言い換えれば、基板全体の大きさがまだ決まっていない。(他の基板と組み合わせるかもしれないので)

    • 2022年6月7日

      回路図基板図が出来た。約50mmx約100mmで作った。もう一つ基板を組み合わせられる大きさになった。

    • 2022年6月10日

      Atmega4809_LEDと結合したガーバーファイルを作った。

    • 2022年6月13日

      部品表を書いた。

    • 2022年6月16日

      RSに頼む物だけは先に今日注文した。

      Elecrowに基板を頼んだ。 配送業者は「E-Commerce express(7-10Business days)」にした。
      円安の影響で以前頼んだ時よりも、割高になっている。
      それでも基板代金としては5枚で700円÷2位なので、高いとは言えない

    • 2022年6月17日

      RSに昨日注文した物の一部は 今日入った。

      Elecrowから2つの回路を付けた基板に見えるので、12$を追加で支払って欲しいと言うメールが来た。 (実際その通り)  12$余分に払うなら、一つづつにして2枚頼んだ方が良いので、今回はこの基板だけキャンセルする様に返信をした。
      別々の基板にして、周りにもう少し回路を追加してから、注文したいと思う。

    • 2022年6月18日

      Elecrowから3日中(3労働日中)に$4.9を返却するとメールが来た。

      急いで設計した感じが有るので、も少し時間をかけてあらためて設計したい。 ユニバーサル部分、電源部分などをよく考えたい。

      4809の基板とやはり共通にしたい。裏表で使い分けられないか?お互いに全て片面に出来れば、共通に出来るような気がする。 電源(5V)は共通でも良いと思う(スルーホールを使って、部品番号、部品名などは新たに基板にだけ書き込めば良いと思う。
      今までは、44ピンTQFPをDIPに変換する機能も考えていたが、それは無しで、32U4専用にする。

      すこし基板図に手を入れたが、片面だけの配線は難しい。と言う事は、4809の基板とは共通に出来ない。
      電源部分をCR2から単4+昇圧回路の5Vにしたい。それと、SMDの部品は止めて、スルーホールにしたい。 ユニバーサル部分にSMDの物のパターンを追加したい。 SOIC8、SOIC18、は2個づつ、SOT23は4個、2012の部品は10個ぐらいは欲しい。 基板寸法としては、100x100は大きい。100x50位に収めたい。

    • 2022年6月22日

      電源部分を単4+昇圧回路の5Vにしたい。部品はスルーホールにした。 ユニバーサル部分にSMDの物のパターン(SOT23は20個、2012の部品は20個ぐらい)を追加した。 基板寸法は、100x60に収まった。
      回路図基板図が出来た。 ガーバーファイルも作った。部品表はまだ出来ていない。

    • 2022年6月23日

      部品表が出来た。

    • 2022年12月16日

      elecrowに基板を注文した。
      一緒にsix_in17の3種類のアクリルと、tyuのアクリルと、mega48_ledの基板も注文した。今年中に来れば良い方だろう。

    • 2022年12月17日

      elecrowに注文した基板の色を赤にしてしまった。黄色にする筈だった。

    • 2022年12月24日

      昨日、発送したとElecrowからメールが来た。届くのは多分来週前半だろう。

    • 2022年12月28日

      今日、佐川で荷物が届いた。
      入っていた基板()は見た所良い様だ

    • 2023年1月18日

      基板の組立を始めたが、USB-Type-Cのコネクタ付が大変だ。
      何とか半田付けは出来た(かも?)が、CPUのTQFPの比ではない。 ペーストを使って、何とかハンダを流す感じでやったが、本当についているか? 見えない所で隣とくっついているのではないか? ペーストがコネクタ接点の所まで行っているのではないか?
      見た目だけではない不安材料が一杯ある。
      このコネクタは、手半田で付ける物では無い。 ステンシルとクリームハンダとヒーターで付ける物だと思う。
      今日は、これだけでやる気が失せたので、終わり。

    • 2023年1月19日

      Type-Cの半田付けをテスターを使って調べてみた。
      Type-Aとの変換ケーブルを使って調べたところ、+5V、GND、+D、-Dの4本に関しては 繋がっている事、相互に接触していない事は確認できた。(USBコネクタ信号) 他の信号に関してはまだわからないが、Type-Bのコネクタを使えば、 Type-Cのコネクタに邪魔はされないで通信できると思う。

      今、USBの説明書を見ていて気が付いたが、この基板にはフルスピード(FS)とロースピード(LS)の判別用の回路が無い。 忘れていた。(見落としていた) +Dか-Dを+3.3Vに抵抗を介して接続して、ホストが判別できるようにしないといけないみたい。 ユニバーサル部分に追加する必要が有るだろう。

      基板は組み立てたが、電源関係のLEDが点灯する所までしか、確認できていない。
      今日はここまでとする。

    • 2023年5月6日 この基板を動かす為のジャンパー等を考えてみる。
      • USBコネクタから5Vを貰うとして、SJ1~SJ12の全てのジャンパーをONにする。
      • トグルスイッチ(S2)をVBUS側にする。
      • HWB(PE2、33ピン)を10kΩでプルアップする。
      • スイッチサイエンスの基板では、 +Dか-Dを+3.3Vに抵抗を介しての接続(ハイスピード、ロースピードの判別用)を していない。しなくても良いのか?...。
        しかし16MHzのクリスタルを使っているので、16MHzのクリスタルを付ける事にする。コンデサ2個も付ける。

      これで、Flipを使ってプログラムを書き込めるような気がする。
      書き込む時は、HWBスイッチ(S1)をONにしながらリセットスイッチ(S3)を押し、 リセットスイッチ(S3)を離してから、HWBスイッチ(S1)を離す。
      通常のプログラムを走らす時は、HWBスイッチ(S1)は押さない。

    • 2023年5月8日

      基板のSJ1~SJ12のシャンパーを半田を盛ってショートした。
      プルアップ抵抗と、クリスタル発振子とコンデンサ(12PF)を付けた。

      TYPE-Bコネクタでパソコン(Windows10)と接続すると、パソコンから「ピコン」と音がしたので、多分認識したのだと思う。
      一度、TYPE-Bコネクタを外す
      Flip3.4.7を起動してから、その画面で、
      [Device]-[Select]-[ATmega32U4]を選択する
      改めて TYPE-Bコネクタを接続する。
      [Setting]-[Communication]-[USB]を選択すると、 「USB Port Connectiom」のダイアログが開いて「Open」と「Cancel」のボタンが出るので 「Open]を押すと
      右の枠「Atmega32U4」の所に
      • Signatyre Bytesに [58][1E][95][87]と表示され、
      • Devise Boots Idsに [00][00] と表示され、
      • Bootloader Verに[1.0.0]と表示される。
      真中のの枠「FLASH Buffer Infoemation」の所に
      • Sizeに 28kBと表示され、
      • Rangeに 0x0 - 0x0と表示され、
      • Checksumに 0xFFと表示され、
      • Reset Before Loading される
      左の枠「Operation Flow」の所
      • [Erase]のチェックボックスにチェックが付き、
      • [Blank Check]のチェックボックスにチェックが付き、
      • [Program]のチェックボックスにチェックが付き、
      • [Verify]のチェックボックスにチェックが付いた。

      ハッキリとはしないが、シグネチャーが出て来たのでUSBで通信は出来ているのだろう。

      取りあえず次のチェックとして、[Blank Check]のチェックボックスのチェックだけを残して 他のチェックボックスのチェックは消してから、その下の「RUN」ボタンを押した。
      そうするとその下の枠の所に[Blank check PASS]と表示されたので、 FlipプログラムとCPUのやり取りは出来ているみたい。

      今日の所はここまで
    • 2023年5月11日

      ここからは前回の続き(ブランクチェックの後から)
      今度は[File][Load HEX file]でLED点滅のファイルを選んで読み込む。
      その後、[Blank Check]以外の[Erase]、[Program]、[Verify]の3つだけにチェックを入れて その下の「RUN」ボタンを押す。
      そうすると下の枠に[Verify PASS]と表示された。これで書き込めたハズ。 右枠の下の「Start Application」ボタンを押すと、 LED1(赤)が速く点滅した。(なぜかわからない)
      USBケーブルを外して、CPUにバッテリから電源を入れる操作(S2:BAT、JP1:ショート)をにしてから バッテリー電源ONにすると、LED1(赤)が約1秒間隔で点滅をした。
      プログラムが書き込めて、動作を確認できた事になる。

      何度もプログラムが書き込めるか試す。
      USBコネクタから電源を入れる操作(S2:USB、JP1:オープン)をする。 USBケーブルを差し込み(LED1は約1秒間隔で点滅する)、 HWBスイッチを押しながら、 リセットスイッチを押して離してから、HWBスイッチを離す。
      するとパソコンがピコンと鳴って、USBを認識する。 あらためて、Flipで[Setting]-[Communication]-[USB]を選択し、 USBをオープンする。 確認の為ブランクチェックをする。「RUN」ボタンを押しても動かないみたいなので、 枠の上にあるブランクチェックボタンを押す。 下の枠に[Blank check fail at 0x00000]と表示される。
      次にプログラムを消したいので枠の上にあるイレースボタンを押す。 [Erasing done]が表示される。
      この段階で一度USBケーブルを外して、Flipも閉じる。 CPUにバッテリから電源を入れる操作(S2:BAT、JP1:ショート)をにしてから バッテリー電源ONにすると、LED1(赤)は点滅しない。(点灯もしない)
      プログラムは消えた。
      USBコネクタから電源を入れる操作(S2:USB、JP1:オープン)をする。 USBケーブルを差し込み(LED1(赤)が約1秒間隔で点滅)、 HWBスイッチを押しながら、リセットスイッチを押して離してから、HWBスイッチを離す。
      するとパソコンがピコンと鳴って、USBを認識する。 以後は1回目と同じ様な操作を行う。
      あらためて、Flipで[Setting]-[Communication]-[USB]を選択し、 USBをオープンする
      [File][Load HEX file]でLED点滅のファイルを選んで読み込む。
      その後、[Blank Check]以外の[Erase]、[Program]、[Verify]の3つだけにチェックを入れて その下の「RUN」ボタンを押す。
      そうすると下の枠に[Verify PASS]と表示された。 USBケーブルを外して、CPUにバッテリから電源を入れる操作(S2:BAT、JP1:ショート)をにしてから バッテリー電源ONにすると、LED1(赤)が約1秒間隔で点滅をした。
      2度プログラムが書き込めて、動作を確認できた事になる。

      USBから電源を取らなくても、バッテリー方電源を入れる操作をした状態(LED1(赤)が約1秒間隔で点滅している)で、 USBケーブルを差し込み、HWBスイッチを押しながら、リセットスイッチをを押して離すと、 パソコンがUSBを認識する。(LED1は消える)
      なので、認識した状態でFlipを起動して、[Setting]-[Communication]-[USB]を選択し、 USBをオープンすれば、 ブランクチェックやプログラム書き込みが出来る。

      これで書き込みの確認が出来た。
      AVRISPが有れば、このUSBによる書き込みのメリットは余り無いが、 Atmega32U4を使う時は、選択肢が増える分は、メリットだろう。
      このCPUを選択するのは、USB通信のプログラムを作る時に限定されるように思えるので、 私としては、今後使うかどうかわからない。

      ※ユーザープログラムを書き込んでいない状態の時(購入した時のまま)は、
       HWBスイッチを押しながら等の操作をしなくても、
       USBケーブルを差し込むと、パソコンはUSBを認識する。
       但し、USBからの電源供給時しか確認できていない。

      「クリスタルを付けないと動作しない」のか確認をしたい。
      付けないで、USBから書き込みが出来れば、デメリットが減る。

    • 2023年5月12日

      Type-Cで接続しても TYPE-Bと同じ様にパソコンが認識して、 「Flip」で Signatyre Bytes他が表示出来たので、Type-Cでも TYPE-Bと同じ様に使える。

      クリスタルを付けない状態では 書き込み済のユーザープログラムも動作しない。
      USBプログラム(DFU)とユーザープログラムの切り替えがうまく行かないのかな?
      何にしても、クリスタルを必要とする。
      クリスタルとコンデンサを 16MHzのコンデンサ内蔵セラロックに交換しても、 USBの動作もユーザープログラムプログラムの動作も出来た。
      厳密には周波数精度が問題になるかもしれないが、実用上は大丈夫みたい。

      Flipで書き込めるのは FLASHとEEPROMみたいなので、ヒューズを書き換えたい時は どうするのだろう?
      今は多分、内部発振8MHzの1/8クロックで1MHzで動いていると思うが、 これを外部発振子を使って 16MHzの1/1で16MHzで動かしたい時はどうしたら良いのだろう?
      ISPが必要となったら、ユーザープログラムもISPで書けばよいのだから、 このUSBを使う意味が無いような気がする。

      現状は 1MHz動作で、他のヒューズ設定もデフォルトで動かすというのが前提かな?
      実際にこのCPUを使う必要が出て来た時に考える(調べる)事にする。


  • 参考資料
    • 部品表
      ガーバーファイル
      基板に関してはこのガーバーファイルを直接使う事は止めてください。なお、基板(生基板)は 現在の手持ち分に限り 無料で差上げます。
      こちら連絡先へメールをお送り下さい。

ホーム          カメラと写真        2023年5月12日更新 Taishi