公開日:2024/08/03
title.png

31st Season


#31-4 ATmega328PB-AU

 当初、Arduino UNOに使われたのはATmega328P-PUと言う型名のマイコンで、28DIP形状のMCUでした。しかし今では、DIP形状のマイコンが量産で使われることは、ほとんどありません。量産に於いては、表面実装タイプのLSIが主流となっているためです。
 代わりに使われるのは、同型のATmega328P-AUという、32TQFP形状(表面実装パッケージ)のMCUです。ATmega328P-AUを採用したUNO互換機も存在しています。

 表面実装が主流となったことも、DIP形状LSIが使われなくなってきた理由の一つですが、もう一つ別な側面からの理由もあります。DIP形状は一般的にガタイが大きいので、レジンにせよ、リードフレームにせよ、大きくなって材料費がかさむパッケージなのです。
 つまり、同じチップ(ダイ)を採用したATmega328Pであっても、一般的にDIP形状の方が、TQFP形状より、材料費が高くつきます。同じチップなので同じ機能なのに、販売価格に差がついてしまうのです。

 さて、ATmega328Pの後継として、UARTやPWMタイマなどのIOユニットを増設し、32TQFP形状のパッケージに押し込んだのが、ATmega328PB-AUと言うマイコンです。

 今回は、このマイコンを入手したので、開発環境を整備して行こうと思います。

「P」と、「PB」

 紛らわしいですが、型名は、「ATmega328P」と、「ATmega328PB」と言う事で、最後に「B」が追加となっています。後ろに続く「−PU」はDIP形状、「−AU」はTQFP形状を示す、Atmel社の型名規則です。まずは、ATmega328PBのデータシートを検索しておきましょう。

  ATmega328PBのデータシートを検索する(別ウインドウが開きます)

 ATmega328PB-AUの外観図を以下に示します。

a314_atmg328pb.jpg

 ATmega328Pデータシートと見比べて、以下比較表を作成して見ました。

ATmega328 P−AU PB−AU
Package 32TQFP
Power 1.8V〜5.5V
fMAX 20MHz(≧4.5V)
Flash 32KB
RAM 2KB
EEPROM 1KB
8 bit timer 2 2
16 bit timer 1 3
PWM 6 10
10 bit ADC 8 8
USART 1 2
SPI 1 2
I2C 1 2
PTC 0 1

 同じ32TQFPの「−AU」として比較した表です。ATmega328PBには、DIP形状(−PU)の展開が無く、存在しないためです。

 Pと比べてPBは上表の通り、メモリ容量などの基本的仕様は共通で、タイマ/PWM/通信ユニットのチャンネル数が増設されています。
 特に、USARTユニットという、シリアル通信ユニットが2チャンネルに増設されているので、UARTが2チャンネル使えるのは強みです。SPIやI2C通信ユニットも、2チャンネルに増設されているので、シリアル通信で困ることは、まず、無いでしょう。

TQFP (表面実装)

 とは言え……、TQFPですからねぇ……(下図)。

a314_32tqfp.png
※ATmega328PBデータシートから引用。

 上図の様な表面実装タイプのままでは、ブレッドボードでは使えないし、そもそも、ピンピッチ0.8mmは、狭すぎて扱い難い事、この上ありません。

ピッチ変換基板

 以下図の様なピッチ変換基板と呼ばれる部品が販売されています。

a314_tqfp_dip.jpg

 中央のフットパタンに32TQFP形状のLSIをはんだ付けすると、長手方向のスルーホールによって2.54mmピッチの32DIP形状に変換できて、ブレッドボード等で使用できる様になる、という代物です。

 ピッチ変換後ATmega328PBのピン配置図を以下に示します。

