Светодиодные фонари и световые приборы. Всё о светотехнике.
Вернуться   Форум FONAREVKA.RU Лаборатория Разработка и модификация фонарей Разработка и модификация электроники фонарей
Расширенный поиск
Забыли пароль? Регистрация

  • О нашем проекте
  • Светотехника и световые приборы
  • Правила форума
Проект FONAREVKA.RU специализируется на предоставлении всей необходимой информации по светотехнике:

— светодиодные фонари;
— различные источники питания;
— разнообразные зарядные устройства;
— освещение помещений и наружное освещение;
— световые приборы для личного, пассажирского и грузового транспорта;
— специальные световые приборы для медицины, для растений, для аквариумов, для террариумов, а также аварийно-сигнальные световые приборы;
— альтернативные источники света;
— лазеры и лазерная техника.

Если у вас есть вопросы по выбору фонарей, аккумуляторов и зарядных устройств ознакомьтесь с FAQ от наших экспертов:

F.A.Q. по выбору фонарей различных типов;
F.A.Q. по выбору аккумуляторов;
F.A.Q. по выбору зарядных устройств.
Закрытая тема  Создать новую тему
Просмотров в теме 279406   Ответов в теме 636   Подписчиков на тему 44   Добавили в закладки 30
Опции темы Поиск в этой теме
Старый 21.05.2011, 23:10 Автор темы   1
Завсегдатай Фонарёвки
 
Регистрация: 16.02.2011
Последняя активность: 22.05.2017 13:07
Сообщений: 731
Сказал(а) спасибо: 4
Поблагодарили: 177 раз(а) в 92 сообщениях

По умолчанию Прошивка микроконтроллеров AVR

Прошивка микроконтроллеров семейства AVR в домашних условиях.

Ни одно современное электронное устройство сейчас не обходится без микроконтроллеров. Фонарики не исключение. Достаточно часто в драйверах светодионых фонарей мы можем видеть микроконтроллеры ATtiny13A семейства AVR фирмы Atmel. Например, всем известные драйверы
Нажмите на изображение для увеличения
Название: sku6190_N1.jpg
Просмотров: 28055
Размер:	248.9 Кб
ID:	17945Нажмите на изображение для увеличения
Название: sku7612_N1.jpg
Просмотров: 27660
Размер:	219.3 Кб
ID:	17946

Всё семейство микроконтроллеров AVR рассчитано на программирование прямо в схеме устройства, если конечно разработчик не позаботится об обратном, но об этом чуть позже. Проще всего воспользоваться готовым программатором, коих сейчас для AVR продаётся огромное множество за сущие копейки. Типа такого, например
Нажмите на изображение для увеличения
Название: AVR_USB_PROG.JPG
Просмотров: 26023
Размер:	35.6 Кб
ID:	17948
Тем у кого есть подобный программатор дальше можно не читать, ибо наверняка он у вас появился не случайно и как прошивать микроконтроллеры вы уж точно знаете.

Если откатиться в историю лет на 15 назад, то мы увидим, что фирма Atmel далеко не первая вышла на рынок однокристальных микроконтроллеров. Но почему же её AVR-ки так полюбились всем? Всё очень просто. Чтобы начать их применять кроме желания не надо было больше ничего. Полная документация, бесплатное программное обеспечение и возможность прошивки вообще без программатора. Что ещё надо "бедному студенту"? Ну вот давайте и представим себя подобными студентами, в руки которых попал фонарь или драйвер фонаря с микроконтроллером Tiny13A на борту.

