|
да что же я не так делаю? mega64 и 128, ну не могу завести и всё тут : ( |
|
|
|
 |
Ответов
(1 - 81)
|
May 3 2007, 07:03
|

Частый гость
 
Группа: Новичок
Сообщений: 91
Регистрация: 24-12-05
Из: г. Благовещенск
Пользователь №: 12 614

|
а как бы я писал и читал память если у меня тактования не было? ну что может быть проще этого?: Код .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 и не дрыгает ногами  может куда еще питание подать надо? или наоборот не подавать?...
Сообщение отредактировал d71 - May 3 2007, 07:04
--------------------
нет ничего невозможного, есть трудные пути... других не ищем
|
|
|
|
|
May 3 2007, 07:26
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(d71 @ May 3 2007, 06:03)  ну что может быть проще этого?: Код ldi temp,$ff out DDRB,temp out PORTB,temp и не дрыгает ногами  А что ожидаете от этой программы? Дрыгать ногами она и не будет, там ведь постоянно все 1.. 1. В проекте - выбрать правильно MCU. 2. Fuse M103C убрать. Более подробно расписать - что ожидаете от программки и что получается, чем меряете и как. Подключить светодиоды, к земле и к Vcc, выдавать на порты "зебру" 01010101. PS: тратить время на такие тесты Imho лишнее, ведь можно просто подключиться через JTAG да подергать ногами из студии.
|
|
|
|
|
May 3 2007, 08:03
|
Местный
  
Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225

|
посмотрите свой код : инициализация портов на вывод и выдча в них единиц и фсё. а далее вот это: Код forever: rjmp forever и дёргается увас процик в бесконечном цикле :о))
|
|
|
|
|
May 3 2007, 08:14
|

Частый гость
 
Группа: Новичок
Сообщений: 91
Регистрация: 24-12-05
Из: г. Благовещенск
Пользователь №: 12 614

|
дак как дергать если единиц нету на ногах  как только увижу единички, конечно устрою светопредставление светодиодное на тестовой плате но нет тама единиц-то -- щас точно об стену её разотру
--------------------
нет ничего невозможного, есть трудные пути... других не ищем
|
|
|
|
|
May 3 2007, 09:14
|

Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 15-03-06
Пользователь №: 15 277

|
Цитата(d71 @ May 3 2007, 05:43)  что я не так делаю? не получилось стартовать м128, ладно, сваял вторую плату и воткнул м64
память читаю и пишу, но ногами не дрыгает -- может я как-то не так подошел к кристалу?
на меге16 достаточно было подать питание и всё... блин, я щас её об стену жахну - провалил разработку по времени... ненавижу это долбанутое создание... А схемку включения с минимальной обвязкой (внешний кварц, подтягивающие резюки, цепь сброса) не кините? Что у вас с линией PEN и RESET творится.
|
|
|
|
|
May 3 2007, 09:19
|
Местный
  
Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225

|
Цитата(d71 @ May 3 2007, 09:14)  щас точно об стену её разотру начнём с питания : GND- 22,53,63 +5в- 21,52,62, 64 ноги для программирования: MOSI - PE0, MISO- PE1, SCK -PB1 PEN- в воздухе либо подттянут к +5 у вас всё так?
|
|
|
|
|
May 3 2007, 10:29
|
Знающий
   
Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050

|
Хм.. может я чего то не понимаю.. Может все же чуть поправить листинг примерно так: .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 и не дрыгает ногами  может куда еще питание подать надо? или наоборот не подавать?...
|
|
|
|
|
May 3 2007, 13:15
|

Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544

|
Цитата Подтяните ногу PEN через резюк к питанию и будет вам счастье. Сомневаюсь. Я никогда этот вывод никуда не притягивал и счастье было всегда. По теме. Недавно было обсуждение нечто подобного. Проблема, помоему, там была в том, что устройство питалось от 3,3V, а схема BOD была настоена на 4V. В результате процессор всегда был в ресете. Помоему, здесь нечто похожее. Нет?
|
|
|
|
|
May 3 2007, 13:38
|

Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 15-03-06
Пользователь №: 15 277

