AFSS01 – AVR最初の一歩セット

概要と特徴

Microchip Technology社の1チップマイコン「AVR」のお勉強実験セットです(元々はAtmel社でしたが2016年にMicrochip Technology社に買収されました)。

1チップマイコンを試してみようと思ったら、やはり実機で動作させてみるのが手っ取り早いです。こういうときは、おそらくブレッドボードで組んで実験するのでしょうが、ブレッドボードで回路を組むのは結構面倒です。思わぬ配線間違いを犯したり、動作が不安定になってしまうこともあり、最悪、デバイスを壊してしまうことも。こうなると何をやっているのかわからなくなって甚だ非効率です。

そこで、テスト用回路の基板を作成しました。このボードの主な仕様は以下のとおりです。

  • AVRデバイス: ATtiny85
  • ISPコネクタ(プログラム書込み)
  • I/O
    • 入力
      • 押釦スイッチ
      • 可変抵抗(ADコンバータ)
    • 出力
      • LED(2個)
      • 圧電サウンダ
  • リセットスイッチ
  • 電源コネクタ

また、プログラム書込みツールとして市販のUSBaspをセットにしています。これだけあれば、基本的な入出力の実験ができると思います。

簡単なプログラムを書いて動作させたものがこちらです。

AFSS01 ~ AVR最初の一歩セット
  • 電源接続で動作開始(電源スイッチはなし)
  • LED2個が点滅
  • 点滅スピードは可変抵抗で調節
  • 押釦スイッチを押している間は圧電サウンダが断続鳴動

圧電サウンダの音がときどき濁りますが、原因は不明です(プログラムが安直すぎるからかもしれませんし、デバイスの不良かもしれません)。

製作編

回路図と部品表

回路図と部品表はPDFで用意しております ⇒ AFSS01回路図と部品表

下の図は回路図の雰囲気を掴んでいただくための参考です。

回路の概要

AVRを中心に、前述のI/O(スイッチ、可変抵抗、LED、圧電サウンダ)を配置した単純な構成です。ISP(プログラム書込みコネクタ)も備えております。I/O(の一部)とISPは兼用になっています。この辺りのテクニックはTwitterで教えてもらいました。ありがとうございます。

なお、I/OとISPを兼用しているため、プログラムの書き込み時にはLEDが点滅し、圧電サウンダが鳴ります。気になる場合は、ジャンパを取り付けてプログラミング時にはLED等を切り離してください(詳細は後述)。

AVRは、ATtiny13A、または、ATtiny85が使用できます。両者の違いについてはこちらの記事で。

シンプルなATtiny13A AVRのお勉強の続き。割と一般的で、かつ、シンプルと思われるATtiny13A-PUをネタにして調べてみる。...

組立て

ここでは、本機を組み立てる際に注意すべき点について記します。

いきなり作り始めず、まずは、全体の流れを掴んでください。手順のイメージが掴めてから始めた方がスムーズに進むと思います。

基板のエッジのヤスリがけ

基板と底板のエッジ(の一部)にはバリがありますので、ヤスリを掛けてなめらかにしてください。その際、粉塵を吸い込まないよう、注意してください。

ヤスリがけ後には、ウエットティッシュなどで粉を拭き取っておくと良いだろうと思います。

部品の取付け

特段難しいものはないと思います。有極性の部品に注意しつつ、定石通り、背の低いものから取付けていけばOKです。

ポリスイッチ

ポリスイッチは自己回復型のフューズです。このキット内のポリスイッチの外観はセラミックコンデンサと良く似ています。このキット内では、大きさで区別できます。一つだけ大きいものがポリスイッチです(あくまで、このキット内の部品の場合です)。

ポリスイッチは、基板から浮かせて取り付けて下さい。そのために予め足が曲げられています。無理に伸ばさず、そのまま取り付けて下さい。過電流が流れた際にポリスイッチ自体が発熱して回路遮断する機構です。基板(等)に密着させると放熱されて期待した性能を発揮できなくなります。

なお、極性はありません。

LED

電源パイロットランプ(D3)は緑のものを使ってください。

