Программирование ATtiny45 (85)

Ivan
Offline
Зарегистрирован: 21.08.2011

Хочу прошить ATtiny45, используя наработки Arduino, например легкое взаимодействие с USB портом, я могу это сделать?

Modular
Offline
Зарегистрирован: 05.03.2011

 Просто взять и прошить не получиться. С некоторыми доработками можно. В частности нужно с нумерацией портов, что-то делать. Вот здесь посмотри (англ):

http://sites.google.com/site/elettronicaarduinoesperimenti/Home/arduino-ide-and-attiny45

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1255541325

Ivan
Offline
Зарегистрирован: 21.08.2011

Хорошо, спасибо, посмотрю...

Stoyan
Offline
Зарегистрирован: 05.08.2011

1. Прошить ATTiny45 через Arduino

или

2. Изпользовать ATTiny45 как Arduino

Ivan
Offline
Зарегистрирован: 21.08.2011

1. Прошить ATTiny45 через Arduino

Я хочу использовать наработки Arduino код, если такое возможно.

Stoyan
Offline
Зарегистрирован: 05.08.2011
Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

нужно учитывать размер кода, сколько использует код оперативки и пины правильно развести 

maksim
Offline
Зарегистрирован: 12.02.2012

Вот здесь http://hlt.media.mit.edu/?p=1229 есть схемы подключения, документация и необходимые файлы для программирования Attiny45(85) через Arduino ISP!!!

У меня Freeduino c 328 атмегой,  ATtiny45 и arduino-0023 на WinXP. 

Коротко: 

Качаем с этого сайта attiny45_85.zip, из архива копируем папку attiny45_85 в arduino-0023\hardware\ , запускаем arduino, в Tools --> Board должны появиться новые строки. Далее, как обычно, выбираем свой ардуино (у меня Tools --> Board --> Arduino Duemilanove or Nano w/ ATmega328) и прошиваем его скейтчем: File --> Examples --> ArduinoISP. Собираем как показано на схеме наш программатор и убираем перемычку рядом с USB-портом (если у вас Arduino Uno, то нужно установить конденсатор как показано на схеме), затем выбираем Tools --> Board --> ATtiny45 (w/ Arduino as ISP), пишем скейтч или выбираем из стандартных с учетом того, что у Аттити всего пять выводов и нажимаем Upload.

Если все хорошо, то выдается три раза сообщение об ошибке: " avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45 " она никак не влияет. 

Мне удалось убрать эту ошибку. Идем в папку arduino-0023\hardware\tools\avr\etc открываем файл avrdude.conf ищем ATtiny45 и и после параметра "signature" добавляем два параметра "pagel = 0x01;" и "bs2 = 0x01;":
 

#------------------------------------------------------------
# ATtiny45
#------------------------------------------------------------

part
   id = "t45";
   desc = "ATtiny45";
   has_debugwire = yes;
   flash_instr = 0xB4, 0x02, 0x12;
   eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
    0xBC, 0x02, 0xB4, 0x02, 0xBA, 0x0D, 0xBB, 0xBC,
    0x99, 0xE1, 0xBB, 0xAC;
   stk500_devcode = 0x14;
## avr910_devcode = ?;
## Try the AT90S2313 devcode:
   avr910_devcode = 0x20;
   signature = 0x1e 0x92 0x06;

   pagel = 0x01;
   bs2 = 0x01;

   reset = io;
   chip_erase_delay = 4500;
 

Аналогично делаем с ATtiny85.

И в завершении, для удобства, что бы не мешались в списке Tools --> Board лишние строки с ненужными мне способами программирования Attiny, в файле arduino-0023\hardware\attiny45_85\boards.txt я убрал ненужные строки, например:

attiny45usbtinyisp.name=ATtiny45 (w/ USB Tiny ISP)
attiny45usbtinyisp.upload.using=arduino:usbtinyisp
attiny45usbtinyisp.upload.maximum_size=4096
attiny45usbtinyisp.build.mcu=attiny45
attiny45usbtinyisp.build.f_cpu=1000000L
attiny45usbtinyisp.build.core=attiny45_85

 

 

maksim
Offline
Зарегистрирован: 12.02.2012

 И вот здесь есть подробное видео http://robocraft.ru/blog/arduino/612.html

