Полная версия этой страницы:
помогите! горят AVR-ы!
Br.Misha
Feb 24 2009, 21:03
Сдрасте!
Вчера купил себе мегу8, написал прогу для ШИМ чтобы просто поиграться яркостью светодиода, спаял на макетке схему залил прошивку, отсоеденил программатор от МК но светодиод вообще не горел. После этого я написал самую простую программу чтобы просто зажечь светодиоды на порту В и С, но светодиоды на этих лапах всервно не горели. Тут я ещё немного поюзал его но никакого положительного эфекта небыло - прошивался нормально, но не работал. Я решил что МК просто нерабочий. Больше дома у меня ниодной АВР-ки не оставалось. Но я нашел на полке один девайс, котороый я делал для измерения частоты (импульсы на INT1) на 90S2313. включил - работает. Потом мне захотелось сделать чёт прикольное и я прицепил на INT1 ИК приемник. Включил - он не работает. отпаял приемник - тоже не работает. Потом подумал перепрошить МК. Подключил программатор, очистил кристал, залил прошивку, включаю - а оно опять не работает. Я и с этим долго возился и как вы уже догадались, безрезультатно, программатор его видет, нормально заливает прошивку но сам МК не работает. Вот у меня терь возникла мысль что я спалил те МК статикой или паяльником (хотя МК стоял в панельке и прямо ножку той панельки я не паял).
Народ, может кто знает в чем причина? Я полазил по этом форуму и увидел тут несколько оч опытных людей, может в вашей практике тоже такое случалось?
Просто не исключено что у следующего МК который я буду юзать появляться те же симптомы.
Зараней СПАСИБА!!!
kurtis
Feb 24 2009, 22:38
Микросхемы проходят верификацию после загрузки прошивки? Т.е. прочитать из них что-то можно?
DpInRock
Feb 25 2009, 00:18
Какие fuses запрограммированы? Какова схема включения?
domowoj
Feb 25 2009, 01:55
Если программатор нормально прошил МК, то(как сказано ранее) - фузы.
(при условии правильности самой программы)
Если процессор шьется, двести процентов что он рабочий, схему, программу и фюзы в студию.
Mik174
Feb 25 2009, 07:07
Частая ошибка новичков - неверная запись фузов, определяющих источник тактирования.
При этом контроллер один раз прошивается, после чего не работает прошитая программа и больше не отзывается при программировании - он же не стартовал, т.к. не затактирован верно.
Для "лечения" - подать тактовый сигнал от внешнего генератора, МК при этом заведется, и перешить на правильное положение фузы.
Я пользуюсь программатором avreal (http://ln.com.ua/~real/avreal/index.html)
Для удобства работы сделал текстовый командный файл PROGRAM.BAT с записанными в него настройками программирования.
Пример содержания такого файла у меня:
avreal32.exe +mega16 -p378 -as -fCKSEL=f,SUT=3 -ebvw -c 1.hex
-fCKSEL=f,SUT=3 - означает записать фузы в состояние когда используется внешний кварцевый резонатор
-p378 - программатор подключен к порту LPT1
Теперь в процессе работы при необходимости прошить программу, достаточно просто запустить этот файл на выполнение.
Исполняемый файл программатора, avreal32.exe, файл прошивки, в моем случае 1.hex и командный файл PROGRAM.BAT должны быть в одной папке.
Для ATmega8 должно быть аналогично, только надо указать нужный тип микроконтроллера "+mega8"
Ну с мегой-то понятно, там скорее всего фузы. А AT90S2313 - ??? В нем же нету насколько я помню Fuse bits?
prottoss
Feb 25 2009, 11:24
После прочтения первого поста сразу возникает мысль, что просто не рабочая программа пишется, вот ничего и не работает.... Как в анекдоте - " - чего машину то поменял??? - Дааа...эта...пепельница полная":)
По теме - приведите программу, которую написали для первой ATmega8. Ту, которая самая простая. И не забудьте сказать, к какому порту Вы ее прицепили.
VladimirYU
Feb 25 2009, 11:34
Цитата(prottoss @ Feb 25 2009, 14:24)

