Например TDA7294

Форум РадиоКот • Просмотр темы - Программирование ATMega8 с помощью USBASP
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт дек 18, 2025 08:53:41

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 24 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Чт фев 20, 2014 01:58:10 
Родился

Зарегистрирован: Чт май 23, 2013 22:19:27
Сообщений: 17
Рейтинг сообщения: 0
Доброго времени суток!
Пытаюсь научиться программировать (хотя бы залить готовую прошивку в контроллер).
Купил программатор USBASP в Чине, пришел в упаковке, целехонький. Отдали мне контроллер ATMega8L-8PU (кто-то купил программатор, но плату с панельками так и не сделал). Хотел и платку с панельками - да не нашел, пришлось собрать как тут: клац. Вроде собрал правильно, обрывов и КЗ быть не должно.
Соединил плату и программатор вместе, на плату в гнездо 2,1 подал 12В, подключил к ПК. Программатор успешно установился. Продавец в комплект приложил линк на дрова и какие-то проги, да документацию. Вычитал я из приложенных мануалов, что нужно юзать khazama AVR Programmer. Установил, открыл. дальше в инструкции предлагают выбрать файл прошивки - его нет. Вот не задача... В гугл с такими лозунгами: "первый проект atmega8", дальше - сюда. Готового .hex файла нет на сайте. Начинаю читать статью, где говорят, что в предыдущей статье... Иду в предыдущую статью рассматривать код мигалки на C и способы его компиляции. Качаю WinAVR, инсталлирую. Снова в статью, Copy+Paste - готово. Не тут то было! Еще Makefile редактировать... Начинаем... Почти готово.
Цитата:
Ищем строку:

AVRDUDE_PORT = com1 # programmer connected to serial device

Заменяем на:

AVRDUDE_PORT = lpt1

Программатор stk200 использует параллельный порт (lpt).

Но у меня USB программатор. Что делать? Смотрю на время - без 20 полночь. Оставляем по дефолту, вдруг прокатит. Компилим - все ОК.
Иду в первую статью, куда попал из гугла. Там написано:
Цитата:
Запустим Programmers Notepad, откроем пример программы, приведенной в статье "Makefile и компиляция программы". Можно еще раз откомпилировать его командой Tools -> [WinAVR] Make All. После чего загрузим откомпилированный файл my_test.hex в память программ вашего микроконтроллера командой Tools -> [WinAVR] Make Program.

По окончании процесса внизу, в окне "Output", должно появиться сообщение об успешной загрузке

Делаю все, как написано. В итоге:
Цитата:
"make.exe" program
avrdude -p atmega8 -P com1 -c stk200 -U flash:w:my_test.hex
avrdude: port name "com1" is neither lpt1/2/3 nor valid number
avrdude: can't open device "com1"

avrdude: failed to open parallel port "com1"

make.exe: *** [program] Error 1

> Process Exit Code: 2
> Time Taken: 00:00


Цитата:
Оставляем по дефолту, вдруг прокатит.

Не прокатило....

Что ж, возвращаемся к софту от продавца. Открываю мануал, khazama AVR Programmer, где выбираю готовый .hex файл прошивки контроллера на "мигалку", который сам скомпилил в поте лица. Жму "Auto Program", получаю:

Изображение

Изображение

Изображение


Основная задача: запилить такую лампу (или несколько) до 8 марта
Текущая задача: проверить: работает ли программатор и панелька?

Пара вопросов напоследок:
    Что делать с частотой? Как мне выставить эти джамперы (у меня переключатели, как и в варианте платы автора статьи)

    Может ли кто-то скомпилить прошивку под мигалку и закинуть сюда? (а то времени в обрез до 8 марта, а мигалка - просто проверочная стадия)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Чт фев 20, 2014 21:34:17 
Родился

Зарегистрирован: Чт май 23, 2013 22:19:27
Сообщений: 17
Рейтинг сообщения: 0
Сегодня попробовал залить программу этой мигалки по 2 способу из этой инструкции в CodeVision AVR. Та же ошибка. Помогите. Сегодня времени у меня еще на день меньше...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Пт фев 21, 2014 01:24:14 
Мучитель микросхем

Карма: 4
Рейтинг сообщений: 41
Зарегистрирован: Вт фев 09, 2010 17:52:26
Сообщений: 476
Рейтинг сообщения: 0
У вас усб а не сом порт используется, вот его в установках и указывайте.
Попробуйте оболочку типа Sinaprog или Extreme burner для USBASP
http://www.drive2.ru/communities/e-stuff/blog/398036/


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Пт фев 21, 2014 01:31:48 
Родился