dim
Offline
Зарегистрирован: 09.01.2012

Поигрался с тини45. Сначала залил блинк, частота в 20 раз выше чем положено. Видимо нужно прошивать фьюзы, а я пока не умею. Написал простой скетч терморегулятора с датчиком ds18b20, проблемы с частотой дают о себе знать. Помогите решить проблему

maksim
Offline
Зарегистрирован: 12.02.2012

Я тоже как-то пробовал подключать ds18b20 к Attiny45 тоже не заработало, пока нет времени с этим разобраться. Но блинк работает четко. Посмотри в файле arduino-0023\hardware\attiny45_85\boards.txt вот эту строчку: attiny45arduinoisp.build.f_cpu=1000000L - должно быть вот так.

dim
Offline
Зарегистрирован: 09.01.2012

Датчик заработал, просто увеличив промежутки между опросами. Сделал простой термостат, при понижении температуры включает в комнате обогреватель. Есть желание добавить к нему 7 сегментник, пока недорос. 

maksim
Offline
Зарегистрирован: 12.02.2012

Выложи код 

dim
Offline
Зарегистрирован: 09.01.2012
#include <OneWire.h>
OneWire ds(1);
#define DS18S20_ID 0x10
 #define DS18B20_ID 0x28
 float temp;
 int ledPin = 0;
void setup(void) {
  pinMode(ledPin, OUTPUT);
}
void loop (void) {
   byte i;
 byte present = 0;
 byte data[12];
 byte addr[8];
 
 //find a device
 if (!ds.search(addr)) {
 ds.reset_search();
return;
 }
 if (OneWire::crc8( addr, 7) != addr[7]) {
return;
 }
 if (addr[0] != DS18S20_ID && addr[0] != DS18B20_ID) {
return;
 }
 ds.reset();
 ds.select(addr);
 // Start conversion
 ds.write(0x44, 1);
 // Wait some time...
 delay(17000);  //850
 present = ds.reset();
 ds.select(addr);
 // Issue Read scratchpad command
 ds.write(0xBE);
 // Receive 9 bytes
 for ( i = 0; i < 9; i++) {
 data[i] = ds.read();
 }
 // Calculate temperature value
 temp = ( (data[1] << 8) + data[0] )*0.0625;
if (temp < 20)
{
digitalWrite(ledPin, HIGH);
}
else if (temp > 23)
{
digitalWrite(ledPin, LOW);
}
else
{

}
 }

 

dim
Offline
Зарегистрирован: 09.01.2012

 Maksim, 

На attiny84 можно подключить дисплей winstar?

step962
Offline
Зарегистрирован: 23.05.2011

 А что по-вашему может этому помешать?

maksim
Offline
Зарегистрирован: 12.02.2012

 А в файле arduino-0023\hardware\attiny45_85\boards.txt у тебя какие параметры?

Вот этот параметр: attiny45arduinoisp.build.f_cpu=

dim
Offline
Зарегистрирован: 09.01.2012

attiny45arduinoisp.build.f_cpu=1000000L 

maksim
Offline
Зарегистрирован: 12.02.2012

Странно, у меня при таких параметрах, нормально работает блин, но не работает OneWire. Попробуй поставить 20000000L и выставить нормальные задержки.

dim
Offline
Зарегистрирован: 09.01.2012

хоть и через пеньколоду, но термостат работает, собрал его в распредкоробку, уже работает по назначению)) 

maksim
Offline
Зарегистрирован: 12.02.2012

Все-таки дело было в фьзах... 

Ivan
Offline
Зарегистрирован: 21.08.2011

А как прошивать ATMEGA8 и ему подобные через IDE Arduino?

maksim
Offline
Зарегистрирован: 12.02.2012

Ivan, cоздайте новую тему, а здесь пусть так и идет речь об ATtiny45 (85)

 

whoim
Offline
Зарегистрирован: 03.11.2011

 Скорее всего на выхах попробую с атини45, задача - два мосфета -> фары авто, помигивание двойное как в машинах американских спецслужб))

maksim
Offline
Зарегистрирован: 12.02.2012

У них это реализованно на стробоскопах, попробовать можно, но помни за это лишение прав, с конфискацией аттини и мосфетов )

