Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: да что же я не так делаю? mega64 и 128
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2
d71
что я не так делаю?
не получилось стартовать м128, ладно, сваял вторую плату и воткнул м64

память читаю и пишу, но ногами не дрыгает
--
может я как-то не так подошел к кристалу?

на меге16 достаточно было подать питание и всё...
блин, я щас её об стену жахну - провалил разработку по времени...
ненавижу это долбанутое создание...
Самоделкин
Пямять ето хорошо .А что с фузами ? Просто если установлен внешний кварц или внешний генератор долго прийдеться ждать когда "задрыгает " без них :-).
В меге16 сразу установлен внутрений генератор .
Между прочим еще не мало зависит чем (из какой програмы ) програмировать фузы . ;-)
CV память пишет и читает нормально а вот фузы :-( .
d71
а как бы я писал и читал память если у меня тактования не было?

ну что может быть проще этого?:
Код
.include "m64def.inc"

.def temp = r16

    rjmp RESET

reset:
    ldi temp,$ff


    out DDRB,temp
    out PORTB,temp

    out DDRD,temp
    out PORTD,temp


    out DDRC,temp
    out PORTC,temp

forever: rjmp forever

и не дрыгает ногами sad.gif

может куда еще питание подать надо? или наоборот не подавать?...
defunct
Цитата(d71 @ May 3 2007, 06:03) *
ну что может быть проще этого?:
Код
    ldi temp,$ff
    out DDRB,temp
    out PORTB,temp

и не дрыгает ногами sad.gif

А что ожидаете от этой программы? Дрыгать ногами она и не будет, там ведь постоянно все 1..
1. В проекте - выбрать правильно MCU.
2. Fuse M103C убрать.
Более подробно расписать - что ожидаете от программки и что получается, чем меряете и как.
Подключить светодиоды, к земле и к Vcc, выдавать на порты "зебру" 01010101.

PS: тратить время на такие тесты Imho лишнее, ведь можно просто подключиться через JTAG да подергать ногами из студии.
Kovrov
У меня как то раз тоже крыша чуть не съехала
пол часа думал почему в студии через джи таг не дергает ногами
уш я и так и эдак - ну ни в какую
----------
оказалось что забыл выбрать сам джи таг - а работал в симуляторе
:-))
m16
посмотрите свой код : инициализация портов на вывод и выдча в них единиц и фсё. а далее вот это:
Код
forever: rjmp forever

и дёргается увас процик в бесконечном цикле :о))
d71
дак как дергать если единиц нету на ногах sad.gif
как только увижу единички, конечно устрою светопредставление светодиодное на тестовой плате

но нет тама единиц-то
--
щас точно об стену её разотру
nss
Цитата(d71 @ May 3 2007, 05:43) *
что я не так делаю?
не получилось стартовать м128, ладно, сваял вторую плату и воткнул м64

память читаю и пишу, но ногами не дрыгает
--
может я как-то не так подошел к кристалу?

на меге16 достаточно было подать питание и всё...
блин, я щас её об стену жахну - провалил разработку по времени...
ненавижу это долбанутое создание...

А схемку включения с минимальной обвязкой (внешний кварц, подтягивающие резюки, цепь сброса) не кините?
Что у вас с линией PEN и RESET творится.
m16
Цитата(d71 @ May 3 2007, 09:14) *
щас точно об стену её разотру

начнём с питания : GND- 22,53,63 +5в- 21,52,62, 64
ноги для программирования: MOSI - PE0, MISO- PE1, SCK -PB1
PEN- в воздухе либо подттянут к +5
у вас всё так?
d71
+5 на всех (21,52,64) кроме AREF (62)
земля на всех (22,53,63)
PEN в воздухе
ноги програмирования как положено (11,2,3)
Jury093
Хм.. может я чего то не понимаю.. Может все же чуть поправить листинг примерно так:

