ATtiny10. Самый маленький микроконтроллер AVR

Введение

Давно хотел поработать с самыми крохотными микроконтроллерами AVR и наконец сподобился купить несколько ATtiny10. Что можно сказать про эту букашку? По сути, обычный AVR, только с небольшим количеством выводов, памяти и периферии. Однако, на нем вполне можно собрать какой-нибудь вольтметр или термометр, если приложить смекалку.

Технические характеристики ATtiny10

Имеет 1024 байта flash памяти и 32 байта ОЗУ. EEPROM памяти нет. 

Периферия включает в себя один 16-и разрядный таймер, четыре канала 8-и разрядного АЦП, один аналоговый компаратор и сторожевой таймер. "Довольно-таки неплохо."

В корпусе SOT-23 имеет 6 выводов: 2 для питания, 1 для вывода сброса и 3 для пользовательских нужд. Установкой FUSE бита RSTDISBL можно задействовать и вывод сброса, но тогда для перехода в режим программирования нужно будет подавать на этот вывод +12 вольт. 



Тактовая частота до 12 МГц. Может тактироваться от внутреннего генератора на 8 МГц, от внешнего тактового сигнала с вывода PB1 (CLKI) и от внутреннего генератора на 128 кГц. 


Источник тактового сигнала устанавливается программно с помощью регистра CLKMSR. Также есть регистр, определяющий коэффициент деления тактового сигнала, - CLKPSR. Это намного удобнее FUSE битов, которые устанавливаются только программатором. 

По умолчанию микроконтроллер тактируется от внутреннего генератора на 8 МГц с коэффициентом деления 8. 

FUSE битов всего три: 

CKOUT - вывод системного тактового сигнала на PB2,
WDTON - сторожевой таймер всегда включен,
RSTDISBL - запрет внешнего сброса.

Напряжение питания от 1.8 до 5 вольт.

Программирование ATtiny10

Программирование flash памяти осуществляется по интерфейсу TPI (Tiny Programming Interface). Для этого используется три вывода микроконтроллера:

RESET - для перехода в режим программирования,
TPICLK (PB1) - для тактового сигнала, 
TPIDATA(PB0) - для ввода/вывода данных.

Микроконтроллер поддерживается программатором AVRISP MKII и средой разработки Atmel Studio 6. Схема для подключения ATTiny10 к программатору AVRISP MKII такая:


Этот микроконтроллер можно программировать на Си, но из-за маленького размера ОЗУ особо не разгуляешься. Минимальная программа для проверки работоспособности:


/*
* Tiny10_test.c
 *
 * Created: 14.11.2013 4:01:57
 * Author: Pashgan
 */ 

#define F_CPU 1000000UL

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

int main(void)
{
   DDRB = 0xff;
   PORTB = 0x00;
 
   while(1)
   {
      _delay_ms(500); 
      PORTB ^= (1<<2);
   }
}


На выводе PB2 будет меандр с частотой 1 Гц.

Добавить комментарий

При добавлении в комментарий Си кода, заключайте его между тегами [code] [/code]. Иначе он будет отображаться некорректно.


Защитный код
Обновить