Что нам потребуется:
1. Паяльник. Пожалуй это основное, так как нам надо будет припаять провода к микросхеме, шаг выводов которой равен 1,25 мм. По современным меркам просто огромное расстояние, но без паяльника мощностьюе 5-10 Вт с жалом шириной 1-2 мм новичкам лучше даже не пытаться.
2. Провода и желательно миниатюрные разъёмы, чтобы каждый раз не отпаивать провода для проверки что же у нас получилось.
Для тех кто не дружит с паяльником совсем есть вариант приобретения вот такой клипсы для подключения к микросхеме без пайки.
Нажмите на изображение для увеличения
Название: clips.JPG
Просмотров: 25879
Размер:	6.2 Кб
ID:	17947
Но это не наш путь, ибо это деньги и время. Я не супер спец в пайке, но у меня получается как-то так. На разъём провода к компьютеру, а через жёлтый МГТФ подаём питание.
Нажмите на изображение для увеличения
Название: 4d0458c7e411.jpg
Просмотров: 25959
Размер:	61.6 Кб
ID:	17954
3. Ещё нам понадобится программное обеспечение. Лучше всего для изучения подойдёт PonyProg
4. Ну и самое главное - надо сделать "хвостик" к компьютеру. Тут есть два варианта. Либо в СОМ-порт вот такой
Нажмите на изображение для увеличения
Название: Sprog.jpg
Просмотров: 4358
Размер:	49.2 Кб
ID:	17949
Либо в LPT-порт вот такой вообще без единой радиодетали
Нажмите на изображение для увеличения
Название: ParProg.jpg
Просмотров: 3014
Размер:	50.4 Кб
ID:	17950
Если есть возможность, то лучше собрать первый вариант, так как в COM-порте более мощные и надёжные выходные буферы. Но и второй вариант для поиграться пойдёт.

Теперь надо подключит "хвостик" к микроконтроллеру согласно следуюзей таблице:
Reset - ножка 1
SCK - ножка 7
MOSI - ножка 5
MISO - ножка 6
GND - минус питания драйвера
На всякий случай привожу нумерацию выводов микросхемы
Название: so-8.jpg
Просмотров: 30588

Размер: 22.1 Кб

Когда микроконтроллер подключен к компьютеру, то подаём на драйвер питание от одного Li-Ion и запускаем PonyProg. В программе выбираем тип микроконтроллера ATtiny13 и способ подключения к компьютеру. Примерно как на картинке.
Нажмите на изображение для увеличения
Название: pp1.jpg
Просмотров: 3447
Размер:	104.1 Кб
ID:	17951

Теперь, как говорят, если всё собрано правильно, то схема работает сразу. Выбираем меню Command->Security and Configuration bits и либо получаем вот такое окно, означающее что всё получилось
Нажмите на изображение для увеличения
Название: pp.jpg
Просмотров: 3584
Размер:	142.8 Кб
ID:	17952
либо сообщение об ошибке, которое может означать две вещи. Или что-то не так спаяли и надо искать ошибку, или нам попался драйвер в микроконтроллере которого отключена возможность программирования в схеме. Мне такие попадались в DX-ских sku.7612. Тут, к сожалению, только замена микроконтроллера на чистый.

Если же никаких ошибок не возникло, то теперь можно смело перетащить в окно программы прошивку, стереть микроконтроллер командой Erase и запрограммировать новую прошивку командой Write Program. Отключить драйвер от компьютера и испытать в работе.

Вопрос где брать прошивки в этой статье я рассматривать не буду. Краткий ответ на него - брать в интернете готовые или писать самому.


Официальный сайт Atmel (даташиты, бесплатный софт): atmel.com
Самоучитель по программированию AVR: http://proavr.narod.ru/
Море книг по применению AVR: http://lord-n.narod.ru/wall...
VladislavS вне форума   Вверх
Поблагодарили: 36 раз(а)
-Вовчик- (17.11.2022), 027 (07.12.2011), Admin (27.09.2012), Anton (04.01.2012), Baskery (27.07.2014), Dima.shym (22.03.2015), DmNuts (01.12.2011), dr oleg (03.02.2015), fnksb (13.09.2014), Gary (02.02.2012), gorsv (15.06.2011), grek21 (15.01.2013), hohol38 (07.04.2015), Ikepod (16.10.2014), IVAN_44 (22.08.2012), klialex (28.03.2014), ko54 (07.12.2013), lonish (26.02.2015), Lopuh (21.08.2013), Mauser (20.06.2011), nkk (14.12.2015), OldRanger (03.02.2017), Optich (02.03.2019), Reyden (30.01.2015), Rime (07.07.2013), roman78 (12.06.2014), rus75 (10.09.2017), sav (21.09.2014), seryoga (31.03.2015), stradivarius (19.02.2016), sturr (03.11.2011), Variant (21.05.2013), vitali (15.12.2013), Vovan Hz (14.08.2015), yeti (23.01.2012), Славный (23.10.2014)
Старый 22.05.2011, 09:02   2
Leon
Ветеран Фонарёвки
 