.include "m64def.inc"
.def temp = r16
rjmp RESET
reset:
ldi temp,$ff
out DDRB,temp
out DDRD,temp
out DDRC,temp
forever:
ldi temp,$ff
out PORTB,temp
out PORTC,temp
out PORTD,temp
ldi temp,$00
out PORTB,temp
out PORTC,temp
out PORTD,temp
rjmp forever

и смотреть осциллографом на пины портов Б, Ц и Д а не на светодиоды ;-)

Цитата(d71 @ May 3 2007, 08:03) *
ну что может быть проще этого?:
Код
.include "m64def.inc"
.def temp = r16
    rjmp RESET
reset:
    ldi temp,$ff
    out DDRB,temp
    out PORTB,temp
    out DDRD,temp
    out PORTD,temp
    out DDRC,temp
    out PORTC,temp
forever: rjmp forever

и не дрыгает ногами sad.gif

может куда еще питание подать надо? или наоборот не подавать?...
nss
Цитата(d71 @ May 3 2007, 11:20) *
+5 на всех (21,52,64) кроме AREF (62)
земля на всех (22,53,63)
PEN в воздухе
ноги програмирования как положено (11,2,3)

Подтяните ногу PEN через резюк к питанию и будет вам счастье. smile.gif
Igor26
Цитата
Подтяните ногу PEN через резюк к питанию и будет вам счастье.

Сомневаюсь. Я никогда этот вывод никуда не притягивал и счастье было всегда.

По теме. Недавно было обсуждение нечто подобного. Проблема, помоему, там была в том, что устройство питалось от 3,3V, а схема BOD была настоена на 4V. В результате процессор всегда был в ресете. Помоему, здесь нечто похожее.
Нет?
GDI
Обсуждалось, причем и автор тот же.
Igor26
Цитата
причем и автор тот же


Да уж... Это уже не смешно.
nss
Цитата(Igor26 @ May 3 2007, 14:15) *
Сомневаюсь. Я никогда этот вывод никуда не притягивал и счастье было всегда.

По теме. Недавно было обсуждение нечто подобного. Проблема, помоему, там была в том, что устройство питалось от 3,3V, а схема BOD была настоена на 4V. В результате процессор всегда был в ресете. Помоему, здесь нечто похожее.
Нет?

У меня была аналогичная ситуация.
По SPI в режиме программирования все читалось и писалось.
Но увы после это контроллер не стартовал.
После подтяжки на PEN в стало работать отлично.
Хоть в даташитах и сказано что там есть PullUp резистор.
defunct
Цитата(nss @ May 3 2007, 12:38) *
После подтяжки на PEN в стало работать отлично.
Хоть в даташитах и сказано что там есть PullUp резистор.

Хм.. может коротыш на плате был? Рядышком RxD0 на котором при стартапе запросто может быть 0.
Igor26
Цитата
может коротыш на плате

... или этот участок платы плохо промыт от флюса.
Цитата
После подтяжки на PEN в стало работать отлично

А установка подтягивающего резистора на PEN - это, помоему, борьба со следствием, а не с причиной.
d71
Отчитываюсь
(пусть меня тут считают лохом, создающим тупые темы по нескольку раз подряд, я не обижаюсь - результат мне важнее)

И так кристал завелся.
Что я сделал: отрезал все ноги от всей перефирии, оставил одну на светодиоде.
Никакого результата - пишу/читаю - не стартует
BOV, BOVLEVEL и так и сяк, внешний, внутренний осцилятор, всё без толку. PEN и подтягивал и выставлял.
попсиховал... (раз сто наверно)
Вертаю все фузы на место, делаю сброс PEN вместе с RESET - опа - нога задрыгалась светодиодом!

Больше не разбирался - времени сейчас нет - писать надо и женить с переферией. Когда будет время объязательно разберусь, пока работаю так.
----
всем спасибо, можно тему закрывать.
m16 - тебе отдельное спасибо : )
Motion
Аналогичная ситуация с ATmega 16. Записал тестовую программу в память - выдать на все порты 1. При включении питания там ничего нет.