|
Цитата(Igor26 @ May 3 2007, 14:15)  Сомневаюсь. Я никогда этот вывод никуда не притягивал и счастье было всегда.
По теме. Недавно было обсуждение нечто подобного. Проблема, помоему, там была в том, что устройство питалось от 3,3V, а схема BOD была настоена на 4V. В результате процессор всегда был в ресете. Помоему, здесь нечто похожее. Нет? У меня была аналогичная ситуация. По SPI в режиме программирования все читалось и писалось. Но увы после это контроллер не стартовал. После подтяжки на PEN в стало работать отлично. Хоть в даташитах и сказано что там есть PullUp резистор.
|
|
|
|
|
May 4 2007, 09:08
|

Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544

|
Цитата может коротыш на плате ... или этот участок платы плохо промыт от флюса. Цитата После подтяжки на PEN в стало работать отлично А установка подтягивающего резистора на PEN - это, помоему, борьба со следствием, а не с причиной.
|
|
|
|
|
May 4 2007, 11:59
|

Частый гость
 
Группа: Новичок
Сообщений: 91
Регистрация: 24-12-05
Из: г. Благовещенск
Пользователь №: 12 614

|
Отчитываюсь (пусть меня тут считают лохом, создающим тупые темы по нескольку раз подряд, я не обижаюсь - результат мне важнее)
И так кристал завелся. Что я сделал: отрезал все ноги от всей перефирии, оставил одну на светодиоде. Никакого результата - пишу/читаю - не стартует BOV, BOVLEVEL и так и сяк, внешний, внутренний осцилятор, всё без толку. PEN и подтягивал и выставлял. попсиховал... (раз сто наверно) Вертаю все фузы на место, делаю сброс PEN вместе с RESET - опа - нога задрыгалась светодиодом!
Больше не разбирался - времени сейчас нет - писать надо и женить с переферией. Когда будет время объязательно разберусь, пока работаю так. ---- всем спасибо, можно тему закрывать. m16 - тебе отдельное спасибо : )
Сообщение отредактировал d71 - May 4 2007, 12:02
--------------------
нет ничего невозможного, есть трудные пути... других не ищем
|
|
|
|
|
Feb 9 2008, 16:35
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
и у меня похожее с 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 - тоже ничего не дало Не ужели чип такой? или может я все что-то не так делаю? Схема простейшая. мега, кондеры на питалово, пулл-апы,кварц с кондерами,дорожки. флюс смыт. Один раз она у меня запустилась,немного поработала, и усе,опять то же самое началось.при чем поерестала работать после того,как плату перенес на другой стол.а начала работать после того,как не правильно втыкнул разем программирования  дикость какая-то.... снимал кристалл,звонил дорожки - все нормал... видно атмел левак гонит
|
|
|
|
|
Feb 9 2008, 17:18
|
Местный
  
Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527

|
Цитата(brag @ Feb 9 2008, 19:35)  или воожще хз как.при работе со стеком слетает. ... но стоит че-то сделать по-серьезнее, скажем вызвать функцию(простую,содержащую только ret) оно все виснет. или скажем,записать что-то в SRAM или push. А совместимость с М103 отключена? Иначе так и будет - стек будет расположен в несуществующей области ОЗУ...
|
|
|
|
|
Feb 9 2008, 18:39
|
Местный
  
Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527

|
Цитата(brag @ Feb 9 2008, 21:24)  думаете,я не не пробовал его в другое место ставить? Отключена. пробовал вкюлчать,еще хуже ставало..
Что посоветываете? копать дальше или переделать все на LPC2104,скажем...? Я вообще в шоке от такого поведения 4х микросхем,2х атмег64,2х атмег128 У всех остальных все работает. Я использую и 64-ю и 128-ю в серийном изделии. Никогда такого не видел, чтобы не работало. Либо с питанием траблы, либо с разводкой либо с программой. Первые два пункта Вам придется смотреть самому. С программой можем помочь - выкладывайте тестовый исходник. PS. А не поделитесь своим ассемблером под AVR и под ARM? Интересно попробовать что-то нестандартное.
|
|
|
|
|
Feb 11 2008, 08:35
|
Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782