Аватар для Leon
 
Регистрация: 01.06.2010
Последняя активность: 22.01.2024 15:16
Адрес: Новгородчина
Сообщений: 4717
Сказал(а) спасибо: 1353
Поблагодарили: 1118 раз(а) в 424 сообщениях

Отправить сообщение для Leon с помощью ICQ
По умолчанию Re: Прошивка микроконтроллеров AVR

Статья хорошая, большое спасибо, но хотелось бы увидеть полносью разжеваный материал начиная от описанного выше и кончая написанием прошивок (пусть даже не с нуля, а используя слитые с тех же контроллеров фонарных драйверов, да и многоуважаемый VladislavS, как я знаю по форуму iXBT практические всегда перепрошивает родные контроллеры, если это позволяет само железо, и как говорится на этом съел собаку)... Думаю многие меня поддержать в этом плане с просьбой более подробного написания материала по программированию, а многоуважаемый VladislavS не откажет в этом камрадам фонаревщикам...

[Исправлено: Leon, 22.05.2011 в 09:06]
Leon вне форума   Вверх
Поблагодарили: 1 раз
Gotlib (16.06.2021)
Старый 22.05.2011, 13:35 Автор темы   3
VladislavS
Завсегдатай Фонарёвки
 
Регистрация: 16.02.2011
Последняя активность: 22.05.2017 13:07
Сообщений: 731
Сказал(а) спасибо: 4
Поблагодарили: 177 раз(а) в 92 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Не, написать очередную книжку по программированию микроконтроллеров я не потяну, да и полно их уже написано.

Мой опыт работы со студентами говорит, что выпускник технического ВУЗа, владеющий несколькими языками программирования, начинает программировать микроконтроллеры за пару дней при наличии железки на которой можно экспериментировать.

На самом деле всё очень просто. Вот такая маленькая программа, зашитая в драйвер фонаря из первого поста, заставит его бодренько так мигать.
Код:
#include <ioavr.h>

int main( void )
{
  //Настроим порты ввода/вывода
  DDRB=(0<<DDB5)|(0<<DDB4)|(0<<DDB3)|(0<<DDB2)|(1<<DDB1)|(0<<DDB0);
  PORTB=(0<<PORTB5)|(0<<PORTB4)|(0<<PORTB3)|(0<<PORTB1)|(0<<PORTB0);
  for(;;)
  {
    __delay_cycles(1000000);    //Задержка
    PORTB|=(1<<PORTB1);    //Включить свет
    __delay_cycles(1000000);    //Задержка
    PORTB&=~(1<<PORTB1);    //Выключить свет
  }
}
Лишь немногим более сложная программа это уже полноценный драйвер с памятью режимов и контролем разряда аккумуляторов.
Код:
#include <ioavr.h>
#include <intrinsics.h>

volatile __regvar __no_init unsigned char mode @ 15;
volatile __regvar __no_init unsigned char power_low_counter @ 14;
volatile __regvar __no_init unsigned int adc_c @ 12;

__no_init __eeprom unsigned char ee_mode;

