Полная версия этой страницы:
Еще один глюк ATmega8
Дмитрий
Jul 17 2004, 16:06
creator@bazarov.netГоспода, с появлением ATmega8 приобрел себе кучу проблем (на 4433 все работало безотказно). Проблема в том что я просто не могу запустить контроллер с кварца (кварц 8 Мгц, обвеска 2х22пф на "землю"), однако стоит прикоснуться отверткой (пинцетом, топором) до XTAL1, то вроде бы запускается, но естественно криво, но генерация присутствует. Пробовал вешать не reset разные дистрибьюторы.....но все тщетно. Кто подскажет в чем беда? Биты конфигурации как я думаю выставлены верно (в соответствии с даташитом).
Gordon
Jul 18 2004, 05:51
Да каких годков......свежак, привезли из столицы ATmega8-16PI а потом неделю назад купил ATmega8L-8PI - таже история! уже голову сломал, непойму в чем дело!
creator@bazarov.net
У этого контроллера есть конфигурационный бит (fuse bit) включающий внутренние конденсаторы на кварце - может быть в этом проблема.
Лично я не сталкивался с подобной проблемой при использовании 8 меги.
Gordon
Jul 18 2004, 08:55
Проскасивала у меня и такая мысль, но я ради интереса перепробовал все комбинации установки битов конфигурации.
меня кварцы, ставил разные емкости, убирал их вообще.
Самое интересное что в праграмматоре то он шьется, значит кварцом в программаторе от пускается...или я не прав?
Могу прикрепить схему данного девайса, посмотрите, но там мне кажется все идеально :-))
4433 мне уже не достать, надо как то пускать атмегу8, иначе я просто незнаю что делать :-(((
А может дело не в баяне? может просто программа не работает? А когда кварц пинцетом трогаешь, то оно начинает глючить по другому и начинают исполняться какие-то куски кода. Как-то у меня такое было, тоже долго парился, правда на at90s1200
обрати внимание на вектора прерываний и другие особенности новой микрухи
Gordon
Jul 19 2004, 07:31
Да именно так и есть, исполняет какие-то куски кода ( например вроде работает все, но на индикаторы выводятся не все сегменты цифры).
Проверял на эмуляторе AStudio - так вроде бы там все работает.
А ежели попробовать от внутреннего генератора (или от внешнего)- как то программа себя поведет ?
Gordon
Jul 20 2004, 16:08
Дык пробовал - не пусчается он!
Мне кажется,
jeka прав:
Цитата
обрати внимание на вектора прерываний и другие особенности новой микрухи
Таблица прерываний должна быть заполнена полностью, либо нужно примемять директиву
.org перед инструкцией перехода на обработчик прерывания. Наступал на грабли, когда переползал с семейства classic на mega. У mega под вектор прерывания отведено два слава (чтобы применять
jmp, а у classic одно для
rjmp. Может в этом дело?
Буквально неделю назад.
Столкнулся с подобным глюком, но при замене AT90S8515 на
ATmega8515.
Предыдущая микруха работала в серийном изделии несколько лет.
Когда же заставил себя заново просмотреть весь код, то нашел сразу парочку
грубых ошибок. Первая как и говорилось ранее в форуме, была связана с обработчиком прерываний (не сохранял регистр состояний), а вторая была связана с инициализацией регистров при старте (не делал).
После правки все заработало.
Но, переход с AT90S8535 на ATmega8535 так и не получился, все работает нормально, кроме АЦП. Почему-то ошибка измерений выросла
почти в два раза
У меня мега8 с кристалом 11м работает но при этом уровень генерации около 0.5в хотя с другим процом 1200 проблем не было (при остальных комбинациях бита вообше встает)
Цитата(alt @ Jul 23 2004, 06:29 PM)
Но, переход с AT90S8535 на ATmega8535 так и не получился, все работает нормально, кроме АЦП. Почему-то ошибка измерений выросла
почти в два раза
Выборка АЦП производится при остановленой програме или в фоновом режиме (в последнем соответсвенно наводок больше). Попробуй небольшую емкость на землю от входа АЦП. Можеш также попробовать с L кристалом (низко скоросным).
Выборка действительно идет в фонофом режиме. Но проблема не в шумах.
Скорость работы At90S8535 та же, что у Atmega8535, а ошибка измерений в случае Atmeg -и значительно больше.
Цитата(anton @ Aug 6 2004, 07:14 PM)
У меня мега8 с кристалом 11м работает но при этом уровень генерации около 0.5в
Было такое с мегой 128. В один прекрасный момент глюкнула. Перепробовал все возможные варианты, не запустилось. Пришлось выкинуть.
grumbler
Sep 8 2004, 00:06
Цитата(Дмитрий @ Jul 17 2004, 08:06 PM)
creator@bazarov.netГоспода, с появлением ATmega8 приобрел себе кучу проблем (на 4433 все работало безотказно). Проблема в том что я просто не могу запустить контроллер с кварца (кварц 8 Мгц, обвеска 2х22пф на "землю"), однако стоит прикоснуться отверткой (пинцетом, топором) до XTAL1, то вроде бы запускается, но естественно криво, но генерация присутствует. Пробовал вешать не reset разные дистрибьюторы.....но все тщетно. Кто подскажет в чем беда? Биты конфигурации как я думаю выставлены верно (в соответствии с даташитом).
Странно а нам удалось без проблем переползти с 2233 на atmega8,
всё делали по инструкции и проекта три перетащили...
Serjio
Sep 13 2004, 12:26
В Codevision ставим галочки
CKSEL0
CKSEL1
CKSEL3
SUT0
CKOPT
Пишем fuse, потом программу - работает от внутреннего RC на 8 мегагерц.
Редко (раза 2) наблюдался слет на внешний генератор. После перепрошивки Fuse все работало. Пишем в достаточно большом количестве. Иногда полезно прогнать программу в V*MLABе - бывают глюки, которые там отлавливали.
DimonD
Feb 16 2005, 09:21
Что-то похожее у меня было… помогло заземление корпуса кварца
Господа с негенерящими кварцами, а вы не забываете параллельно кварцу ставить резистор ~1М ?
Об этом почти во всех FAQ-ах написано. При 5в обычно и так работает, а при 3в без резистора очень ненадежно.
У многих других низковольтных процессоров этот резистор в доке есть.
Наверное ты зря ее выкинул.
Ели просто так тыкать fuse bit
то можно выйти на режим внешнего генератора
а потом она только с ним и будет работать
перешивать fuse bit тоже придется с внешним генератором
Sergio66
Mar 10 2005, 17:33
Сталкивался с подобной проблемой на Меге 16. Дело (у меня) оказалось в том, что изначально в загрузчике прошивались биты конфигурации для работы от ВНЕШНЕГО!!! RC генератора. Сдвинуть кристалл после этого можно только подцепив этот самый внешний RC генератор. В противном случае очень похоже на вашего больного.
Проверьте биты конфигурации CKSEL0, CKSEL1.,..
PowerF1
Mar 13 2005, 11:38
Ребята, подскажите есть ли методы определения неполадок в работе мк кроме как экспериментировать с ним.
У меня проблема- АТmega8 c внешним кварцем на 4 MHz не работает, хотя прошивается без проблем. Конф биты выставляю номально. Программка самая простая с использованием UART, без прерываний, на 30 срок, ошибок в ней нет. Ан не работает.
Поставил ATmeg-у, подбатареил ее на случай пропадания сетевого питания,
включил detector падения напряжения. Питание пропало, батареи разрядились. И она у меня несколько раз ресетнулась. Типа - питание ниже
заданного уровня - ATMega отключилась, батареии както восстановились - питание поднялось - ATMega снова стартанула и через небольшое время опять батареии сдохли.
Плохо сделано, должна быть дельта. В результате несколько дней ставил эксперименты.
arttab
Mar 14 2005, 06:53
Увеличение напряжения на батареи при отключении нагрузки проблема известная. и дельта тут не поможет. нада самому думать что сделать: пробуждать мк после появления внешнего питания, отрубаться полностью от батареи до внешнего сброса или замены батарии,....
В принципе да, просто дельта в несколько десятых V спасла бы в конкретной ситуации
А может на самом деле работает.
Попробуйте написать что нибудь коротенькое типа ногой подрыгать в цикле
это легко проконтролировать
Может у вас с UART проблеммы.
PowerF1
Mar 16 2005, 18:53
Уже работает. А все было из-за них. Как раз fuse биты выставлял неправильно. Интересно, кто вStudio догадался сброшенный бит обозначать галочкой, а установленный, наоборот, пустым. Я, как неопытный чел поддался провокации, и выставил значения fuse битов. Естествено они оказались прямо противоположными нужным. Потому и не работало. Но почитал доку и разобрался.
ATMELщики меня удивили и разозлили
PowerF1
Mar 16 2005, 19:21
Глупость сказал. И быстрей хочу поправиться. Конечно же не в Studio, а в PonyProg.
Атмелщики делают так. unprogrammed бит у них соответствует 1, programmed бит - 0. Казалось бы, должно быть наоборот.
В PonyProg лишь следуют решениям ATMELa. Поэтому установленный бит соответствует пустому окошку, сброшенный- с галчкой. Здесь и была путаница.
IgorKossak
Mar 17 2005, 08:44
Цитата(PowerF1 @ Mar 16 2005, 22:21)
Атмелщики делают так. unprogrammed бит у них соответствует 1, programmed бит - 0. Казалось бы, должно быть наоборот.
В PonyProg лишь следуют решениям ATMELa. Поэтому установленный бит соответствует пустому окошку, сброшенный- с галчкой. Здесь и была путаница.
Я в таких случаях сначала делаю чтение и пытаюсь определить, в чём же состоят "понятия" писателей ПО.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.