|
Цитата(brag @ Feb 11 2008, 11:07)  Все уже перепробовал. эффекта никакого. Запускается только, если питалово коротнуть...поставлю филипс и не буду жучить себе мозги  Что Вы понимаете под "коротнуть питание". Если есть возможность поставте внешний супервизор для сброса DS1813 или что-нибудь подобное и отключите внутренний BОD, проверьте что у вас с "собакой". Проверьте фузы. Установите внешний кварц с конденсаторами, в фузах включите внешний осциллятор и CKOPT. Посмотрите генерацию "rail to rail". Чудес не бывает, эти МК используются тасячами. Вероятность, что Вы налетели на производственый брак, конечно, есть, но ваши МК даже разных моделей а поведение одинаковое. Упрстите для начала программу, чтобы убедиться в устойчивом функционировании самого МК. Промойте плату тщательно. Исходник Ваш почемуто не читаеся. Выложите еще раз.
|
|
|
|
|
Feb 11 2008, 13:01
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
Прямо таяки коротнуть,желательно вблизи контроллера.кратковременно и он запустится. функционирует на ура,я уже большую программу написал и все работает. BOD включал-выключал. не помогло. ресетил вручную(корочу ресет на землю,подаю питалово,снимаю ресет с земли) - не стартует. Собака в отрубе. Фюзы в порядке. внешний кварц.16мгц.,кондеры по 15пф. ЦКОПТ запрограммен. Программа не при чем,тк после корочения питания все работает. Повторяю: Контроллер запускается, если кратковременно коротнуть питалово вблизи него и работает, пока не выключишь питалово. При чем,если контроллер заработал,то ресет тоже нормально фунциклирует. А если контроллер не стартонул,то он шьется, читается, но не работает. Перепроверил 4чипа. Плата промыта. Питалово толстыми дорожками(вернее одной,милиметра 2). земля-сплошной полигон
На всякий случай плата [attachment=17901:attachment]
Сообщение отредактировал brag - Feb 11 2008, 13:10
|
|
|
|
|
Feb 11 2008, 14:17
|
Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782

|
Цитата(GDI @ Feb 11 2008, 16:48)  Может у вас питание медленно нарастает? Попробуйте фьюзами выставить время стартапа генератора побольше, ну и с источником питания разберитесь, потому что закоротка питания - это как быстрый старт источника, осциллом питание неплохо бы посмотреть во время включения. При медленном старте БОД помогает, если правильно выставлен уровень. Но если нарастание слишком медленное то он не поможет. И все-таки попробуйте внешний супервизор, это похоже единственное,что Вы еще не попробовали.
|
|
|
|
|
Feb 11 2008, 16:02
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
Источники пробовал разные. в том числе комповский бп. другие вещи,по серьезнее,чем атмега128/64 то работают... С фюзами уже наигрался. не в них дело. Да, действительно,внешний супервизор я ещене пробовал. но чем он отличается от ручного ресета?(Закоротил на землю,подал питание, убрал с земли)
И вобще, всякие SUT-ы,если даже не так стоят,как надо,то все лечится ресетом. а тут дела обстоят на более низком уровне..
Сообщение отредактировал brag - Feb 11 2008, 16:03
|
|
|
|
|
Feb 12 2008, 05:58
|
Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782

|
Цитата(brag @ Feb 11 2008, 19:02)  Да, действительно,внешний супервизор я ещене пробовал. но чем он отличается от ручного ресета?(Закоротил на землю,подал питание, убрал с земли) Вне зависимости от темпа нарастания напряжения питания внешний супервизор будет держать низкий уровень до уровня 5В-5(10)%, гарантируя надежный сброс МК. Это наиболее близко к тому, что Вы называете коротнуть питание. Не пожалейте 18-30руб. и 3...5 минут времени, чтобы его подвесить хоть навесным монтажем, как можно ближе к ножке RESET
|
|
|
|
|
Feb 12 2008, 06:35
|
Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782

|
Цитата(brag @ Feb 12 2008, 09:20)  Ну я тоже держу низкий уровень перемычкой,пока питание не нарастет до 5в  и ничего не помогает Понимаю Ваше отчаяние, но перемычка всетаки не то, что супервизор. Ее снятие может сопровождаться дребезгом на RESET, что при этом происходит, как реагирует МК вопрос. Складывается впечатление из Ваших сообщений, что МК стартует у Вас только по помехе по питанию ("коротнуть на землю"). Или неправильно Вас понял. Вопрос такой, запускается ли кварц в случае когда МК не стартует?
|
|
|
|
|
Feb 12 2008, 06:55
|
Профессионал
    
Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008