Из обвязки стоит только резистор на 5кОм с питания на Reset и конденсатор на 220нФ между питанием и землёй.

Подскажите, пожайлуста, что делаю не так.
brag
и у меня похожее с Atmega64 и Atmega128. глюк один в один.
Пробовал и внешний,и внутренний генератор. Подтяжки всякие, кондеры. ничего не получилось. Питание нормальное. Кондеры на ногах стоят. земля - полигон,все четко. VCC толстое. 5в. никогда раньше с другими (atmega88,atmega162,atmega8,attiny2313) проблем небыло. все работало, как часы. а тут на тебе..
Думал, галимые кристаллы, купил у дрогого поставщика. результат тот же. оно вроде стартует,но на хз какой частоте. или воожще хз как.при работе со стеком слетает. либо вообще виснет,либо ресетится или хз еще что, код на асме,простой до безобразия. запустил uart, внутренний рц на 1мгц,фюзы - дефолт. пашет,но с частотой в 2 раза выше(на 9600 вместо UBRR=6 ставлю UBRR=12, тогда символ передается правильно). но стоит че-то сделать по-серьезнее, скажем вызвать функцию(простую,содержащую только ret) оно все виснет. или скажем,записать что-то в SRAM или push.
Хоть бери да делаю новую плату и ставь туда ARM, филипс какой-нить(тоже никогда не подводили)



Шил avrdude, которым всегда все шил и никогда проблем небыло.
компилил и gas-ом, и avra, и своим ассемблером(когда-то от нефиг-делать написало свой асм под avr,arm,c166)

Пробовал PEN вместе с RESET - тоже ничего не дало

Не ужели чип такой? или может я все что-то не так делаю? Схема простейшая. мега, кондеры на питалово, пулл-апы,кварц с кондерами,дорожки. флюс смыт.
Один раз она у меня запустилась,немного поработала, и усе,опять то же самое началось.при чем поерестала работать после того,как плату перенес на другой стол.а начала работать после того,как не правильно втыкнул разем программирования smile.gif дикость какая-то....
снимал кристалл,звонил дорожки - все нормал...
видно атмел левак гонит smile.gif
Qwertty
Цитата(brag @ Feb 9 2008, 19:35) *
или воожще хз как.при работе со стеком слетает.
...
но стоит че-то сделать по-серьезнее, скажем вызвать функцию(простую,содержащую только ret) оно все виснет. или скажем,записать что-то в SRAM или push.

А совместимость с М103 отключена? Иначе так и будет - стек будет расположен в несуществующей области ОЗУ...
brag
думаете,я не не пробовал его в другое место ставить?
Отключена. пробовал вкюлчать,еще хуже ставало..

Что посоветываете? копать дальше или переделать все на LPC2104,скажем...?
Я вообще в шоке от такого поведения 4х микросхем,2х атмег64,2х атмег128
Qwertty
Цитата(brag @ Feb 9 2008, 21:24) *
думаете,я не не пробовал его в другое место ставить?
Отключена. пробовал вкюлчать,еще хуже ставало..

Что посоветываете? копать дальше или переделать все на LPC2104,скажем...?
Я вообще в шоке от такого поведения 4х микросхем,2х атмег64,2х атмег128

У всех остальных все работает. Я использую и 64-ю и 128-ю в серийном изделии. Никогда такого не видел, чтобы не работало. Либо с питанием траблы, либо с разводкой либо с программой. Первые два пункта Вам придется смотреть самому. С программой можем помочь - выкладывайте тестовый исходник.

PS. А не поделитесь своим ассемблером под AVR и под ARM? Интересно попробовать что-то нестандартное.
brag
Первые 2 все ок.