После прочтения первого поста сразу возникает мысль, что просто не рабочая программа пишется, вот ничего и не работает.... Как в анекдоте - " - чего машину то поменял??? - Дааа...эта...пепельница полная":)
По теме - приведите программу, которую написали для первой ATmega8. Ту, которая самая простая. И не забудьте сказать, к какому порту Вы ее прицепили.
А по моему, автор уже нашел у себя ляп, обхохотался и тему для себя закрыл.
Br.Misha
Feb 25 2009, 13:25
Ничего я не нашел!!! просто я тему создал вчера вечером, перед тем, как спать, утром комп не включал и только щас вернулся дамой.
кароче фузы для мега8 выставлены так, как на скрине в первом посте (для внутренего на 8МГц).
Только вот мне щас интересней что случилось с AT90S2313, ведь там фузов никаких я не выставлял. а программа 100 пудофф. рабочая. ведь перед тем, как загружать её второй раз в МК она работала. а щас не хочет ((((((
DpInRock
Feb 25 2009, 13:32
Либо делайте что вам говорят, либо мозги не канифльте своими проблемами.
Где фузы, где схема, где программа? Где скрин, о котором вы твердите? Ваша внимательность оставляет желать самого лучшего, видимо.
Br.Misha
Feb 25 2009, 14:01
Упс

я оч извиняюсь, действительно забыл скрин оставить.
Вот программа для мега8:
Код
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 4000000UL
int main(void)
{
DDRB = 0xFF;
PORTB = 0xFF;
DDRC = 0xFF;
PORTC = 0xFF;
}
prottoss
Feb 25 2009, 14:13
Цитата(Br.Misha @ Feb 25 2009, 21:01)

Светодиоды то как подключены?

Загорятся, в Вашем случае, если анодом через резистор ~330 Oм - 510 Ом (к примеру) к порту, катодом к минусовому проводу источника питания.
DpInRock
Feb 25 2009, 15:23
Эта программа работать хорошо и правильно не обязана. Так программы не пишут. Вернее, пишут те, которым лом посмотреть как другие пишут. Хоть цикл бесконечный вставить надо. Мало ли что там дальше в памяти будет....
Где схема?
Br.Misha
Feb 25 2009, 15:41
именно так я и подключил, тока резы на 220 ом.
esaulenka
Feb 25 2009, 16:30
На ноге резета какой уровень?
Уже два раза по этим граблям ходил
VladimirYU
Feb 26 2009, 07:14
Цитата(Br.Misha @ Feb 25 2009, 17:01)

Упс

я оч извиняюсь, действительно забыл скрин оставить.
Вот программа для мега8:
Код
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 4000000UL
int main(void)
{
DDRB = 0xFF;
PORTB = 0xFF;
DDRC = 0xFF;
PORTC = 0xFF;
[b]while(1) _WDR(); // ну хоть чего-нибудь подобное[/b]
}
А то ведь,что там дальше ведает только АЛЛАХ...
Br.Misha
Feb 26 2009, 19:34
Народ!!!!!
Только что попробовал чё нить запрограммировать через ICCAVR. Написал програмку загрузил в МК (90S2313) и она заработала!!!! там был припаян сегментный индикатор и на нем появились цифры.
На меге8 все равно не получаеться ничего сделать, но дело не в этом. Я насколько понял, проблема с настройками ЛПТ. В биосе ничего не менял поэтому я думаю что какой та софт мешает нормально програмить МК. Если у кого нить есть мысли о том, что же все таки не так с настройками порта, прошу откликнуться.
PS: WinXP Professional SP2
DpInRock
Feb 26 2009, 19:46
Ни хрена ты ничего не понял.
Br.Misha
Feb 26 2009, 20:49
Шо значит "нихрена"?
DpInRock
Feb 27 2009, 00:48
А то и значит, что если не умеешь обращаться с процессором и мало что знаешь - строго и четко выполняй инструкции знающих. И отвечай на вопросы, если хочешь получить помощь.
Атмега8 не может не работать. Только у альтернативно одаренных.
Да и программы даже для проверки вы писать совершенно не умеете.
И при всем при этом не следуете ни чьим советам.
Br.Misha
Mar 2 2009, 12:52
Теперь я понял в чем причина!
У меня почему то не работают в мк тока те прошивки, которые написаны на WinAVR or AVRStudio. Даже с ковижена пробовал, и те работают.
У меня установлен astudio4b623 совместно с WinAVR-20081205
Вы demo проект из WinAVR собирать пробовали, там где светодиод шимом светят? Он у Вас работает?
VladimirYU
Mar 4 2009, 06:56
Цитата(Br.Misha @ Mar 2 2009, 15:52)

Теперь я понял в чем причина!
У меня почему то не работают в мк тока те прошивки, которые написаны на WinAVR or AVRStudio. Даже с ковижена пробовал, и те работают.
У меня установлен astudio4b623 совместно с WinAVR-20081205
Это все из области Ваших фантазий. Изучение матчасти никто не отменял.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.