• Clock Divide – путем активации этой опции тактовая частота делится на восемь. Обычно эта функция активна, так что чип работает с частотой 1 МГц.
• Reset Disable – эта функция должна быть всегда отключена. Если мы ее активируем, чип больше не будет перепрограммируемым, потому что он отключает сброс RESET и превращает его в дополнительный вывод.
• Brown-out Detect (BOD) – данная опция отключена по умолчанию, но является очень полезной, потому что она активирует защиту в том случае, когда уменьшается напряжение питания и чип не получает питание. В этой ситуации микроконтроллер начнет вести себя аномально, случайно читая и записывая флеш-память. Если Brown-out активен, когда напряжение падает ниже определенного значения, микросхема отключается до тех пор, пока напряжение не стабилизируется. Для чипа питающегося от 5 В, напряжение Brown-out может быть установлено на 4,3 В.
Программирование ATtiny85
Давайте посмотрим, как программировать чип ATtiny с использованием среды разработки «Ардуино» и платы «Ардуино Уно» в качестве программатора ISP. Во-первых, вы должны приобрести ATtiny85 или 45. Эти чипы можно приобрести у крупных производителей, таких как RS Components или Farnell, они имеют минимальную цену по сравнению с ценой «Ардуино»; в действительности ATtiny имеют меньше разъемов и меньший объем памяти. Прошивки, которые вы можете загрузить на эти чипы, не могут быть очень большими, потому что у нас есть четверть доступного пространства в сравнениис микросхемами ATmega328. В случае, если пространства ATtiny не достаточно, вы можете также использовать ATmega.
ATtiny85 имеет только восемь выводов, два из которых используются для питания и один для сброса.
Остаются только пять выводов, которые могут быть использованы в качестве цифровых входов или выходов. Два из этих пяти выводов могут генерировать ШИМ-сигналы, а три остальных могут быть использованы в качестве аналоговых входов. Напряжение питания должно быть в пределах от 2,7 до 5,5 В.
При превышении 5,5 В чип сгорит! Таблица 9.2 перечисляет выводы микросхемы, «логические» номера контактов, которые будут использоваться в скетче, а также функцию выводов.
Таблица 9.2.
Функции выводов ATtiny85Для программирования ATtiny85 вы должны загрузить программу Patch для среды разработки «Ардуино». Данная операция работает с программным обеспечением версии 1.0.4 «Ардуино». Избегайте использования версии 1.0.2, потому что скетч «АрдуиноISP» содержит ошибку.
Чтобы установить среду программирования и загрузить первый примет, нам понадобятся:
• «Ардуино UNO»;
• микросхема ATtiny85 AVR от ATMEL;
• конденсатор на 10 мкФ;
• светодиод;
• резистор на 220 Ом;
• макетная плата;
• провода или перемычки.
Приступить к сборке.
1. Скачайте файл с программной Patch. Файл называется ATtiny_master.zip (http://bit.ly/attiny85patch).
2. Распакуйте файл ATtiny_master.zip, содержащий папку attiny-master, в которой вы найдете папку Attiny.
3. Ищем рабочую папку «Ардуино», папка также называется sketchbook.
4. Создаем папку «аппаратное обеспечение» в папке sketchbook (папка может уже присутствовать).
5. Копируем папку Attiny в папку hardware.
6. Запускаем среду «Ардуино».
7. Проверяем, загрузилось ли содержание Attiny, открываем меню Настройки =› Плата.
Должен появиться длинный список с наименованием микросхем ATtiny.8. Теперь преобразуем нашу «Ардуино UNO» в программатор AVR, открываем скетч «Ардуино ISP», который мы находим в меню Файл
=› Примеры.9. Подсоединяем «Ардуино» к компьютеру с помощью USB-кабеля; убедитесь, что последовательный порт настроен правильно.
10. Создаем скетч и переносим его на плату, нажав кнопку Проверить и затем Загрузить.
11. Загружаем скетч Blink, который мы находим в меню Файл
=› Примеры.12. Скетч заставит светодиод мигать на выводе 13, но ATtiny85 не содержит столько выводов.
Изменим вывод и вместо 13 запишем 0, что соответствует выводу номер 5 интегральной схемы.
// Blink для ATtiny85
// вывод 0 на самом деле соответствует выводу номер 5 микросхемы
void setup() {
pinMode(0, OUTPUT);
}
void lоор() {
digitalWrite(0, HIGH); // зажигаю светодиод
delay(1000); // жду одну секунду
digitalWrite(0, LOW); // выключаю светодиод
delay(1000); // жду одну секунду и повторяю цикл
}
13. Откройте меню Сервис =› Плата
и выберите ATtiny85 (8 МГц).14. Вставьте ATtiny85 на макетную плату и соедините выводы 10, 11, 12 и 13 «Ардуино» с ATtiny.
15. Подключите также Землю (GND) и 5В к ATtiny, чтобы обеспечить электропитание.
16. Подключите конденсатор на 10 мкФ к выводам Сброс (RESET) и к Земле (GND) «Ардуино». Положительный вывод конденсатора должен быть соединен с RESET.
Рис. 9.8.
Подключение ATtiny85 для программирования с помощью «Arduino SP»