Исходник немного большой,но сути не меняет. могу дать дизасм листинг...
Пробовал и простой вариант,без C,в одном файле. те же глюки. счас попробую мегу на проводках подцепить,без платы и запустить,скажем UART..
Qwertty
Сейчас придет модератор и за такое даст горстку орешков. Это следует прикреплять в файле. Вообще для теста великовато, ли это только мне кажется? В такой пограмме может быть куча чисто программных глюков. Может проводить испытания КРИСТАЛЛА на более простом тесте?
brag
та на простом то же самое...скажем,в другом место сложного теста,где есть цикл,он может в него погрузится...

wse файлы - архивы tar.bz2

гы. Запускается,если коротнуть питалово. потом работает,даже после ресета или перепрошития. Аж, пока не выключишь питалово и снова не включишь.. Потом обять стабильно запускается с коротилки. при чем коротить надо там,где толстая дорожка(пару милиметров)
brag
Дело не в коде и не в разводке... Еще может быть одна хрень...я AVCC подключил прямо к 5в(с кондером на землю ессно, на расстоянии 0.5мм от ноги). может из за этого? я обычно никогда так не делал,обычно через дроссель или нулевик подключал
brag
Отцепил Avcc,сделал,как обычно делаю - то же самое. Запустить кирпич можно только коротнув питалово вблизи него.
В чем кглюк? пробовал ставить электролит,тантал - ничего не помогает...
brag
Все уже перепробовал. эффекта никакого. Запускается только, если питалово коротнуть...поставлю филипс и не буду жучить себе мозги smile.gif
VladimirYU
Цитата(brag @ Feb 11 2008, 11:07) *
Все уже перепробовал. эффекта никакого. Запускается только, если питалово коротнуть...поставлю филипс и не буду жучить себе мозги smile.gif

Что Вы понимаете под "коротнуть питание". Если есть возможность поставте внешний супервизор для сброса DS1813 или что-нибудь подобное и отключите внутренний BОD, проверьте что у вас с "собакой". Проверьте фузы. Установите внешний кварц с конденсаторами, в фузах включите внешний осциллятор и CKOPT. Посмотрите генерацию "rail to rail". Чудес не бывает, эти МК используются тасячами. Вероятность, что Вы налетели на производственый брак, конечно, есть, но ваши МК даже разных моделей а поведение одинаковое. Упрстите для начала программу, чтобы убедиться в устойчивом функционировании самого МК. Промойте плату тщательно. Исходник Ваш почемуто не читаеся. Выложите еще раз.
brag
Прямо таяки коротнуть,желательно вблизи контроллера.кратковременно и он запустится. функционирует на ура,я уже большую программу написал и все работает.
BOD включал-выключал. не помогло. ресетил вручную(корочу ресет на землю,подаю питалово,снимаю ресет с земли) - не стартует. Собака в отрубе. Фюзы в порядке. внешний кварц.16мгц.,кондеры по 15пф. ЦКОПТ запрограммен. Программа не при чем,тк после корочения питания все работает.
Повторяю: Контроллер запускается, если кратковременно коротнуть питалово вблизи него и работает, пока не выключишь питалово. При чем,если контроллер заработал,то ресет тоже нормально фунциклирует. А если контроллер не стартонул,то он шьется, читается, но не работает. Перепроверил 4чипа.
Плата промыта.
Питалово толстыми дорожками(вернее одной,милиметра 2). земля-сплошной полигон

На всякий случай плата
Нажмите для просмотра прикрепленного файла
GDI
Может у вас питание медленно нарастает? Попробуйте фьюзами выставить время стартапа генератора побольше, ну и с источником питания разберитесь, потому что закоротка питания - это как быстрый старт источника, осциллом питание неплохо бы посмотреть во время включения. При медленном старте БОД помогает, если правильно выставлен уровень. Но если нарастание слишком медленное то он не поможет.
VladimirYU
Цитата(GDI @ Feb 11 2008, 16:48) *
Может у вас питание медленно нарастает? Попробуйте фьюзами выставить время стартапа генератора побольше, ну и с источником питания разберитесь, потому что закоротка питания - это как быстрый старт источника, осциллом питание неплохо бы посмотреть во время включения. При медленном старте БОД помогает, если правильно выставлен уровень. Но если нарастание слишком медленное то он не поможет.