#ifdef __cplusplus
extern "C" {
#endif
char __low_level_init()
{ 

  CLKPR|=(1<<CLKPCE); 
  CLKPR=1; //Снизим тактовую частоту до 9.6/2 МГц
  
  DDRB=(0<<DDB5)|(0<<DDB4)|(0<<DDB3)|(0<<DDB2)|(1<<DDB1)|(1<<DDB0);
  PORTB=(0<<PORTB5)|(0<<PORTB4)|(0<<PORTB3)|(0<<PORTB1)|(0<<PORTB0);
  
  ACSR=(1<<ACD); //Analog Comparator Disable
  DIDR0=(1<<ADC0D)|(0<<ADC1D)|(1<<ADC2D)|(1<<ADC3D)|(1<<AIN1D)|(1<<AIN0D);
  PRR=(1<<PRTIM0)|(0<<PRADC);
  
  ADMUX=(1<<REFS0)| 1; // Vref=1.1V , ADC1
  ADCSRA=(1<<ADEN)|(0<<ADSC)|(1<<ADATE)|(0<<ADIF)|(1<<ADIE)|(1<<ADPS2)|(0<<ADPS1)|(1<<ADPS0);
  ADCSRB=0;      
  
  return 1;
}
#ifdef __cplusplus
}
#endif

#pragma vector=ADC_vect
__interrupt void ADC_Interrupt(void)
{  
  switch(mode)
  {
    case 0: // Яркость 100%
      if(ADC<531) power_low_counter++; else power_low_counter=0;
      if(power_low_counter>250) { ee_mode=0; mode=3; power_low_counter=0; }
      PORTB|=(1<<PORTB1);
      PORTB|=(1<<PORTB0);      
      break;
    case 1: // Яркость 40%
      if(ADC<531) power_low_counter++; else power_low_counter=0;
      if(power_low_counter>250) { ee_mode=1; mode=3; power_low_counter=0; }
      PORTB|=(1<<PORTB0);
      PORTB&=~(1<<PORTB1);
      break;
    case 2: // Яркость 14,2%
      if(ADC<531) power_low_counter++; else power_low_counter=0;
      if(power_low_counter>250) { ee_mode=1; mode=3; power_low_counter=0; }
      PORTB&=~(1<<PORTB1);
      PORTB|=(1<<PORTB0);
      __delay_cycles(156);      
      PORTB&=~(1<<PORTB0);
      break;
    case 3: // Яркость 3.5%
      if(ADC<530) power_low_counter++; else power_low_counter=0;
      if(power_low_counter>250) { ee_mode=3; mode++; }
      PORTB&=~(1<<PORTB1);
      PORTB|=(1<<PORTB0);
      __delay_cycles(35);      
      PORTB&=~(1<<PORTB0);
      break;
    default: // Защитное выключение
      PORTB&=~(1<<PORTB0);
      PORTB&=~(1<<PORTB1);
      MCUCR=(1<<SE)|(2<<SM0); //Power Down
      __sleep();
      break;
  }
  adc_c++;
};

int main( void )
{   
  __delay_cycles(100000);

  adc_c=0;
  power_low_counter=0;
  
  mode=ee_mode;
  
  switch(mode)
  {
    case 0:
    case 1:
    case 2:
      ee_mode++;
      break;
    default:
      mode=3;       
      ee_mode=0;
      break;
  }  
  
  ADCSRA|=(1<<ADSC);  
  __enable_interrupt(); 
  while(adc_c<16000);
  __disable_interrupt();
  PORTB&=~(1<<PORTB1);
  PORTB&=~(1<<PORTB0);        
  ee_mode=mode;
  __delay_cycles(300000);
  __enable_interrupt();
   
  for(;;)  
  {   
    MCUCR=(1<<SE)|(1<<SM0); //Sleep
    __sleep();
  }
}
Разница всего то 100 строк. Но за ними часы, проведённые за изучением документации.
VladislavS вне форума   Вверх
Поблагодарили: 6 раз(а)
Admin (30.10.2012), DmNuts (19.09.2011), Luceus (31.01.2016), Mr. VitalDOS (16.11.2015), nkk (14.12.2015), sturr (05.03.2017)
Старый 22.05.2011, 20:48   4
Leon
Ветеран Фонарёвки
 
Аватар для Leon
 
Регистрация: 01.06.2010
Последняя активность: 22.01.2024 15:16
Адрес: Новгородчина
Сообщений: 4717
Сказал(а) спасибо: 1353
Поблагодарили: 1118 раз(а) в 424 сообщениях

