PR 記事には広告が含まれています
スポンサーリンク
Translate

AVR32のマイコンボードを製作中です

スポンサーリンク

ATMELのAVR32マイコンで遊んでみたくなりました。Arduinoなどに使われているAVRマイコンの32ビット版です。

スポンサーリンク

AVR32

入手しやすい型番

手軽に手に入るのは、AT32UC3B064と、AT32UC3B0512で、秋月電子で買えます。この2つの違いはメモリのサイズです。

  • AT32UC3B064  :フラッシュROM64kB  RAM16kB
  • AT32UC3B0512:フラッシュROM512kB  RAM96kB

となっています。AT32UC3Bのラインナップとしては、この他に、AT32UC3B0128、AT32UC3B0256があります。

秋月電子では、一番メモリが少ないタイプと、一番多いタイプが売っているようですね。価格はAT32UC3B064が620円、AT32UC3B0512が1180円(2019年3月現在)でした。今回はとりあえず動かしてみたいだけなので、メモリの小さい方のAT32UC3B064を買ってみました。

スポンサーリンク

マイコンボードを考える

変換基板の用意

AVR32は、0.5mmピッチの64ピンのICパッケージです。そのままでは実験できないので、変換基板も一緒に買いました。100円です。

必要な周辺回路を考える

AVR32のマイコンを動作させるにあたり、必要な周辺回路を考えます。AVR32はEVK1100EVK1101といった評価ボードが過去に販売されていました。EVK1100は高機能版、EVK1101はシンプル版のようです。

EVK1101評価ボード

今回は、EVK1101の評価ボードの回路図を参考にします。さらにATMELのアプリケーションノート「Atmel AVR32837: AVR UC3 D Schematic Checklist」がとても参考になります。機能ごとに必要な回路が載っていて、すべて確認すれば正しく動作するというものです。

スポンサーリンク

電源

AVR32のコアは1.8Vで動作しますが、AVR32に1.8Vのレギュレータが内蔵されているので、3.3Vの単一電源で動作させることができます。今回、USBから給電したいので、3.3Vのレギュレータでマイコンの電源を作ります。

USBの電源電圧は5Vですが、ハブを経由したり、電流をたくさん利用するような機器がつながっている場合、4V程度まで低下してしまいます。そこで、なるべく低い電圧まで動作する(低ドロップアウト)レギュレータを使いたいと思います。低ドロップアウトのレギュレータは数多くありますが、極端にすごいのがADP3338です。

最大電流1Aまで出力できるレギュレータなのですが、その時のドロップアウト電圧が190mAだけで済みます。要するに供給する電圧が3.49Vまで低下しても、出力電圧が3.3Vに保たれます。これも秋月電子で売っています。

ポリスイッチの保護も加えて電源回路をこのように設計しました。

パスコン

AVR32は電源ピンがたくさんあります。

  • 1.8Vレギュレータの3.3V電源ピン(VDDIN)
  • IOポートの3.3V電源ピン(VDDIO1〜3)
  • ADコンバータの3.3V電源ピン(VDDANA)
  • ADコンバータのリファレンス用3.3Vピン(ADREF)
  • 1.8レギュレータの出力ピン(VDDOUT)
  • コア用の1.8V電源ピン(VDDCORE1〜3)
  • PLL回路用の1.8V電源ピン(VDDPLL)

全部で11ピン。これらすべてのピンに対して、コンデンサを2種類から3種類接続する必要があります。ピンによってつける容量も変わってきて、以下のようにつなぎます。

  • 1.8Vレギュレータの3.3V電源ピン(VDDIN):33nF+100nF+4.7uF
  • IOポートの3.3V電源ピン(VDDIO1〜3):33nF+100nF
  • ADコンバータの3.3V電源ピン(VDDANA):33nF+100nF
  • ADコンバータのリファレンス用3.3Vピン(ADREF):ADDANAに直結
  • 1.8レギュレータの出力ピン(VDDOUT):470pF+2.2uF
  • コア用の1.8V電源ピン(VDDCORE1〜3):2.7nF+33nF+100nF
  • PLL回路用の1.8V電源ピン(VDDPLL):2.7nF+33nF+2.2uF
スポンサーリンク

かなりの数が必要です。EVK1101の回路図ではこうなっています。

これは手配線では大変そうです。

クロック

発振回路が内蔵されているので、水晶発振子とコンデンサを取り付けます。アプリケーションノートによるとコンデンサは22pFです。

水晶は最大16MHz。評価ボードでは12MHzが付いていますが、高速に動作させたいので16MHzにしようと思っているのですが、12MHzでもPLLで最大クロックで動作できるのかな?これは後で考えることにします。

リセット回路

パワーオンリセットの回路です。これも10kΩと0.1uFを使った普通の回路になっています。

JTAG

AVRマイコンはISPを利用してプログラムを書き込みますが、AVR32はJTAGになっています。JTAGに必要な信号TCK,TDI,TDO,TMSのうち、TDI,TDO,TMSはPA0〜PA02のIOピンと共有になっています。

JTAGのTCKが、EVK1101の回路では10kΩでプルアップされています。

スポンサーリンク

あと、4番のピンには3.3Vが供給されますが、0.1uFのコンデンサが付いていますね。JTAGピンの7番ピンと8番ピンはEVK1101の回路図とアプリケーションノートによると未接続のようです。