|
Цитата Вопрос такой, запускается ли кварц в случае когда МК не стартует? Видимо запускается, раз его можно прошивать. Моя версия, что у вас не запускается часть периферии при медленном нарастании напряжения питания и если это так, то внешний супервизор не поможет. У меня как то была проблема с мега128 с нестабильным стартом, но честно говоря я не помню как я тогда решил проблему, но не внешним супервизором - это точно, помню что были танцы с бубном с битами SUT и BODLEVEL, возможно пришлось помыть плату в УЗ ванне, а возможно, что то было и в программе... давно это было, но в итоге все заработало.
--------------------
|
|
|
|
|
Feb 12 2008, 13:47
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
Спасибо! Да,именно,всего скорее,по помехе по питанию. Кварц стартует всега, тк МК нормально программируется и на ногах кварца есть частота, при чем та,что надо - мерял осцилом. Цитата Ее снятие может сопровождаться дребезгом на RESET, что при этом происходит, как реагирует МК - прос О, это первая реальная идея! Спасибо!  Попробуем супервизор, ща слеплю на другом МК
|
|
|
|
|
Feb 12 2008, 14:53
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
Цитата Видимо запускается, раз его можно прошивать. Моя версия, что у вас не запускается часть периферии при медленном нарастании напряжения. Согласен. Именно часть периферии,тк проц комманды выполняет! Но такие вещи,как работа с внутренним SRAM, порами итп глючат. Но нарастание нормальное,тк блок высокоамперный и кондер на плате маленький,10мкф. пробовал и другие. и включаю я плату уже при работающем бп -наростание мгновенное. пробовал замедлять - не помогает. Цитата танцы с бубном с битами SUT и BODLEVEL Ничего не дают. Мыть то там нечего...
|
|
|
|
|
Feb 13 2008, 06:20
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
Цитата Тогда вам нужно макет менять. Может быть плата полупроводящая после какого-нибудь "супер флюса". Или полупроводящие коротыши между ножками МК приводят к перекосу питания кристалла Нормальный текстолит,всегда таким пользуюсь на высокоскоросных девайсах(48-500мгц), а тут какая-то нещасная атмега... Флюсь Ф-3(спиртоканифоль), давно смыт,правда не в уз-ванне...Коротышей там нету, тем более шаг большой, это ж TQFP64.. Я на TSSOP, LQFP не всегда Ф-3 смываю,и работает. Попробую еще на ночь вкинуть, радиинтереса.. все равно буду переделывать. Поставлю LPC2131/1 и не буду парить себе мозги
|
|
|
|
|
Feb 13 2008, 07:23
|
Профессионал
    
Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008

|
Когда я работал в ремонтной конторе, и нам приходила техника с подобными проблемами, то агоритм ремонта был такой: сперва просто пропаивали ноги у проца (не важно какого AVR там никогда не встречался  ), причем использовалась лично мной твердая канифоль(возможно это важно), если пропайка не помогала, то следующим этапом было снятие проца и промывка платы под ним, затем обратная припайка, опять же с использованием твердой канифоли. Кстати, вот тот случай что я приводил ранее, там я тоже пропаивал мегу, а еще не помню точно в том же девайсе или в другом была проблема с "зависанием", но причиной была не мега128, а АТ45 подключенная к ней, там был оставлен висящим в воздухе вывод WriteProtect что допускается по даташиту, но видно была какая то проводимость, причем не постоянная, на землю, что потом выяснилось с помощью осциллографа, т.е. потенциал на этом выводе гулял от 0 до 3,3в, а программа в меге при старте опрашивала АТ45, ну и при этом были глюки, т.е. программа циклилась на опросе АТ45 и не шла дальше. Т.е. я хочу сказать что "дело было не в бобине" и изготовление новой платы на другом контроллере вам наверняка поможет, но в причинах глюков имеющейся платы вы не разобрались, все списав на "глючность" мега128, вот отсюда и рождаются слухи, переходяшие в утверждения, о глючности контроллеров AVR и мега128 в частности
--------------------
|
|
|
|
|
Feb 13 2008, 09:41
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
Нет,с мегой128 я обязательно разберусь, просто сроки поджимают. Я неговорю,что мега128 фуфло,сам люблю меги. можт у меня конкретные экземпляры галимые или плата, или руки,фаза луны итд.. К стати, сейчас почему-то начала запускатся, но через раз  ) Сегодня солца нету,может по этому  ))) вчера было
|
|
|
|
|
Feb 14 2008, 13:26
|
Группа: Новичок
Сообщений: 6
Регистрация: 15-01-07
Пользователь №: 24 434