Отправить сообщение для Leon с помощью ICQ
По умолчанию Re: Прошивка микроконтроллеров AVR

Цитата:
Посмотреть сообщение Сообщение от VladislavS :
Не, написать очередную книжку по программированию микроконтроллеров я не потяну, да и полно их уже написано.
Да это все понятно, но, имхо, указать самые толковые книжки по этому делу, да и программки для правки прошивки (программы) было бы не лишним...
Leon вне форума   Вверх
Старый 22.05.2011, 22:07 Автор темы   5
VladislavS
Завсегдатай Фонарёвки
 
Регистрация: 16.02.2011
Последняя активность: 22.05.2017 13:07
Сообщений: 731
Сказал(а) спасибо: 4
Поблагодарили: 177 раз(а) в 92 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Стыдно признаться, но не прочитал ни одной книжки по программированию именно микроконтроллеров. Всё как-то ограничивалось официальными спецификациями на микросхемы и средства разработки.

Как и все, изучал в школе Бэйсик, потом в институте 4 разных ассемблера и 4 языка высокого уровня. Основа основ, конечно, С/C++. После этого изучение следующего языка занимает час-другой.

Цитата:
Посмотреть сообщение Сообщение от Leon :
программки для правки прошивки
Написание прошивки ничем не отличается от написания обычных программ для компьютера, кроме того что скомпилированную программу не на USB-флэшку копируют, а в память микроконтроллера. Упрощённо как-то так:

Текст программы -> компилятор -> прошивка -> программатор -> микроконтроллер.

Два последних шага я описал в первом посте. Первые два делаются обычно в какой-нибудь интегрированной среде разработки. Бесплатная WinAVR, платный IAR Emedded Workbench или другими. У них очень хорошая документация в комплекте, которой достаточно для изучения.

Идея считать готовую прошивку из микроконтроллера для изучения сама по себе несостоятельна. Этим занимаются разве что хакеры со знаниями выше среднего с целью украсть/клонировать. Для обучения надо брать исходные тексты несложных проектов. Как пример - исходный текст прошивки, который я выше выложил.
VladislavS вне форума   Вверх
Старый 22.05.2011, 22:31   6
awl
Ветеран Фонарёвки
 
Аватар для awl
 
Регистрация: 09.07.2010
Последняя активность: 23.05.2023 09:41
Адрес: Ижевск
Сообщений: 3247
Сказал(а) спасибо: 206
Поблагодарили: 1040 раз(а) в 466 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Полезный мануал Может пользователи наделают под подобные драйверы прошивок и поделятся с народом интересными реализациями.

Кстати, ломать чужие прошивки тут вообще бессмысленно, проще заново написать. С трудом себе представляю что там может быть такого, что захочется доработать забиванием байтов в бинарном виде..

PS: Ещё бы интересно узнать варианты готовых программаторов, которые можно купить в инете, чтобы не паять и задёшево
awl вне форума   Вверх
Старый 22.05.2011, 22:58 Автор темы   7
VladislavS
Завсегдатай Фонарёвки
 
Регистрация: 16.02.2011
Последняя активность: 22.05.2017 13:07
Сообщений: 731
Сказал(а) спасибо: 4
Поблагодарили: 177 раз(а) в 92 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Цитата:
Посмотреть сообщение Сообщение от awl :
Ещё бы интересно узнать варианты готовых программаторов
Ну это как раз просто. На ebay в поиске "AVR programmer". Единственное, они будут не с PonyProg работать, а с другими программами работать. Но это непринципиально.

Цитата:
Посмотреть сообщение Сообщение от awl :
Может пользователи наделают под подобные драйверы прошивок и поделятся с народом интересными реализациями.
Так уже. Тут мужики монстра наваяли. Исходники открыты - качаем и правим под себя. Там вообще интересная тема, кстати - народ реально шьёт.
VladislavS вне форума   Вверх
Старый 22.05.2011, 23:02   8
John Jack
Начитанный пони
 
Аватар для John Jack
 
