Arduino-最小のシステム(ATtiny13Aに基づく)


[基本情報]


材料の準備

  • ATtiny13Aマイクロコンピューター。
  • プログラムはISPプログラマーから直接ダウンロードされるため、ブートローダーを書き込む必要はありません。
  • (オプション)USB ISPプログラマー(プログラマーがいない場合は、Nanoを使用してダウンローダーを作成し、チップの工場出荷時のデフォルトのヒューズパラメーターを使用してコンパイルおよびダウンロードします)。
  • (オプション)1つの0.1uFデカップリングコンデンサー(実際のアプリケーションでは、デカップリングコンデンサーをVCCとGNDの間に追加する必要があります:VCC←→コンデンサー←→GND)。

ATtiny13情報

ATtiny13シリーズは現在、新しいモデルATtiny13Aシリーズに置き換えられています。
https://wenku.baidu.com/view/252eb5dc50e2524de5187e33.html

データ容量

  • 1Kバイト(1024バイト)のプログラム可能なフラッシュメモリ、これは私たちのプログラムの容量です
  • 64バイトのEEPROM、一部のデータを保存できます。電源障害後に保存されます
  • 64バイトのオンチップSRAM、プログラム実行メモリ

チャネルインターフェイス

  • 8ピンPDIP / SOICパッケージ
  • プログラム可能なI / Oピンは6つあり、そのうち5つはArduinoで使用できますが、RSTピンを通常のIOとして使用することはできません。
  • 18ビットタイマー/カウンター
  • 2つのPWMチャネル
  • 4チャンネル10ビットADC(そのうちの1つはRSTで、Arduinoは使用できません)
  • 各I / OピンのDC電流は20mA(最大40mA)です
  • 動作電圧1.8-5.5V(最大6V)

ArduinoIDEでATTiny13A制御コマンドをサポートする

  • 地図()
  • ランダム()
  • randomSeed()
  • ミリス()
  • マイク()
  • ディレイ()
  • delayMicroseconds()*正確ではありません
  • AnalogRead()
  • AnalogWrite()
  • pinMode()
  • digitalRead()
  • digitalWrite()

ArduinoIDEでATTiny13Aリファレンスライブラリをサポートする

  • eeprom.h
  • i.h
  • iotn13.h
  • iotn13a.h
  • power.h
  • sleep.h

予防

1. ATTiny13Aピンの数が少なく、外部水晶振動子が2チャネルのIOを占有するため、ほとんどのアプリケーションは内部クロックを使用します。ただし、この場合、delay()などの遅延関数は正確ではありません。これは、内部オシレーターが外部要因(電圧、温度など)によって干渉され、特定のエラー(2%から10%の間)が発生するためです。 。たとえば、冬に作成されたプログラムは夏には役に立たない場合があります。時間に厳密でない手順を気にする必要はありません。
2. ATTiny13Aフラッシュは容量が小さく、1024バイトしかないため、単純なものしか書き込むことができません。もう少し複雑で、難しいです。

ピンアイコン

ここに写真の説明を書いてください

参考資料:

ターン:ウォッチドッグコード

#define Pin 4
bool test = 0;

void setup()
{
        pinMode(Pin,OUTPUT);
        digitalWrite(Pin,test);

        //设置、启动看门狗,
        MCUSR &= ~(1<<WDRF);  //清除WDRF
        WDTCR |= (1<<WDCE) | (1<<WDE);  //设置信号
        WDTCR |= (1<<WDE) | (1<<WDP2) | (1<<WDP1) | (1<<WDP0);  //设置WDP和启动看门狗WDE,必须在4个周期内完成,此处为2s的周期

        for (byte i = 0; i <3; i++)
        {
                digitalWrite(Pin,test = !test);
                delay(50);
        }
}