JTAGのコネクタは普通のサイズのボックスコネクタではなく、ハーフピッチの10ピンのボックスヘッダとなっています。

スポンサーリンク

写真右のISPのコネクタに比べ、左のJTAGコネクタは半分のピッチでとても小さいです。1.27mmピッチのボックスコネクタが入手できなければ、1.27mmピッチのピンヘッダでも代用できます。方向を間違えると壊れる恐れがあるので、できればボックスヘッダがいいですね。

USB

AVR32はUSBポートがあります。データ線には39Ωの抵抗を入れます。

2019.3.3追記

39Ωの抵抗はピンにできるだけ近くに配置します。

追記終わり

USB DFU Bootloaderという機能を使ってUSB経由でプログラムが書き込めるっぽいのですが、いまいちよくわかっていないので、とりあえずアプリケーションノートに従って接続しておきます。

2019.3.3追記

最初にご紹介したアプリケーションノートのもう少し新しいドキュメントが見つかりました。

Atmel AVR32715: AVR UC3B 32-bit Microcontroller Schematic Checklist

これによると、USB DFU Bootloaderを利用するためには、リセット時にPA13ピンをLowにしておく必要があります。推奨回路はリセット回路と同じく、10kΩでプルアップと0.1uFのコンデンサとスイッチです。

コンデンサがついているということは、電源投入時は自動的にLowになってしまい、書き込んだプログラムが起動するのではなく、DFU Bootloaderが起動してしまいそうですが、これでいいのでしょうか?

EVK1101評価ボードの回路では、ジョイスティックの押し込みスイッチにつながっていて、プルアップ抵抗はありますが、コンデンサはついていません。

また、コンデンサがつながっていることで、プログラムでPA13を出力ピンとして設定して使う場合に問題が発生してしまいます。ポートがON,OFFと変化する時にポートとコンデンサ間に電流が多く流れてしまうので、ポートにダメージを与える可能性があります。

以上のことから、基板にはこのコンデンサを取り付けれられるように、パターンは用意しておきますが、実装しないでおきたいと思います。

追記終わり

スポンサーリンク

結構複雑だった

マイコンを動かすための周辺回路を調べていたら、たくさんの部品を外付けしないといけないことがわかりました。arduinoのAVRマイコンのように、水晶1個とコンデンサ数個くらいだと思っていましたが、大量のパスコンが必要でした。ピッチ変換基板とユニバーサル基板の組み合わせで回路を作ったら、うまく動かないかもしれません。

KiCadで回路設計

もしかしたら、動かないかもしれない手配線をするくらいなら、専用の基板を作ってしまう方が、動く可能性が高く、しかも作るのが楽です。ホットプレートを使ったリフローも簡単にできるようになりました。

そこでKiCadで基板を設計することにしました。必要な部品と構成はリストアップできているので、回路図にするだけです。

スポンサーリンク

大きな四角がAVR32マイコンです。その右側に大量のコンデンサがあります。

KiCadでアートワーク

部品の位置を決めて、重要度の高い電源線と水晶、USBの配線などを手動で配線します。残りの重要性の低い配線はオートルーターにお任せです。そして、オートルーターが配線してくれた結果を修正します。グランドプレーンをなるべく広く取れるよう配線をまとめたり、ビアの位置を変えたり。あと忘れがちなのが、ビアとシルクが重なりを修正することです。ビアにシルクが重なると、そこは印刷されないので、視認性が悪くなります。読めないことはないので、別に忘れてもいいのですが。

KiCadは3Dで完成イメージが見ることができていいですね。部品やシルクの位置関係の把握がとてもしやすいです。

KiCadおすすめ参考書

割いているページ数は少ないですが、今のバージョンのKiCad5の使い方、基板の発注までがぎゅっと凝縮して書いてあります。

前のバージョンKiCad4ですが、2018年12月号よりもっと詳しく書いてあります。古いのでバックナンバーもないかもしれません。
最近KiCad5にバージョンアップしたので、まだKiCad5で書かれた本がほとんど無いですね。
スポンサーリンク

SeeedStudioに発注

いつものSeeedStudio Fusion PCBに基板を発注します。他にも発注したい基板があるので、それとまとめて注文しようと思います。

2019.3.3追記

DFU BootLoarderのためのスイッチが追加になり、部品の配置が変わってしまったので、配線をし直しました。オートルーターのあるおかげでやり直しも手軽にできますね。

SeeedStudio FusionPCBの$4.9で作れる基板の最大サイズが10cm×10cmです。AVR32の基板を2枚面つけするとちょうど幅10cmだったので、面つけして発注しました。

リフローする時に使うステンシルも一緒に発注しました。

ステンシルがあればクリーム半田を印刷できるので、実装作業が格段に効率化できます。

ガーバーデータの確認はgerbvがおすすめです。複数のレイヤーをオーバレイで合成して確認ができます。KiCadのガーバービュアーだとベタグランドの裏の配線が見れなかったりするので、各レイヤーが透けて合成して見れるのは便利です。windowsだとインストールが簡単なのですが、macだと手間必要です。

届くのが待ちどうしいです。2,3週間くらいかかるので、しばらく待ちたいと思います。

追記終わり

2019.3.16 基板が届きました!つづきはこちら↓↓