Регистрация: 25.11.2010
Последняя активность: 31.10.2016 03:47
Адрес: Москва
Сообщений: 6822
Записей в дневнике: 18
Сказал(а) спасибо: 1790
Поблагодарили: 1363 раз(а) в 892 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

http://budgetlightforum.com...

Четыре минуты разницы, да.
__________________
Всё написанное может быть ошибочно.
Who needs calories when you can have lumens?
John Jack вне форума   Вверх
Поблагодарили: 1 раз
nkk (14.12.2015)
Старый 22.05.2011, 23:05   9
serj_32
Глобальный модератор
 
Аватар для serj_32
 
Регистрация: 31.05.2010
Последняя активность: 02.01.2023 22:23
Адрес: Украина, Киев
Сообщений: 4464
Записей в дневнике: 44
Сказал(а) спасибо: 357
Поблагодарили: 2428 раз(а) в 816 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Спасибо за статью!!! Думаю теперь народу понятней будет что там в контролерах и откуда оно берется, и чего фонари могут глючить
__________________
Обзоры на YouTube - подписывайтесь!
Мы люди мирные, но наш бронепоезд стоит на запасном пути.
serj_32 вне форума   Вверх
Старый 22.05.2011, 23:28 Автор темы   10
VladislavS
Завсегдатай Фонарёвки
 
Регистрация: 16.02.2011
Последняя активность: 22.05.2017 13:07
Сообщений: 731
Сказал(а) спасибо: 4
Поблагодарили: 177 раз(а) в 92 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Цитата:
Посмотреть сообщение Сообщение от serj_32 :
и чего фонари могут глючить
В основном глючат фонари из-за плохих контактов и дешёвой схемотехники не рассчитанной на плохие контакты. И в последнюю очередь из-за прошивок не рассчитанных на плохие контакты и дешёвую схемотехнику.
VladislavS вне форума   Вверх
Поблагодарили: 1 раз
Deviator2x (24.01.2016)
Старый 22.05.2011, 23:32   11
serj_32
Глобальный модератор
 
Аватар для serj_32
 
Регистрация: 31.05.2010
Последняя активность: 02.01.2023 22:23
Адрес: Украина, Киев
Сообщений: 4464
Записей в дневнике: 44
Сказал(а) спасибо: 357
Поблагодарили: 2428 раз(а) в 816 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Цитата:
Посмотреть сообщение Сообщение от VladislavS :
И в последнюю очередь из-за прошивок не рассчитанных на плохие контакты и дешёвую схемотехнику.
Часто брендовые фонари глючат из-за сырых прошивок
serj_32 вне форума   Вверх
Старый 22.05.2011, 23:35   12
Admin
Администратор
 
Аватар для Admin
 
Регистрация: 17.05.2010
Адрес: Москва
Сообщений: 18903
Сказал(а) спасибо: 4325
Поблагодарили: 10614 раз(а) в 2535 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Тема сделана Важной и теперь находится в прикрепленных темах вверху раздела!

Отличный FAQ!
Admin вне форума   Вверх
Старый 24.05.2011, 00:12   13
Andrey
Увлеченный
 
Регистрация: 29.05.2010
Последняя активность: 04.03.2024 08:32
Сообщений: 145
Сказал(а) спасибо: 7
Поблагодарили: 9 раз(а) в 7 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Цитата:
Посмотреть сообщение Сообщение от VladislavS :
Идея считать готовую прошивку из микроконтроллера для изучения сама по себе несостоятельна. Этим занимаются разве что хакеры со знаниями выше среднего с целью украсть/клонировать.
Ну-ну. Т.е. Mete0 расхакавший Aladdin-овскую защиту, и показавщий, что ее нет как таковой - типичный пример такого хакера со средними знаниями?
Andrey вне форума   Вверх
Старый 24.05.2011, 01:12   14
oleg235
Ветеран Фонарёвки
 
Регистрация: 07.04.2011
Последняя активность: 05.07.2019 16:52
Сообщений: 2838
Сказал(а) спасибо: 25
Поблагодарили: 402 раз(а) в 189 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Цитата:
Посмотреть сообщение Сообщение от awl :
Полезный мануал Может пользователи наделают под подобные драйверы прошивок и поделятся с народом интересными реализациями.

