ATtiny85 Digispark IIC, I2C с USB Начало - описание, характеристики, схема, подключение

ATtiny85 –  AVR микроконтроллер

 Существует два типа платы ATtiny85 Digispark с разными видами USB

 

 ATtiny85 Digispark Arduino IIC, I2C с USB

ATtiny85 Digispark  IIC, I2C с USB

ATtiny85 Digispark Arduino IIC, I2C с USB

ATtiny85 Digispark IIC, I2C с USB

ATtiny85 Digispark Arduino IIC, I2C с USB

ATtiny85 Digispark IIC, I2C с мини USB A

ATtiny85 Digispark Arduino IIC, I2C с USB

ATtiny85 Digispark  IIC, I2C с мини USB A

  


 На плате имеется Регулятор напряжения серии L78M00 

Регулятор напряжения 78M05

Количество выходов 1
Выходное #напряжение В 5
Максимальный ток нагрузки, А 0.5
Максимальное входное напряжение, В 35

Регулятор напряжения 78M05 datasheet скачать


Микроконтроллер ATtiny85-15MT1

микроконтроллер ATtiny85-15MT1

ATtiny85-15MT1 datasheet скачать >>>

Особенности ATtiny85

  • PLL – умножитель частоты. Внутренний источник с частотой 16 МГц и выше (до 32 МГц)
  • Высокочастотный ШИМ
  • Улучшенный таймер
  • Встроенный усилитель АЦП
  • Дифференциальный АЦП
  • Программный USB

Характеристики ATtiny85

  • Flash память: 8 кБ
  • SRAM память: 512 Б
  • EEPROM память: 512 Б
  • Частота ядра: до 32 МГц 
  • Таймер: 2 по 8 Бит
  • GPIO: 6 пинов (5 + RST)
  • ШИМ: 3 пина
  • АЦП: 10 Бит 4 пина
  • USI: I2C
  • SPI
  • Макс. ток пина: 20 мА

 

Назначение пинов ATtiny85 Digispark

Распиновка ATtiny85 Digispark

  • P0: 
  • P1: подключен светодиод. Не может работать в режиме INPUT_PULLUP
  • P2:
  • P3: USB пин. Соединен с  VCC резистором 1.5 кОм Если требуется работа USB, то использовать пин нельзя. Также нельзя при использовать пин при загрузках
  • P4: USB пин. Если требуется работа USB, то использовать пин нельзя. Также нельзя при использовать пин при загрузках
  • P5: на платах Digispark “отключен” от RST при помощи программатора. На китайских платах – нет. Нельзя использовать как выход, При подачи низкого сигнала произойдет перезагрузка микроконтроллера. Можно измерять аналоговый сигнал до VCC/2 (до 2.5V при питании от 5V)

Подключение ATtiny85 Digispark к Arduino IDE

Настройка Arduino IDE

В настройках (Файл/Настройки) в окно “Дополнительные ссылки…” Вставить http://digistump.com/package_digistump_index.json
или https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json  Нажать ОК

В Инструменты/Плата/Менеджер плат… Ввести в поиске “Digispark”. Выбрать и установить Digistump AVR Boards

В списке плат Инструменты/Плата/ появятся платы Digispark.  Выбрать Digispark (Default – 16.5mhz)

В меню Инструменты/Программатор выбрать программатор Micronucleos