Зарегистрирован: Чт май 23, 2013 22:19:27
Сообщений: 17
Рейтинг сообщения: 0
Завтра попробую. А как указать USB? Я предполагал, что USB вешается на виртуальный COM, сразу полез в дисп. устройств (еще тогда), но ничего не нашел или просто забыл где это смотреть.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Пт фев 21, 2014 09:25:39 
Родился

Зарегистрирован: Чт май 23, 2013 22:19:27
Сообщений: 17
Рейтинг сообщения: 0
Попробовал в оболочке USBASP_AVRDUDE_PROG с drive2.ru - та же ошибка.

Цитата:
avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.


avrdude.exe done. Thank you.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Пт фев 21, 2014 23:26:50 
Родился

Зарегистрирован: Чт окт 03, 2013 19:30:03
Сообщений: 13
Рейтинг сообщения: 0
Сам не давно начал этим заниматься, программатор у меня такой же. USBASP_AVRDUDE_PROG все определил с первого раза. Попробуй с командной строки зайти в папку где лежит USBASP_AVRDUDE_PROG и вбей не: avrdude -p atmega8 -P com1 -c stk200 -U flash:w:my_test.hex, а: avrdude -p m8 -c USBASP -U flash:w:my_test.hex
А khazama AVR Programmer у меня ничо не получилось.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Пт фев 21, 2014 23:30:56 
Родился

Зарегистрирован: Чт окт 03, 2013 19:30:03
Сообщений: 13
Рейтинг сообщения: 0
А усб нигде указывать не надо, указывается только программатор USBASP, если он поддерживается, а программой уже подразумевается что он к усб подключен.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Вт фев 25, 2014 00:56:18 
Родился

Зарегистрирован: Чт май 23, 2013 22:19:27
Сообщений: 17
Рейтинг сообщения: 0
Программатор заработал после прозвонки. Оказалось, что на плате с панельками отошел вывод "SCK", который был успешно припаян. Сделал я и мигалку. Взял код из этой статьи, чуть-чуть подправил синтаксис и вот что вышло:

Код:
/************************************************
ПРИМЕР МИГАНИЯ СВЕТОДИОДАМИ
 
*************************************************/
   #define F_CPU 1000000UL  // 1 MHz
   #include <io.h>
   #include <delay.h>

 
   void main(void)              // начало основой программы
   {
 
   DDRD = 0xff;            /* все выводы порта D сконфигурировать как выходы */
        while (1) {              // Бесконечный цикл
            PORTD = 0xff; /* установить "1" на всех линиях порта D */
            delay_ms(250);   // Ждем 0.25 сек.
            PORTD = 0x00;  /* установить "0" на всех линиях порта D */
   delay_ms(250);   // Ждем 0.25 сек.
  }       // закрывающая скобка бесконечного цикла
   }      // закрывающая скобка основной программы


Видео + исходник + проект в CodeVision AVR + файл прошивки(led3.hex): http://yadi.sk/d/_GtxNsJSJV3zz

Завтра поеду за ATtiny13.


Только беда: мне нужно купить ATtIiny в smd корпусе., а как его прошить? Где взять такой переходник с smd на dip? Просто таких контроллеров прошить надо штук пять, не припаивать же...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Вт фев 25, 2014 03:45:02 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 4
Рейтинг сообщений: 48
Зарегистрирован: Вт июн 04, 2013 14:52:20
Сообщений: 162
Откуда: Крым
Рейтинг сообщения: 0
Kolian писал(а):
Где взять такой переходник с smd на dip? Просто таких контроллеров прошить надо штук пять, не припаивать же...

Есть универсальные платы под PLCC и QFP. К ней подпаиваете разьем программатора. А саму микруху прижимаете биндером.
Прошили,проверили запаяли.

_________________
Из всех меломанов, хороший транзисторный звук от хорошего лампового отличить смог только осциллограф...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Ср фев 26, 2014 04:02:50 
Родился

Зарегистрирован: Чт май 23, 2013 22:19:27
Сообщений: 17
Рейтинг сообщения: 0
Appll писал(а):
Kolian писал(а):
Где взять такой переходник с smd на dip? Просто таких контроллеров прошить надо штук пять, не припаивать же...

Есть универсальные платы под PLCC и QFP. К ней подпаиваете разьем программатора. А саму микруху прижимаете биндером.
Прошили,проверили запаяли.


Купил четыре Attiny13A ($0.9 за штуку) в SOIC корпусе. Спросил панельки-переходники с SOIC на DIP. "Были такие" - мне ответили. поинтересовался по чем... $5.3 за один переходничек. Нашел платки, на которых шаг выводов контроллера совпадает с дорожками - купил парочку ($0.1 за шт.). Думал: дело в шляпе. припаиваюсь к дорожкам, другие концы проводков в DIP панельку на плату с панельками, а контроллер прищепкой. Как ни пытался - ничего не вышло. пришлось припаять контроллер. Дорожки слишком короткие, лапки МК не становятся нормально, когда провода припаяны.