Кстати, ломать чужие прошивки тут вообще бессмысленно, проще заново написать. С трудом себе представляю что там может быть такого, что захочется доработать забиванием байтов в бинарном виде..

PS: Ещё бы интересно узнать варианты готовых программаторов, которые можно купить в инете, чтобы не паять и задёшево
Программатор Громова состоит из десятка деталей и паяется за 15 минут.
oleg235 вне форума   Вверх
Старый 24.05.2011, 06:48   15
awl
Ветеран Фонарёвки
 
Аватар для awl
 
Регистрация: 09.07.2010
Последняя активность: 23.05.2023 09:41
Адрес: Ижевск
Сообщений: 3247
Сказал(а) спасибо: 206
Поблагодарили: 1040 раз(а) в 466 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Детали надо ещё найти и правильно припаять Кроме того, отсутствие в компе RS232/LPT уже обычное дело..
awl вне форума   Вверх
Старый 24.05.2011, 08:19 Автор темы   16
VladislavS
Завсегдатай Фонарёвки
 
Регистрация: 16.02.2011
Последняя активность: 22.05.2017 13:07
Сообщений: 731
Сказал(а) спасибо: 4
Поблагодарили: 177 раз(а) в 92 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Цитата:
Посмотреть сообщение Сообщение от Andrey :
Ну-ну. Т.е. Mete0 расхакавший Aladdin-овскую защиту, и показавщий, что ее нет как таковой - типичный пример такого хакера со средними знаниями?
Извини, ничего не знаю ни про Mete0, ни про уровень его знаний, ни про Aladdin-овскую защиту.

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

Я уже почти 15 лет профессионально занимаюсь различного рода микропроцессорами/микроконтроллерами/ПЛИС и программаторов/отладчиков разных за это время заимел полный ящик стола. Но, как это ни странно, для AVR всё это время основной лошадкой остаётся COM-хвостик из первого сообщения. Мы его, правда, на печатной плате спаяли, но всё равно считай на коленке:
Нажмите на изображение для увеличения
Название: hvost.jpg
Просмотров: 4068
Размер:	196.8 Кб
ID:	18468
VladislavS вне форума   Вверх
Старый 24.05.2011, 09:22   17
SuperFonarik.ru

 
Аватар для SuperFonarik.ru
 
Регистрация: 19.05.2010
Последняя активность: 25.05.2019 16:13
Адрес: Москва
Сообщений: 1690
Сказал(а) спасибо: 242
Поблагодарили: 632 раз(а) в 285 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Еще для новичков:
http://proavr.narod.ru/

Очень удобная штука для прошивки и отладки - JTAG ICE. Дороговато для любительского бюджета, но 100% клоны от Olimex продаются за $30-$40. Прелесть в том, что программу можно отлаживать из среды разработки прямо внутри чипа: ставить точки останова, смотреть регистры, ставить Watch на изменения переменных и т.п. Ускоряет время отладки по сравнению со "слепой" раз в 5.

VladislavS: лучше в нулевую ячейку EEPROM ничего не писать - иногда при инициализации AVR они слетают, нахлебались в свое время с этим на объекте. Хотя бы начинать с 1. Если сохранять выбранный режим в одну и ту же ячейку, лет через 5-10 работы фонарь может перестать запоминать режимы из-за износа ячейки EEPROM. Есть механизм "размазывания" данных по нескольким ячейкам.
SuperFonarik.ru вне форума   Вверх
Старый 24.05.2011, 10:19 Автор темы   18
VladislavS
Завсегдатай Фонарёвки
 
Регистрация: 16.02.2011
Последняя активность: 22.05.2017 13:07
Сообщений: 731
Сказал(а) спасибо: 4
Поблагодарили: 177 раз(а) в 92 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Хороший инструмент всегда хорошо. Это даже не обсуждается. Но AVR настолько легко программируются и так предсказуемы, что внутрисхемная отладка на них больше техническое извращение напоминает. C-компиляторы для AVR такой классный код генерят, что там отлаживать то ничего и не остаётся. Особенно в тиньках c их 1К флэша.