Port DIP ATmega328PB DIP Port
D3(PD3/PTCXY/INT1/OC2B) 1 32 D2(PD2/PTCXY/INT0/OC3B/OC4B)
D4(PD4/PTCXY/T0/XCK0) 2 31 D1(PD1/PTCXY/OC4A/TXD0)
D23(PE0/PTCXY/ACO/ICP4/SDA1) 3 30 D0(PD0/PTCXY/OC3A/RXD0)
VCC 4 29 D22(PC6/RESET)
GND 5 28 D19[A5](PC5/ADC5/PTCY/SCL0)
D24(PE1/PTCXY/T4/SCL1) 6 27 D18[A4](PC4/ADC4/PTCY/SDA0)
D20(PB6/TOSC1/XTAL1) 7 26 D17[A3](PC3/ADC3/PTCY)
D21(PB7/TOSC2/XTAL2) 8 25 D16[A2](PC2/ADC2/PTCY)
D5(PD5/PTCXY/T1/OC0B) 9 24 D15[A1](PC1/ADC1/PTCY/SCK1)
D6(PD6/AIN0/PTCXY/OC0A) 10 23 D14[A0](PC0/ADC0/PTCY/MISO1)
D7(PD7/AIN1/PTCXY) 11 22 D26[A7](PE3/ADC7/PTCY/T3/MOSI1)
D8(PB0/PTCXY/CLKO/ICP1) 12 21 GND
D9(PB1/PTCXY/OC1A) 13 20 AREF
D10(PB2/PTCXY/OC1B/SS0) 14 19 D25[A6](PE2/ADC6/PTCY/ICP3/SS1)
D11(PB3/PTCXY/OC2A/TXD1/MOSI0) 15 18 AVCC
D12(PB4/PTCXY/RXD1/MISO0) 16 17 D13(PB5/PTCXY/XCK1/SCK0)

 D#はArduino IDEのデジタルポート番号(0〜26)、[A#]は同じくアナログポート番号(0〜7)です。

 これが実現できれば、ブレッドボードなどで使い易くなります。ですが、何しろ32TQFPは、ピンピッチが0.8mmという細かさです。
 筆者のはんだ付け技術で、実装できるものか??

はんだ付けの結果

 ダメダメでした……。

 ピンピッチが狭すぎます。筆者が使っていたはんだごてのこて先は、ピンピッチに対して太過ぎ、隣のピンまで熱してしまいます。そこへ、迂闊にはんだを流し込むと、はんだが隣のピンまで巻き込んで、ブリッジしてしまったのです(つまりショート!)。

 大失敗。以上、報告終わり☔orz。

再挑戦!

 と、なって放置していたのですが、暫く放置していたところ再び心に火が灯り、「再挑戦」してみようと思い立ちました。

 再挑戦に当たり、必要だと考えた資材は:

 これらを入手して、再挑戦したところ、何とか、サルベージに成功する事ができました。以下に完成図を示します。

a314_328pbpu.jpg

実装のコツ?……!

 そんなことを聞かれましても……。何とか形には、なったものの、コツなんてレクチャできるような状態には、ありません。

 何とかお伝えできるのは、この位です。そもそも、ピッチ変換基板のフットプリントと、32TQFPをずれないように合わせて、最初の1端子をはんだ付けするまでの間がめちゃくちゃ大変です。にもかかわらず、その様な重要な事象に対してアドバイスできる様な事は、当方には、ございませんm(1__)m。
 無理やりアドバイスするなら、「気合」です。諦めないメンタルも必要になるかと思われます。

 慣れた方なら、サクサクやってのけるのでしょうけれど、筆者には無理でした……。「もう一度、やって見ろ」と、言われても、土下座してご辞退申し上げますm(1x_x)m。
 皆様も、安易に手を出さず、ご自身のはんだ付け技術とご相談の上、挑戦する事を推奨します。

 世の中には、こちらの様な商品も御座いますのでご検討ください。

今回のお買い物

 今回のお買い物は以下の通りです。再挑戦に当たって、追加購入しているので、いくつか違うお店が混じっています。

 最初は、「ATmega328PBと変換基板だけで使える!」と思って購入(計350円)したのですが、再挑戦用の資材を含めると、何やかやと費用が増加してしまいました。

 秋月電子通商の商品は、「#30-9 PICAXEというマイコン」と同時に購入したものです。
 Amazonの商品は、他の買い物(≧3,500円)と同時購入したため送料無料でした。
 オーディオファンの商品は、送料220円と、肝心な丸ピンヘッダ(154円)より高く支払わされてしまいましたが、丸ピンヘッダって意外に高価な部品なので、送料込み374円でも、割と安い方だったと思います。


 こんな調子ですので、判り易くはんだブリッジ(ショート)と、までは言わないまでも、接触不良や、長時間熱を加え過ぎたことによるLSIの破壊などが有るかもしれません。次回、開発環境の立ち上げと、ピッチ変換(はんだ付け、実装)の検証を実行します。


btn_arduino.png

btn_prev.png btn_next.png

home