И все-таки попробуйте внешний супервизор, это похоже единственное,что Вы еще не попробовали.
brag
Источники пробовал разные. в том числе комповский бп. другие вещи,по серьезнее,чем атмега128/64 то работают...
С фюзами уже наигрался. не в них дело.
Да, действительно,внешний супервизор я ещене пробовал. но чем он отличается от ручного ресета?(Закоротил на землю,подал питание, убрал с земли)

И вобще, всякие SUT-ы,если даже не так стоят,как надо,то все лечится ресетом. а тут дела обстоят на более низком уровне..
VladimirYU
Цитата(brag @ Feb 11 2008, 19:02) *
Да, действительно,внешний супервизор я ещене пробовал. но чем он отличается от ручного ресета?(Закоротил на землю,подал питание, убрал с земли)


Вне зависимости от темпа нарастания напряжения питания внешний супервизор будет держать низкий уровень до уровня 5В-5(10)%, гарантируя надежный сброс МК. Это наиболее близко к тому, что Вы называете коротнуть питание. Не пожалейте 18-30руб. и 3...5 минут времени, чтобы его подвесить хоть навесным монтажем, как можно ближе к ножке RESET
brag
Ну я тоже держу низкий уровень перемычкой,пока питание не нарастет до 5в smile.gif и ничего не помогает

При чем, запускается проще с прогревом. если кристалл долго не работал,то его сложно запустить
VladimirYU
Цитата(brag @ Feb 12 2008, 09:20) *
Ну я тоже держу низкий уровень перемычкой,пока питание не нарастет до 5в smile.gif и ничего не помогает

Понимаю Ваше отчаяние, но перемычка всетаки не то, что супервизор. Ее снятие может сопровождаться дребезгом на RESET, что при этом происходит, как реагирует МК вопрос. Складывается впечатление из Ваших сообщений, что МК стартует у Вас только по помехе по питанию ("коротнуть на землю"). Или неправильно Вас понял. Вопрос такой, запускается ли кварц в случае когда МК не стартует?
GDI
Цитата
Вопрос такой, запускается ли кварц в случае когда МК не стартует?

Видимо запускается, раз его можно прошивать.
Моя версия, что у вас не запускается часть периферии при медленном нарастании напряжения питания и если это так, то внешний супервизор не поможет. У меня как то была проблема с мега128 с нестабильным стартом, но честно говоря я не помню как я тогда решил проблему, но не внешним супервизором - это точно, помню что были танцы с бубном с битами SUT и BODLEVEL, возможно пришлось помыть плату в УЗ ванне, а возможно, что то было и в программе... давно это было, но в итоге все заработало.
brag
Спасибо!
Да,именно,всего скорее,по помехе по питанию. Кварц стартует всега, тк МК нормально программируется и на ногах кварца есть частота, при чем та,что надо - мерял осцилом.
Цитата
Ее снятие может сопровождаться дребезгом на RESET, что при этом происходит, как реагирует МК - прос

О, это первая реальная идея! Спасибо! smile.gif
Попробуем супервизор, ща слеплю на другом МК smile.gif
brag
Цитата
Видимо запускается, раз его можно прошивать.
Моя версия, что у вас не запускается часть периферии при медленном нарастании напряжения.

Согласен. Именно часть периферии,тк проц комманды выполняет! Но такие вещи,как работа с внутренним SRAM, порами итп глючат.
Но нарастание нормальное,тк блок высокоамперный и кондер на плате маленький,10мкф. пробовал и другие. и включаю я плату уже при работающем бп -наростание мгновенное. пробовал замедлять - не помогает.