|
не совсем понял - пробовали ресет подтягивать к Vcc?
|
|
|
|
|
Feb 19 2008, 10:35
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
Цитата пробовали ресет подтягивать к Vcc? конечно Цитата А что у Вас там на PEN за деталька? Попробуйте выбросить ее, оставьте ножку в воздухе. Стоял резистор на вцц, потом выкинул его. Делал так. и сяк..не помогло. Цитата И, на всякий случай, позаливайте припоем переходы со стороны на сторону по питанию... Там у меня медные заклепки Цитата Почему вы не пользуетесь стандартной библиотекой, стартап файлом, скриптом линкера а пишете все это свое? Не люблю таких вещей. я сам обслуживаю прерывания, с самого корня и тп. и в конце концов,что,сихный маин тяжело запустить?  Стандартными функциями иногда пользуюсь,но никак не стартапами и секциями. тут я люблю полный контроль. и еще люблю на ассемблере прописывать те процедуры,которые надо. но это уже под ARM. там приятный асм.
|
|
|
|
|
Feb 19 2008, 10:57
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(brag @ Feb 19 2008, 13:35)  Цитата Почему вы не пользуетесь стандартной библиотекой, стартап файлом, скриптом линкера а пишете все это свое? Не люблю таких вещей. я сам обслуживаю прерывания, с самого корня и тп. и в конце концов,что,сихный маин тяжело запустить?  Любить не любить это ваше личное дело, но если Вы пишете свой стартап файл потрудидесь выяснить что он должен делать обязательно. Вы что думаете инструкция 'clr __zero_reg__' находиться в стандартном стартап файле, только для того чтобы лишить вас самого ценного, двух байт флеш? main кстати не так просто пускать, для старых версий компилятора надо использовать не CALL, а JMP. Анатолий.
|
|
|
|
|
Feb 19 2008, 16:18
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
я ее специально туда не вписал. я юзаю call, и запускаю cmain,вместо main.  А потом выход в вечный sleep.... Цитата Вы уверены, что там хороший контакт? Да. Осцом смотрел,ничего там нету И вобще,я использую C для упрощения написания алгоритмов, но никак не как среду разработки.
|
|
|
|
|
Feb 19 2008, 17:26
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(brag @ Feb 19 2008, 19:18)  я ее специально туда не вписал. ..... Это Вы о 'clr __zero_reg__'. А какие еще у вас были причины "специально" не вписавать эту команду в свой стартап, конечно окрамя того что в avr-libc ее вписал полный кретин? Анатолий.
Сообщение отредактировал aesok - Feb 19 2008, 17:26
|
|
|
|
|
Feb 26 2008, 07:55
|
Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782

|
Цитата(GDI @ Feb 26 2008, 10:14)  По моему все же проще и быстрее попробовать стандартный пример от поставщиков компилятора. Если есть проблема, то надо исключать возможные проблемные места, а не множить их... ваш собственный стартап может являться такой проблемой, даже если в других приложениях он и работает. +1. Разработчики компилятора тоже не плохо разбираются в предмете. Поэтому ИМХО в 99,99% случаев нет необходимост править штатный стартап.
|
|
|
|
|
Feb 26 2008, 18:49
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(brag @ Feb 26 2008, 19:54)  вы опять за свое...  не работает ЖЕЛЕЗО, а не софт. софт точно не рабочий, а начет железа не спорю, возможно Вы и правы. avr-libc-user-manual, FAQ #13, What registers are used by the C compiler? Цитата r1 - assumed to be always zero in any C code, may be used to remember something for a while within one piece of assembler code, but must then be cleared after use (clr r1). This includes any use of the [f]mul[s[u]] instructions, which return their result in r1:r0. Interrupt handlers save and clear r1 on entry, and restore r1 on exit (in case it was non-zero). Анатоий.
|
|
|
|
|
Feb 27 2008, 10:10
|

Начинающий профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648

