[概要]
Atmel 社の小型マイコン ATtiny85-20PU に
ARDUINO SDK からスケッチを書き込むメモです。
# MCU仕様など
8 PIN
8 Bit CPU
ROM : 8K Byte
RAM : 512 Byte
動作電圧: 2.7V - 5.5V
UARTなし、SoftwareSerial 使えます(Arduino SDK)
# IDE環境
ARDUINO SDK 1.0.5
ARDUINO UNOを書込み装置として使用
ISP通信で、ターゲットMCUに書込
3.3V Internal クロック 8MHz
# 参考URL
セットアップ、配線等は下記を参考
kosaka さんの記事
Arduino.cc
# ピン配置
チップ上方向= 左上に[丸]くぼみのマーク を基準として配置
# 配線
[ATiiny85] - [ARDUINO UNO]
RESET - D10
MOSI - D11
MISO - D12
SCK - D13
GND - GND
# コンパイルの準備
Arduinoo SDK 1.0.5 インストール
作業フォルダの設定
[ファイル]-[環境設定]で、スケッチブックの保存場所 を設定
例) C:\arduino-1.0.5-r2\work
*)インストール先によって異なります。
ATtiny等の設定ファイルの配置
kosakaさんのページの。[hardware.zip]をDL &解凍、作業フォルダに配置 (中段)
http://make.kosakalab.com/make/electronic-work/arduino-ide-arduinoisp/
パス例: C:\arduino-1.0.5-r2\work\hardware
arduino SDKの再起動
[ツール]-[マイコンボード]に、ATtiny85 (internal 8 MHz clock)
が選択可能な事を確認。
# スケッチの書込み
Uno接続して、シリアルポートを設定
[ツール]-[マイコンボード]-[Arduino Uno] 選択
UNOに、[ArduinoISP]書き込みます。(ISP通信で書き込むためのスケッチ)
[スケッチの例] -[ArduinoISP] でスケッチ開き、書き込む。
# 書き込み完了後、ATtinyにスケッチ書き込みます。
適当なスケッチ書いて、準備します(LチカでOK)
A1にセンサ接続して、値をシリアル出力する例です
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <SoftwareSerial.h> | |
int SENSOR_1= 1; | |
SoftwareSerial mySerial(3, 4); // RX, TX | |
void setup() { | |
mySerial.begin(9600); | |
pinMode(SENSOR_1 ,INPUT); | |
} | |
// | |
void loop() { | |
int iSen1 =analogRead(SENSOR_1); | |
mySerial.print("sen="); | |
mySerial.print(iSen1); | |
mySerial.println(""); | |
delay(2000); // wait for a second | |
} |
[ツール]-[マイコンボード]に、ATtiny85 (internal 8 MHz clock) を選択
シリアルポート設定済みを確認
書込装置 - [Arduino as ISP] を選択
書込みます。
[マイコンボードへの書込みが完了しました]
が表示されます。
下記が表示されましたが、書込みは問題ないようでした。
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
ATtiny は、
ISP関係の配線を外して、実行可能です
==== 2015-10-15 =============
delay()の、タイマー間隔がずれる場合は、
初期の内部クロックが、1MHzの可能性があります。
ブートローダを書き込むと(内部クロック=8MHz)、修正できました。
1秒間隔のLチカで、確認できます。
=============================
http://knaka0209.blogspot.jp/2015/04/agri.html
0 件のコメント:
コメントを投稿