Изображение

Изображение

Изображение
_____

Но не все так гладко. Столкнулся я с проблемой: Как выставить фьюзы? У меня есть скрин фьюзов из CodeVision AVR Programmer. Но эта программа не совместима с моим программатором. Однако, в моем арсенале имеется парочка оболочек avrdude: khazahma и USBASP_AVRDUDE_PROG. Прикладываю скрины фьюзов.

Изображение
Это скрин фьюзов из CodeVision AVR Programmer (то, что выложил автор статьи о лампе)

Изображение
Выставление фьюзов в USBASP_AVRDUDE_PROG (я считал с чистого контроллера)

Изображение
Выставление фьюзов в khazahma (я считал с чистого контроллера)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Ср фев 26, 2014 10:58:52 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 4
Рейтинг сообщений: 48
Зарегистрирован: Вт июн 04, 2013 14:52:20
Сообщений: 162
Откуда: Крым
Рейтинг сообщения: 0
Зачем паять провода к дорожкам? :facepalm: там же есть отверстия..... И микруха 100% прижалась бы прищепкой. Ну и можно припаять PLC ножки и вставить платку в разьем на Вашей плате.
Фьюзы....подводный камень всех МК :)))
Вообщем так - лучше почитать тему про них ( благо тут их хватает)

_________________
Из всех меломанов, хороший транзисторный звук от хорошего лампового отличить смог только осциллограф...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Ср фев 26, 2014 12:49:42 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 889
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6199
Откуда: Minsk
Рейтинг сообщения: 0
И не надо так кричать ! :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Ср фев 26, 2014 15:15:58 
Родился

Зарегистрирован: Чт май 23, 2013 22:19:27
Сообщений: 17
Рейтинг сообщения: 0
Jack_A писал(а):
И не надо так кричать ! :)

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Ср фев 26, 2014 16:43:42 
Родился

Зарегистрирован: Чт май 23, 2013 22:19:27
Сообщений: 17
Рейтинг сообщения: 0
Так что с фьюзами? Уто-нибудь можкт показать мне каки фьюзы выставлять в khazahmaили другой оболочке? Я приложил нужные фьюзы, только в другой программе, не понимаю только как преобразовать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Ср фев 26, 2014 20:44:27 
Родился

Зарегистрирован: Чт май 23, 2013 22:19:27
Сообщений: 17
Рейтинг сообщения: 0
Appll писал(а):
Зачем паять провода к дорожкам? :facepalm: там же есть отверстия..... И микруха 100% прижалась бы прищепкой. Ну и можно припаять PLC ножки и вставить платку в разьем на Вашей плате.
Фьюзы....подводный камень всех МК :)))
Вообщем так - лучше почитать тему про них ( благо тут их хватает)


Уже припаял. Хорошо, что пару плат купил... Паял в час ночи, соображалка не очень работала. Еще 3 Чипа ждут своей очереди :dont_know:
Какие темы, например...
Может фьюзы дефолтные оставить, просто прошивку закачать? И попробовать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Ср фев 26, 2014 22:13:51 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 4
Рейтинг сообщений: 48
Зарегистрирован: Вт июн 04, 2013 14:52:20
Сообщений: 162
Откуда: Крым
Рейтинг сообщения: 0
вот здесь найдете все что нужно
и еще соберите вот такой девайс - он Вам пригодиться )))

_________________
Из всех меломанов, хороший транзисторный звук от хорошего лампового отличить смог только осциллограф...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Ср фев 26, 2014 22:22:15 
Родился

Зарегистрирован: Чт май 23, 2013 22:19:27
Сообщений: 17
Рейтинг сообщения: 0
Appll писал(а):
вот здесь найдете все что нужно
и еще соберите вот такой девайс - он Вам пригодиться )))


Уже нашел)) Попал в эту тему, а потом на этот сайт, только аваст начал гавкать, что вирусы, но на win 8 пустил, на XPюше сказал, что страница недоступна... Пробежался по фьюзам для своего контроллера, почитал что к чему, помогло немного))) Выставил фьюзы так:

Изображение

Прошил их и прошивку залил. Сейчас в устройство МК впаяю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Чт фев 27, 2014 01:53:10 
Родился

Зарегистрирован: Чт май 23, 2013 22:19:27
Сообщений: 17
Рейтинг сообщения: 0
Заработала "лампа" :beer: . Перепаял на красный кристалл резистор с 9 на 13 Ом, но все равно красного многовато. Цвет плавно меняет: красный --> розовый --> серый --> белый --> белый с зеленым оттенком --> красный --> розовый -->...... Короче, вот фотки (не один фотик на видео запечатлеть не смог, только глаз видел, изменение цвета не такое значительное)