LED0(D6)とLED1(D5)は、青と赤です。外見からは区別が付きませんが、どちらがどちらでも構いません(決めたい場合は、何らかの方法で事前に点灯させてチェックしてください)。

基板上に極性(+記号)を印刷していますので、それを参考に向きを合せて下さい。

圧電サウンダ

圧電サウンダには極性があります。写真の向きに取り付けてください。

組立て後、シールをはがしてください。シールを貼ったままだと音がほとんど聞こえません。

ジャンパ

上述の通り、I/OとISPを兼用しており、プログラムの書込み中にLEDが点滅したり圧電サウンダが鳴ったりします。実用上はこれでも構わないのですが、気になる場合はジャンパを付けてプログラム書込み時はLED等を切り離してください。JP1、JP3、JP5がそのジャンパですが、キットには含んでいませんので必要に応じてご自身で用意してください。2.54mmピッチのピンヘッダが使用できます。

JP1、JP3、JP5を付けない場合はショートしてください。基板裏のJP2、JP4、JP6がショート用のパターンになっていますので、これらをハンダブリッジさせるのが手軽だと思います。

ジャパ用のランドをスルーホールと重ねて作ったため、ハンダブリッジさせる際にハンダが穴に吸い込まれてしまいます。そのため、ハンダの量が結構必要になります。ハンダだけでブリッジさせるよりも、抵抗の足などを使ってショートさせた方が楽かもしれません。

動作確認

組み立て終えたら取り付けミスがないか確認し、電源―GNDがショートしていないかテスタでチェックして下さい。DCジャックでのチェックだけでなく、AVRの電源ピン(8番)とGNDピン(4番)でもチェックして下さい。

AVRチップをICソケットに差し込みます。向きは下の写真を参考にして下さい。

組み立てに問題がなければ、電源を接続すれば動作します(AVRには予めプログラムが書き込まれています)。

電源(ACアダプタ)はご自身で用意して下さい。5Vで、電流は100mA以上あれば大丈夫です。プラグは標準的な内径: 2.1mm、外径: 5.5mm、センタプラスです。

動作するプログラムは、上でビデオで示したものです。ソースコードは以下です。

/*
 * test_ADC_01.c
 *
 * Created: 2019/07/26
 * Author : jh4vaj
 */ 


#define    F_CPU   1000000UL   // 1MHz

#include <avr/io.h>
#include <util/delay.h>

int main(void) {
    unsigned int    i, n;
        
    DDRB = 0x0b;    // 出力: 3, 1, 0、他は入力
    PORTB = 0xf4;   // 入力ピンを内部プルアップ
    
    TCCR0A = 0x23;  // COM0A: 00, COM0B: 10, WGM01: 1, WGM00: 1
    TCCR0B = 0x0a;  // WGM02: 1, CS0: 010 --> TOP: OCR0A, 1/8分周

    ADMUX = 0x01;   // Vref: VCC, Ch: ADC1(PB2)
    ADCSRA = 0x84;  // ADC enable, 1/16分周

    
    OCR0A = 64;     // 発振周波数とデューティ(圧電サウンダ鳴動用)
    OCR0B = 32;

    
    
    while (1) {
        ADCSRA |= 0x40; // Start ADC;
        
        while ((ADCSRA & 0x40) != 0) {  // ADC完了待ち
        };

        n = 1024 - ADC; // ADC読出し


            
        PORTB ^= 0x08;  // LED1点灯/消灯
        
        for (i = n; i > 0; i--) {    // 点灯/消灯時間確保
            _delay_ms(1);
        };
        

        
        PORTB ^= 0x01;  // LED0点灯/消灯
        
        for (i = n; i > 0; i--) {    // 点灯/消灯時間確保
            _delay_ms(1);
        };  
        
        
        
        if ((PINB & 0x10) == 0) {   // スイッチ状態読取り
            TCCR0A ^= 0x20;         // 圧電サウンダon
        }
        else {
            TCCR0A &= ~0x20;        // 圧電サウンダOff
        }
    }
}

底板の取付け