void loop()
{
        //喂狗
        __asm__ __volatile__ ("wdr");

        digitalWrite(Pin,test = !test); delay(300);

        //关闭看门狗
        // WDTCR |= (1<<WDCE) | (1<<WDE);  //设置信号
        // WDTCR = 0x00;  //清除WDE位
}

【ヒューズプログラミング】


説明

1.工場出荷時のデフォルト設定を使用する場合は、この記事をスキップしてください。
2.ヒューズがない場合は、プログラムのダウンロード時に開発ボードを工場出荷時のデフォルト値に従って設定する必要があります。
3. AVRヒューズビットの正しい構成については、次の記事を参照してください:http//www.eeworld.com.cn/mcu/article_24377.html

ATtiny13ヒューズの工場出荷時のデフォルト値

ATtiny13ヒューズの工場出荷時のデフォルト値は次のとおりです:低い値6A、高い値FF、拡張ビット0。

オプションは次のとおりです。

  • 内部RC発振器9.6MHzを使用、開始時間14CK + 64ms
  • システムクロックを8で割った値を使用します(つまり、周波数は1.2MHzに低下します)
  • 電源障害検出を無効にする
  • ISPプログラミングを有効にする
  • 暗号化なし(メモリ保護機能は有効なし)

準備ツール

1.ハードウェア:USBISPライター

ここに写真の説明を書いてください

2.ソフトウェア:PROGISPプログラミングソフトウェア

ここに写真の説明を書いてください

3.マイクロコントローラー:ATtiny13A

ここに写真の説明を書いてください

ISP配線

下の図に従って、ATtiny13Aの6本のISPケーブルをUSBISPの対応するポートに接続します。

ここに写真の説明を書いてください
ここに写真の説明を書いてください

ヒューズ燃焼

1. USBISPをコンピューターのUSBポートに接続すると、システムが自動的にドライバーをインストールします。

2. PROGISPプログラミングソフトウェアを開き、PRGISPボタンが明るいことを確認し、ATtiny13Aとしてチップを選択してから、[…]ボタンをクリックしてヒューズプログラミングウィンドウインターフェイスを呼び出します。

ここに写真の説明を書いてください

3.ヒューズバーニングウィンドウインターフェイスで、ウィザードモードに入り(便利で直感的な設定のため)、次の設定を行います:低7A、高FB、内線0、[書き込み]をクリックしてプログラミングを完了します。

ここに写真の説明を書いてください

ヒューズプログラミングに関する注意事項

1.外部リセットを無効にしないでください。無効にしないと、チップをプログラムできません。
2.「ISPプログラミングを有効にする」を選択する必要があります。
3.外部クロックであろうと内部RC発振器であろうと、周波数が高いほど消費電力が大きくなります。内部RCクロック周波数を下げたい場合は、より低い周波数の内部RC発振器を選択することに加えて、クロックを8で除算することもでき、周波数分割後の周波数は元の1/8になります。

ヒューズ燃焼の概要

プログラミングオプションを融合し、4つの項目(低7A、高FB、拡張ビット0)のみを選択します
。1。パワーダウン検出レベルは2.7Vです(またはパワーダウン検出を無効にします)
2。ISPプログラミングを有効にします
3.内部RCオシレーター(9.6M);開始時間:14CK + 64ms4
。暗号化なし


【プログラムダウンロード】


準備ツール

1.開発ボードマネージャーでATtiny13(ATtiny13Aと互換性がある)MCUのサポートを追加します
。2。ダウンロード方法1:Arduino + USBISPプログラマー+ PROGISPプログラミングソフトウェア
3.ダウンロード方法2:Arduino + Nano製ダウンローダー

ATtiny13を開発ボードマネージャーに追加します

1. ArduinoIDEを開きます

2.メニューの「ファイル」→「設定」を選択し、「追加開発ボード管理アドレス」ボタンを選択します。

ここに写真の説明を書いてください

3. URLを追加します:

https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json

ここに写真の説明を書いてください

4.「DevelopmentBoardManager」を開き、「ATtiny13」を検索してバージョンを選択し、以下をインストールします。

