· 

AVR128DB28でArduino(6)

 

進化した8bitAVRマイコン"AVR Dx"をArduinoにしてみる。Atmega328PのArduinoでリソースが足りない場合の選択肢としていんじゃないかなって。P板が来たので、組み立ててみる。

8/11にFusionPCBに発注したAVR128DB28をArduino UNOっぽくするP板が8/21に届いた(たった10日!)ので組み立てる。初版P板なので、やらかしていないかどうか慎重に調べながら組み立てていって、致命的なミスが1箇所、部品発注ミスというかランド選択ミスが3箇所あった( ̄^ ̄゜) 致命的なミスはACアダプタを挿すジャックの回路。
こうせんといかんかった。
まぁ実際はおっきな配線の部分なので、ちょちょっと線でつないでしまえる。
使用する分には全然致命的じゃない。
コンデンサのサイズが所有している部品と不一致で無理やり載せたのが2箇所。
DCDCのインダクタは、過去このICを使った回路を設計したことがあったので、まぁ同じサイズのインダクタなら載るでしょって思って発注していざ載せようとしたら、ランドが全然ちゃう。過去購入した部品ももう使い切っている、、、が、かなり無理やり載せることはできた。まぁガワのサイズは同じなので。
仕事でこんだけミスるとかなり凹んじゃうけど、仕事じゃないですからー!!
で、2個作った。
ちなみに、ジャンパースイッチは↑の写真の向きで見て、左と中央をジャンパーでつなぐとFT231XからUPDIにアクセスできる
ので、この状態でbootloaderを書く。まぁうまくいった。ちなみにbootloaderを使わないつもりならこのままでいい。そう考えると、これってbootloader書き込むときにちゃんとしたライターとか買ったり、またはArduino as ISPとか作ったりしなくていいんじゃんね。すごくいい!
さて、右と中央をジャンパーでつなぐと、FT231XはAVR128DB28のUART-USBインターフェースになる。
AVR128DB28はいくつかのUARTペリフェラルがあり、DxCoreでもいくつかサポートされているので、{R15,R16,R17},{R18,R19,R20}のどれに0Ωを載せるかで選択できるようにしてあるけど、ブレッドボードで組んだ時はこれ
を選択していたので、まぁ同じになるようにR15とR18を選択してある。で、bootloaderをつかったUARTからの書き換えもうまくいった。で、ArduinoだとLEDがつながっているピンはLED_BUILTINで#defineされているんだけど、DxCoreも実はLED_BUILTINが#defineされていて、それがpin7。で、回路としてはpin7にLEDをつないであるのでこちらも確認する。
  1. void setup() {
  2.   pinMode(LED_BUILTIN, OUTPUT);
  3. }
  4.  
  5. void loop() {
  6.   digitalWrite(LED_BUILTIN, HIGH);
  7.   delay(500);
  8.   digitalWrite(LED_BUILTIN, LOW);
  9.   delay(500);
  10. }
こういうごく単純なコードで、
、、、動画撮るほどのものじゃないので、いちおう光っている感じだけで、こんなもん。
ちゃんと点滅しているってことは、個人的に確認しました。
 
しっかし、齢のせいではんだ付けが難しい。そりゃつけられるんだけど、きれいにできなくて結構いらいらするんよね。はんだ付けってうまくいっているかどうかはテスターで確認できる箇所もあるけど、できない箇所もある(とくにICとか)。電源を入れて部品を壊しちゃったりしないために、それまでに何ができるかってのを考えると、はんだ付けが美しいか確認するのは重要で意味があると思っている。ついてりゃいいってもんじゃない。この部分に関しては、にんげんだものって言っちゃいかん。リフロー通した?って思えるくらいの美しさを常に求めないと。
 
で、今回、回路にいくつかミスがあったものの実際に2個動くものができたのでまぁ、よかった。今後は軽くできる何かは、できるだけ、UNO R3ではなく、こっち使っていこうと思う。