ハンダ面の保護のため、底板を取り付けます。ワンタッチ式のスタンドオフ(スペーサ)ですので、差し込むだけです(しっかり差し込んで下さい)。底板は金属面を外側にして下さい(ショート事故を避けるため)。

スタンドオフの頭はバリがあるようです。紙ヤスリ等でなめらかにしておくと良いと思います(取り付け前にヤスリがけするのが良いかもしれません)。

AVRライタ(USBasp)

AVRへのプログラム書込みツールは、様々なものがあるようです。Arduinoでも書き込めるようです。

ここでは、安価なUSBaspというものセットとして用意しました。USBaspのオリジナルサイトはこちらのようです。

これをベースにしたクローンがたくさん出回っています。Amazonでもたくさん見つかります。

多くはこのように基板むき出しですが、使い勝手や安全性を考えてケース付きのものを選びました。また、ISPコネクタが10ピン(旧タイプ)ですので、6ピン変換ツールもセットにしています。

※頒布品内のUSBaspはAmazonで調達したものではありません。参考資料代りに挙げておきました。

AVRライタは下の写真のように接続します。基板に信号名を記載しておりますので、それを参考に向きを合せて下さい。くれぐれも逆付けしないように注意して下さい。

USBaspのドライバのインストールや、Atmel StudioからUSBaspを利用する方法はこちらの記事を参照してください。

Atmel Studio 7.0でビルドしたバイナリをAVRに書き込む方法をまとめておく。 書込みツール AVRにプログラムを書き込むに...

注意

電源

プログラム書込み時は電源(ACアダプタ)は接続しないで下さい。通常の動作時にはAVRライタは外して、電源(ACアダプタ)を接続します。両方を同時に接続しても壊れないような設計にはしていますが、安全のため、このように使用して下さい。

USBaspのファームウェア

世の中に出回っているUSBaspのファームウェアは総じて古いようです。とはいえ、一般的な動作(書込み)には問題はないようです。アップデート方法の情報も出回っていますが、私が試した限りでは上手く行きませんでした。アップデート自体はできるのですが、その後、アップデートしたUSBaspではAVRへの書込みができなくなってしまいます。これで数台潰しました。私のやり方が悪いのか、入手したUSBaspクローンの問題かは不明です。

頒布

頒布品はキット(部品セット)です。完成品ではありません。

ご希望の方は、下記注意事項等をご確認の上、下のフォームからお申し込みください。

【注意事項】

  • 部品の調達の都合上、上の写真とは異なる場合があります。
  • コストダウンのため、ほとんどの部品は海外通販で調達しています。ただし、主要半導体(ATtiny85)、ICソケット、および、電解コンデンサは国内調達品です(電解コンデンサは国産品)。この他にも、都合により国内調達品が入る場合があります。
  • 底板は二種類あります(色違い)。すみませんが、色は選べません。

  • 本機のマニュアルは当ページがすべてです。紙媒体はありません。また、本機は電子工作の経験がある程度ある方を対象としております。抵抗のカラーコードやコンデンサの値の読み方など、基本的なところの説明はしていません。電子工作の基本については、こちらのページに参考になりそうなサイトなどをまとめてあります。

参考になりそうなサイト 参考になりそうな書籍

  • 資源の有効活用のため、梱包材は再利用することがあります。ご了承ください。
  • 仕様や頒布価格は予告なく変更することがあります。
  • 本機の組立てや使用による怪我・事故等には責任を負いません。

【価格】

  • 頒布価格: 1,800円
  • 送料: 300円
  • 支払い方法: 銀行振込(楽天銀行、ゆうちょ銀行、ジャパンネット銀行)

【申込みフォーム】

こちらにご入力いただいたメールアドレス宛に、追って、振込先等をお知らせします。入力ミスのないようお願いします。また、ここにご住所等は書かないようにお願いします。

このフォームでお申し込みいただいた時点では、注文が確定されるわけではありません。タイミングによっては、在庫が切れている場合もあります。自動注文システムではなく手動での対応ですので、何卒、ご了承下さい。