ここに写真の説明を書いてください

5.別の方法:Arduino ATtiny13のサポートファイル(「core13_022_arduino_1_6」など)をインターネットからダウンロードし、プロンプトに従ってインストールします。

ダウンロード方法1:Arduino + USBISPライター+ PROGISPプログラミングソフトウェア

一、Arduino:

1.メニュー「ツール」→「開発ボード」:「ATTiny13」を選択します。
2.メニュー「ツール」→「BOD」:「2.7v」を選択します。(ヒューズを設定していない場合は、ここで「無効」を選択してください)
3。メニュー「ツール」→「クロック」:「9.6MHz内部OSC」を選択します。(ヒューズを設定していない場合は、ここで「1.2MHz」を選択してください)
4。メニュー「ツール」→「GCCフラグ」:「デフォルト」を選択します。
5.メニュー「プロジェクト」→「コンパイル済みバイナリファイルのエクスポート」。

2. USB ISPライター:

ATtiny MCUを正しく接続し(ヒューズプログラミング接続方法を参照)、コンピューターに接続します。

3. PROGISP:

1.シングルチップマイクロメータをATtiny13Aとして選択します(シングルチップマイクロメータの実際のモデルに応じて選択
します。2 メニューの[ファイル]→[フラッシュのロード]から、Arduinoからエクスポートされたバイナリファイルを選択します。
3.メニュー「コマンド」→「消去」。
4.メニュー「コマンド」→「フラッシュへの書き込み」。
5.メニュー「コマンド」→「フラッシュの検証」。検証が成功したら、デバイスに接続して実行できます。

ダウンロード方法2:Arduino + Nano製ダウンローダー

1.Nanoを使用してダウンローダーを作成します。

1. Nanoをコンピューターに接続し、Arduinoを開き、開発ボードとしてNanoを選択し、ポート番号を選択します(Nanoのポート番号。後でISPとしてATTiny13プログラムをダウンロードするときにも使用されます)。

2.サンプルファイルを開きます:ArduinoISP

ここに写真の説明を書いてください

3.サンプルファイルをコンパイルしてアップロードすると、ダウンローダーが終了します。

2. ATtiny13AMCUをNanoダウンローダーに接続します。

  • ATtiny13Aピン7はNanoPin13に接続します(SCKインターフェイスとして)
  • ATtiny13Aピン6はNanoPin12に接続します(MISOインターフェースとして)
  • ATtiny13Aピン5はNanoPin11に接続します(MOSIインターフェイスとして)
  • ATtiny13Aピン1はNanoPin10に接続されています(RESETインターフェイスとして、これはNanoのRSTではないことに注意してください)
  • ATtiny13Aピン8接ナノ5V
  • ATtiny13Aピン4接ナノGND

3. Arduinoでプログラムをダウンロード(アップロード)します。

ここに写真の説明を書いてください

1.メニュー「ツール」→「開発ボード」:「ATTiny13」を選択します。
2.メニュー「ツール」→「BOD」:「2.7v」を選択します。(ヒューズを設定していない場合は、ここで「無効」を選択してください)
3。メニュー「ツール」→「クロック」:「9.6MHz内部OSC」を選択します。(ヒューズを設定していない場合は、ここで「1.2MHz」を選択してください)
4。メニュー「ツール」→「GCCフラグ」:「デフォルト」を選択します。
5.メニュー「ツール」→「ポート」:Nanoが配置されているポートを選択します。
6.メニュー「ツール」→「プログラマー」:「ISPとしてのArduino」を選択します。

ここに写真の説明を書いてください

7.メニュー「プロジェクト」→「プログラマーを使用してアップロード」。
8.ダウンロード(アップロード)後、OK、ATtiny13Aのデバイスに接続して、効果を試すことができます、HoHo ~~。

おすすめ

転載: blog.csdn.net/sdlgq/article/details/60961675