Цитата
танцы с бубном с битами SUT и BODLEVEL

Ничего не дают.

Мыть то там нечего...
brag
Не помогает супервизор...
Baser
Цитата(brag @ Feb 12 2008, 22:11) *
Не помогает супервизор...

Тогда вам нужно макет менять. Может быть плата полупроводящая после какого-нибудь "супер флюса". Или полупроводящие коротыши между ножками МК приводят к перекосу питания кристалла 07.gif
VladimirYU
Цитата(Baser @ Feb 13 2008, 01:05) *
Тогда вам нужно макет менять. Может быть плата полупроводящая после какого-нибудь "супер флюса". Или полупроводящие коротыши между ножками МК приводят к перекосу питания кристалла 07.gif

Я уже других причин не вижу, в ванну ее на 2 суток, и шприцом между ножек промывать. Сочуствую, но других идей пока нет.
brag
Цитата
Тогда вам нужно макет менять. Может быть плата полупроводящая после какого-нибудь "супер флюса". Или полупроводящие коротыши между ножками МК приводят к перекосу питания кристалла

Нормальный текстолит,всегда таким пользуюсь на высокоскоросных девайсах(48-500мгц), а тут какая-то нещасная атмега...
Флюсь Ф-3(спиртоканифоль), давно смыт,правда не в уз-ванне...Коротышей там нету, тем более шаг большой, это ж TQFP64..
Я на TSSOP, LQFP не всегда Ф-3 смываю,и работает.
Попробую еще на ночь вкинуть, радиинтереса.. все равно буду переделывать. Поставлю LPC2131/1 и не буду парить себе мозги
GDI
Когда я работал в ремонтной конторе, и нам приходила техника с подобными проблемами, то агоритм ремонта был такой: сперва просто пропаивали ноги у проца (не важно какого AVR там никогда не встречался smile.gif), причем использовалась лично мной твердая канифоль(возможно это важно), если пропайка не помогала, то следующим этапом было снятие проца и промывка платы под ним, затем обратная припайка, опять же с использованием твердой канифоли. Кстати, вот тот случай что я приводил ранее, там я тоже пропаивал мегу, а еще не помню точно в том же девайсе или в другом была проблема с "зависанием", но причиной была не мега128, а АТ45 подключенная к ней, там был оставлен висящим в воздухе вывод WriteProtect что допускается по даташиту, но видно была какая то проводимость, причем не постоянная, на землю, что потом выяснилось с помощью осциллографа, т.е. потенциал на этом выводе гулял от 0 до 3,3в, а программа в меге при старте опрашивала АТ45, ну и при этом были глюки, т.е. программа циклилась на опросе АТ45 и не шла дальше. Т.е. я хочу сказать что "дело было не в бобине" и изготовление новой платы на другом контроллере вам наверняка поможет, но в причинах глюков имеющейся платы вы не разобрались, все списав на "глючность" мега128, вот отсюда и рождаются слухи, переходяшие в утверждения, о глючности контроллеров AVR и мега128 в частности smile.gif
brag
Нет,с мегой128 я обязательно разберусь, просто сроки поджимают.
Я неговорю,что мега128 фуфло,сам люблю меги. можт у меня конкретные экземпляры галимые или плата, или руки,фаза луны итд..
К стати, сейчас почему-то начала запускатся, но через раз smile.gif)

Сегодня солца нету,может по этому wink.gif))) вчера было smile.gif
defunct
Цитата(brag @ Feb 13 2008, 11:41) *
Нет,с мегой128 я обязательно разберусь, просто сроки поджимают.

Конденсатор небольшой (0.01-0.1uf) на между RST и землей пробовали ставить?
brag
da
vinrom
не совсем понял - пробовали ресет подтягивать к Vcc?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.