Изображение

Изображение

Изображение





Хотелось бы, чтобы доходило до чистых цветов (красный, синий, зеленый), плавно меняя оттенки, среди которых желтый, пурпурный, голубой и другие. Возможно ли это в данном коде?

Код:
/*
* MoonLamp.c
*
* Created: 29.04.2012 16:12:53
*  Author: Trol
*/
#include <avr/io.h>
#include <stdlib.h>
#include <avr/interrupt.h>
uint8_t currentColor[3];
uint8_t startColor[3];
uint8_t nextColor[3];
#define currentR currentColor[0]
#define currentG currentColor[1]
#define currentB currentColor[2]
#define startR startColor[0]
#define startG startColor[1]
#define startB startColor[2]
#define nextR nextColor[0]
#define nextG nextColor[1]
#define nextB nextColor[2]

uint16_t tickBeforeChange;
#define TIMER_FREQUENCY 9600000
#define TIMER_OVERFLOW_FREQUENCY (TIMER_FREQUENCY/0xff)

static uint8_t calculateColor(uint8_t from, uint8_t to, uint16_t tm);
static void calcNextPoint();

/**
* Timer overflow interrupt. Used for PWM implementation
* Called with TIMER_OVERFLOW_FREQUENCY frequency
*/
ISR(TIM0_OVF_vect){
static uint8_t cnt_0 = 0;  // PWM counter
static uint16_t cnt_1 = 0;  // counter for next color recalculation

if ( cnt_0 == 0 ) {
  // recalculate bright
  currentR = calculateColor(startR, nextR, cnt_1);
  currentG = calculateColor(startG, nextG, cnt_1);
  currentB = calculateColor(startB, nextB, cnt_1);
 
  cnt_1++;
  if ( cnt_1 >= tickBeforeChange ) {
   cnt_1 = 0;
   calcNextPoint();
  }
}

// update channels
uint8_t output = 0;
if ( currentR >= cnt_0 ) {
  output |= _BV(0);
}
if ( currentG >= cnt_0 ) {
  output |= _BV(1);
}
if ( currentB >= cnt_0 ) {
  output |= _BV(2);
}
PORTB = output;

cnt_0++;
}

static uint8_t calculateColor(uint8_t from, uint8_t to, uint16_t tm) {
uint32_t percent = 0xff;
percent *= tm;
percent /= tickBeforeChange;
int res = from + (to - from) * percent / 0xff;
return (uint8_t)res;
}
static uint8_t rndColor() {
return 30 + (random() % 220);
}
static void calcNextPoint() {
startR = nextR;
startG = nextG;
startB = nextB;
nextR = rndColor();
nextG = rndColor();
nextB = rndColor();
uint8_t rnd = random();
uint8_t indx = rnd % 3;
nextColor[indx] = 0;
rnd = 30 + rnd % 120; // time to change color, sec/10
tickBeforeChange = (TIMER_OVERFLOW_FREQUENCY/0xff)*rnd/10;
}

int main(void) {
nextR = 0;
nextG = 0;
nextB = 0;
calcNextPoint();

DDRB = 0xff;
TCCR0B = _BV(CS00);  // disable prescaler for timer
TIMSK0 = _BV(TOIE0); // enable timer overflow interrupts
sei();     // enable global interrupts
    while (1) {
    }
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Пн мар 03, 2014 02:34:35 
Родился

Зарегистрирован: Чт май 23, 2013 22:19:27
Сообщений: 17
Рейтинг сообщения: 0
Написал я автору, спросил в чем проблема, он посоветовал выпаять МК и добиться белого свечения СИД, подключив питание к 3-м кристаллам, методом подбора резисторов. И поделился новой прошивкой. теперь заметно, что это "Лампа настроения". Видео тут


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATMega8 с помощью USBASP
СообщениеДобавлено: Ср мар 12, 2014 13:16:46 
Друг Кота

Карма: 49
Рейтинг сообщений: 547
Зарегистрирован: Чт фев 20, 2014 18:57:55
Сообщений: 19492
Рейтинг сообщения: 0
Напишу сюда...

Столкнулся с проблемой - не шьется мега8 USBASP'ом и все тут, вообще не видится. Пришлось расковырять USBASP и запаять перемычку "Slow SCK", после чего фьюзами выставил 2 мгц внутренний генератор и тогда оно заработало нормально без "Slow SCK" (с ним уж больно медленно). Не помню точно чем я до этого шил меги8, мне казалось этим же девайсом и "Slow SCK" не требовался, может глючу.

_________________
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  1,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Starichok51 и гости: 29


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y