whoim
Offline
Зарегистрирован: 03.11.2011

 maksim я не себе )))

whoim
Offline
Зарегистрирован: 03.11.2011

 В общем, не могу прошить 45 тиньку..

статья: http://hlt.media.mit.edu/?p=1695

даные:

FT232RL
328 атмега tqfp 16mhz 5v, залита прошивка

atmega328.name=Arduino Duemilanove w/ ATmega328

atmega328.upload.protocol=arduino
atmega328.upload.maximum_size=30720
atmega328.upload.speed=57600

atmega328.bootloader.low_fuses=0xFF
atmega328.bootloader.high_fuses=0xDA
atmega328.bootloader.extended_fuses=0x05
atmega328.bootloader.path=atmega
atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex
atmega328.bootloader.unlock_bits=0x3F
atmega328.bootloader.lock_bits=0x0F

atmega328.build.mcu=atmega328p
atmega328.build.f_cpu=16000000L
atmega328.build.core=arduino
atmega328.build.variant=standard

работает. Залит скетч Arduino as ISP

Тинька подключена верно, проверял десять раз.

Выбрана тинька 45 1мгц

при аплоаде

avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

 

почему?)

Mastino
Offline
Зарегистрирован: 03.12.2011

whoim - как идут работы по внедрения arduino в вездеход?

whoim
Offline
Зарегистрирован: 03.11.2011

 Mastino пока никак) вот тиньку сломаю - будет управление электировентиляторами)

Mastino
Offline
Зарегистрирован: 03.12.2011

whoim пишет:

 Mastino пока никак) вот тиньку сломаю - будет управление электировентиляторами)

электировентиляторы...:)) когда зажигание будет?:)

whoim
Offline
Зарегистрирован: 03.11.2011

я понял. У меня не разведен с брелка reset 

whoim
Offline
Зарегистрирован: 03.11.2011

Mastino пишет:

whoim пишет:

 Mastino пока никак) вот тиньку сломаю - будет управление электировентиляторами)

электировентиляторы...:)) когда зажигание будет?:)

да хз, пока продохнуть жизнь не дает.. как только зарабатывать спокойно а не с пеной у рта начну - так и займусь)

whoim
Offline
Зарегистрирован: 03.11.2011

 скомпилил в ардуине, залил через программаторнах. Работает ))

whoim
Offline
Зарегистрирован: 03.11.2011
maksim
Offline
Зарегистрирован: 12.02.2012

whoim

Посмотри вот здесь http://hlt.media.mit.edu/?p=1229, статья, на которую ты ссылаешься это статья как прошить бутлоудер. Такая ошибка вылазит если неправильно выбран девайс, а значит, скорее всего, у тебя пытается шиться аттмега вместо аттини, попробуй поставить конденсатор между RESET и GND у аттмеги.

whoim
Offline
Зарегистрирован: 03.11.2011

 maksim пробовал кодюк, правда 4,7мкф и 100 мкф (10 не нашлост под рукой). Девайс выбран правильно. Правда, я папку аттини засунул в не в скетчи а в саму ардуино - но она видится нормально.

maksim
Offline
Зарегистрирован: 12.02.2012

Папка аттини должна лежать в hardware

whoim
Offline
Зарегистрирован: 03.11.2011

 maksim а папка hardware? )

maksim
Offline
Зарегистрирован: 12.02.2012

arduino-0023\hardware\ если ее нет, то нужно создать, я же тебе давал ссылку  http://hlt.media.mit.edu/?p=1229
 

whoim
Offline
Зарегистрирован: 03.11.2011

 maksim

See the updated version of this tutorial (with support for Arduino 1.0). http://hlt.media.mit.edu/?p=1695
 

Download: ATtiny (from this GitHub repository)

Locate your Arduino sketchbook folder (you can find its location in the preferences dialog in the Arduino software)Create a new sub-folder called “hardware” in the sketchbook folder.

Copy the attiny folder from inside the .zip to the hardware folder.

whoim
Offline
Зарегистрирован: 03.11.2011

 на самом деле моя проблема в том что с ftdi не разведен dtr. Но я прекрасно шью программатором. На будущее соберу себе платку по типу нано ардуино.

whoim
Offline
Зарегистрирован: 03.11.2011

 У кого нить есть инфо по поводу attiny13?