|
Цитата(brag @ Feb 27 2008, 03:23)  это avr-LIBC-user-manual. а у нас libc не используется. повторяю, девайс работает на реальной машине и уже отлажен. r1 у меня используется, как нормальный регистр для расчетов.. компиллер - gcc В AVR Libc указано: Код Typically, it should be save to use r2 through r7 that way.
Registers r8 through r15 can be used for argument passing by the compiler in case many or long arguments are being passed to callees. If this is not the case throughout the entire application, these registers could be used for register variables as well.
--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
|
|
|
|
|
Feb 27 2008, 21:04
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(brag @ Feb 27 2008, 03:23)  это avr-LIBC-user-manual. а у нас libc не используется. повторяю, девайс работает на реальной машине и уже отлажен. r1 у меня используется, как нормальный регистр для расчетов.. компиллер - gcc Звучит как анедот. Перевожу Вам фразу "r1 - assumed to be always zero in any C code,..." на русский: r1 - предпологаеться что всегда содержит ноль в любом С коде. avr-gcc генерирует код котрый предпологает что региср r1 (он же __zero_reg__) содержит 0. Например, для этого С кода: Код volatile unsigned int i = 1; volatile unsigned char b = 1; int main (void) { i = i + b; return 0; } бедет сгенерирован ассемблерный код Код .... add r24,r18; 8 *addhi3_zero_extend [length = 2] adc r25,__zero_reg__ .... И чему будет равно i если в регистр r1 записано чтото отличное от нуля? Анатолий.
Сообщение отредактировал aesok - Feb 27 2008, 21:18
|
|
|
|
|
Feb 27 2008, 21:24
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(brag @ Feb 28 2008, 00:19)  анекдот про дядька Мыкыта  )) Если Вы думаете что мне жалко ваше время .... нет, мне его не жалко. Если Вы думаете что я хочу чтобы ваше устройстово заработало ... нет, мне все равно. Мне просто жалко времени людей которые пытались Вым помочь. И своего времени. Я его больше на Вас не трачу. Анатолий.
|
|
|
|
|
Feb 28 2008, 07:06
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
да что вы так... простите, если получилось так, что вас обидел.. просто дело не в софте, тк я использую нестандартные решения.. вчера возился с шимом(регулировка контрастности). достал свой осцил цифровой, начал анализировать.. сделал шим, думаю, дай ткну его в ту плату с атмегой.. оказывается, при включении атмега почему-то потребляет ток около 300ма! по ногam dvdd. при чем бросок всегда разный, но кратковременный, где-то 500-1000нс. Сразу заменил стабилизатор LM1117-5 на LF50. Запускатся стало увереннее. Поставил кондер на 10u тантал. Далее разрезал дорожку и втыкнул такую цепочку. теперь запускается всегда
Сообщение отредактировал brag - Feb 28 2008, 07:07
|
|
|
|
|
Feb 28 2008, 08:20
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
длительностю 500-1000нс по 2мегагерцовому осцилографу на шунте 1ом 0603 Цитата А я давно предлагал Я тыкал обычным аналоговым,а там такие вещи не заметишь. покопаем на досуге. в серию все равно пойдет плата на LPC2131
|
|
|
|
|
Feb 28 2008, 22:14
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(brag @ Feb 28 2008, 10:06)  ... атмега почему-то потребляет ток около 300ма! А вот такой код вы случайно никогда не писали: Код #include <avr/io.h> #include <avr/pgmspace.h>
#include "device.h" #include "inithw.h" //#include "bus.h"
void init0(void){ // ports PORTA=0x00; DDRA=0x00; ... листинг хотите взглянуть? Код PORTA=0x00; ce: 1b ba out 0x1b, r1; 27 DDRA=0x00; d0: 1a ba out 0x1a, r1; 26 Вопос: какой ток потребления будет у устройства если в регистре r1 при включении питания записалось число 0xAA и он не обнулен в стартапе? Ответ: 300ма. Анатолий.
Сообщение отредактировал aesok - Feb 28 2008, 22:15
|
|
|
|
|
Feb 29 2008, 10:24
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
тестовый пример. Код nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop ldi r17,0xFF out PORTA,r17 out DDRA,r17 jmp 0 Так на ногах появляется 1. А если nop-ов штук 100 или записать что-то в стек(именно через SP), тогда дело до установки порта в 1 не доходит. Проверял еще на самом начале,до того,как писать в форум.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|