Установить драйвера. Скачть можно здесь >>> (должны 

ATtiny85 Digispark IIC, I2C с USB Начало - описание, характеристики, схема, подключение


Как загрузить прошивку в ATtiny85 Digispark из Arduino IDE

Подготовленную программу в Arduino IDE компилируем и отправляем на загруку

Появится надпись: "Подключите плату"

В USB подключаем плату ATtiny85 Digispark.

Начнется загрузка


Как прошить микроконтроллер ATtiny85

Залить прошивку в микроконтроллер ATtiny85 можно с помощью программаторов и/или преобразователей:

 


Библиотеки Arduino IDE для ATtiny85 Digispark

Большинство Arduino-библиотек совместимы с ATtiny85 Digispark  скачать можно здесь >>>

Примеры библиотек ATtiny85 Digispark

  • DigisparkJoystick – USB джойстик
  • DigisparkKeyboard – USB клавиатура
  • DigisparkMouse – USB мышь
  • Adafruit_NeoPixel – библиотека для адресной ленты
  • DigisparkSoftSerial – программный Serial
  • DigisparkTinyPinChange – прерывания на любых пинах

Функции программирования ATtiny 85

Доступны следующие функции, некоторые функции урезаны:

pinMode()
digitalWrite()
digitalRead()
analogRead()
analogReference(INTERNAL) / (EXTERNAL)
shiftOut()
pulseIn()
analogWrite()
millis()
micros()
delay()
delayMicroseconds()


Задание для обучения работе с ATtiny85 Digispark

Настроить программу Arduino IDE для работы с ATtiny85 Digispark (подключить плату, загрузить драйвера ...)

В Arduino IDE вставить программу

******************************************************************

 #include <TinySoftPwm.h>

/*
Этот скетч увеличивает яркость встроенного светодиода Digispark.
Когда яркость достигает своего максимума, яркость уменьшается.
Когда яркость достигает своего минимума, яркость увеличивается, и так далее...
Примечание:
Объявить PIN-коды, используемые в «librarie/TinySoftPwm/TinySoftPwm.h».
В этом скетче #define TINY_SOFT_PWM_USES_P1 должен быть включен (без комментариев),
так как он использует встроенный светодиод DigiSpark, подключенный к P1.
В этом примере TinySoftPwm_process() периодически вызывается с помощью micros(),
но рекомендуется вызывать его из таймера ISR, для обеспечения лучшей периодичности.
*/

#define BUILT_IN_LED_PIN  1 /* Номер контакта встроенного светодиода Digispark Model A (Rev2) (измените его на 2 для модели B) */

void setup()
{
  TinySoftPwm_begin(128, 0); /* 128 вызовов TinySoftPwm_process() перед перекрытием (настройка частоты), 0 = инициализация ШИМ для всех объявленных выводов */
}

void loop()
{
static uint32_t StartUs=micros();
static uint32_t StartMs=millis();
static uint8_t Pwm=0;
static int8_t  Dir=1;

  /***********************************************************/
  /* Запуск TinySoftPwm_process() с периодом 60 мкс */
  /* Частота ШИМ = 128 x 60 # 7,7 мс -> F # 130 Гц */
  /* 128 — это первый аргумент, переданный в TinySoftPwm_begin() */
  /***********************************************************/
  if((micros() - StartUs) >= 60)
  {
    /* Возврат сюда каждые 60 мкс */
    StartUs=micros();
    TinySoftPwm_process(); /* Эта функция должна вызываться периодически (как здесь, на основе micros() или в ISR таймера) */
  }
 
  /*************************************************************/
  /* Инкремент/декремент ШИМ на выводе светодиода с периодом 10 мс */
  /*************************************************************/
  if((millis()-StartMs) >= 10)
  {
    /* Возврат сюда каждые 10 мс */
    StartMs=millis();
    Pwm+=Dir; /* Инкремент или декремент ШИМ в зависимости от знака Dir */
    TinySoftPwm_analogWrite(BUILT_IN_LED_PIN, Pwm); /* Обновление встроенного светодиода для Digispark */
    if(Pwm==255) Dir=-1; /* если ШИМ достигает максимума: изменить направление */
    if(Pwm==0)   Dir=+1; /* если ШИМ достигает минимума: изменить направление */
  }
}

******************************************************************

Нажать кнопку загрузить в ATtiny85 Digispark.

В Arduino IDE появится надпись

Sketch uses 1814 bytes (30%) of program storage space. Maximum is 6012 bytes.
Global variables use 62 bytes of dynamic memory.
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)

Подключить плату ATtiny85 Digispark к USB. Произойдет загрузка 

Sketch uses 1814 bytes (30%) of program storage space. Maximum is 6012 bytes.
Global variables use 62 bytes of dynamic memory.
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)
> Please plug in the device ...
> Press CTRL+C to terminate the program.
> Device is found!
connecting: 16% complete
connecting: 22% complete
connecting: 28% complete
connecting: 33% complete
> Device has firmware version 2.2
> Device signature: 0x1e930b
> Available space for user applications: 6522 bytes
> Suggested sleep time between sending pages: 7ms
> Whole page count: 102 page size: 64
> Erase function sleep duration: 714ms
parsing: 50% complete
> Erasing the memory ...
erasing: 55% complete
erasing: 60% complete
erasing: 65% complete
> Starting to upload ...
writing: 70% complete
writing: 75% complete
writing: 80% complete
> Starting the user app ...
running: 100% complete
>> Micronucleus done. Thank you!

На плате ATtiny85 Digispark красный светодиод должен постепенно загораться и гаснуть, тоже постепенно.

 

You have no rights to post comments