Цитата:
Посмотреть сообщение Сообщение от SuperFonarik.ru :
лучше в нулевую ячейку EEPROM ничего не писать
Лет 10 назад так и было. Компиляторы даже по умолчанию размещали переменные с первой ячейки. Сейчас эта детская болезнь в прошлом. Можно смело использовать нулевую ячейку.

Цитата:
Посмотреть сообщение Сообщение от SuperFonarik.ru :
Если сохранять выбранный режим в одну и ту же ячейку, лет через 5-10 работы фонарь может перестать запоминать режимы из-за износа ячейки EEPROM.
Чисто теоретически да. Но практически это фантастика. Технология EEPROM это 1 миллион циклов записи, хотя Atmel наверное единственная кто скромно гарантирует 100 тысяч всего.

Чтобы за 10 лет выработать ресурс EEPROM надо фонарь включать 100000/10/365/2 = 14 раз в ночь каждую ночь в течении 10 лет. Слабо представляю себе такое использование фонаря. Да и сломается по другой причине или морально устареет он быстрей за это время. Ну и 100 тысяч это сильно заниженная цифра.

Цитата:
Посмотреть сообщение Сообщение от SuperFonarik.ru :
Есть механизм "размазывания" данных по нескольким ячейкам.
Да, вполне можно его применить для успокоения души. Оставим этот вопрос на откуп перфекционистам.
VladislavS вне форума   Вверх
Старый 24.05.2011, 10:42   19
SuperFonarik.ru

 
Аватар для SuperFonarik.ru
 
Регистрация: 19.05.2010
Последняя активность: 25.05.2019 16:13
Адрес: Москва
Сообщений: 1690
Сказал(а) спасибо: 242
Поблагодарили: 632 раз(а) в 285 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Компиляторы, кстати, бывает, так "наоптимизируют", что потом часть программы не работает
Цитата:
Можно смело использовать нулевую ячейку.
2 года назад еще продавались ATMega16 с таким багом.

Цитата:
Технология EEPROM это 1 миллион циклов записи, хотя Atmel наверное единственная кто скромно гарантирует 100 тысяч всего.
На практике живучесть встроенных EEPROM на порядок или два меньше. Особенно с нагревом. Мы сталкивались с неуверенным чтением ячеек уже после 10 000 циклов, хотя в документации гордо стоял 1 млн. циклов. Внешние EEPROMки в этом плане более живучи.

Была такая проблема у магнитол JVC в свое время - программисты не стали "размазывать" данные и сохраняли значение громкости при каждом повороте энкодера. За 2 года ячейка деградировала, и магнитола включалась на произвольной громкости. Отзывали серию потом.

Кстати, очень популярны год назад были фонари Nitecore SmartPD. Для них тоже есть открытые прошивки:
https://code.google.com/p/a...
http://www.candlepowerforum...
SuperFonarik.ru вне форума   Вверх
Старый 24.05.2011, 22:35   20
andory
Завсегдатай Фонарёвки
 
Регистрация: 28.05.2010
Последняя активность: 22.12.2013 16:40
Адрес: msk
Сообщений: 843
Сказал(а) спасибо: 0
Поблагодарили: 80 раз(а) в 53 сообщениях

По умолчанию Re: Прошивка микроконтроллеров AVR

Можно добавить, что 8-ногие тиньки практически полностью взаимозаменяемы в пределах семейства, в сторону увеличения номера. Если есть исходники на 13, то на 25, 45, 85 все легко компилируется, особых знаний в С не требуется. И наоборот- написанное и отлаженное на макете в 85, если поместится в 13 или 25, будет работать.
Начинающим- приведенные в топике открытые прошивки написаны в WinAVR
andory вне форума   Вверх
Закрытая тема  Создать новую тему
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск





Copyright ©2007 - 2024, FONAREVKA.RU

Powered by vBulletin®
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot

Правила форума | Отказ от ответственности

Время генерации страницы 0.16317 секунды с 17 запросами