Фьюзы ATMega48

Обсуждаем контроллеры компании Atmel.
Ответить
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

1f745cd64317f11b8cb88c63c078cc33.jpg
(122.08 КБ) 661 скачивание
Собрал часы. Не работают дисплеи ни с ОК ни с ОА. Ни одна лампочка не горит. Будто веревкой к дереву привязал индикатор. Собираю в протеусе - все работает. В чем дело? Фьюзы? А что ещё может быть? Какие они
Они должны быть в этом случае? И будет ли виден убитый микроконтроллер программе сина прог? Разные тычки ставил в ней, а МК видно всегда, всегда читается. Фьюзы только там в нулях все. Так же не должно быть?
Реклама
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

ZIPMan111 писал(а):Не работают дисплеи ни с ОК ни с ОА
Вы их наугад, что-ли выбираете? :))
По схеме (лапы бы за такую "смехотехнику" оборвать) непонятно, какие именно индикаторы должны быть, это определяется только программой. Надо смотреть в программе, какие уровни и куда она подает, только так можно выяснить, какой требуется индикатор - с ОК или с ОА.
ZIPMan111 писал(а):В чем дело? Фьюзы? Какие они Они должны быть в этом случае?
Судя по схеме, МК должен тактироваться от внутреннего RC генератора. По умолчанию фьюзы выставлены как раз на такой режим с делением частоты на 8, итого тактовая частота - 1МГц. Если Вы их не трогали, то тактироваться МК должен. Не видя исходника, сложно сказать, на какую частоту тактирования все рассчитано. Но и при 1 МГц скорости работы для часов хватит за глаза.
ZIPMan111 писал(а):Разные тычки ставил в ней, а МК видно всегда, всегда читается.
Какие "тычки"? Фьюзы, что-ли? Если Вы спрашиваете, какие фьюзы должны быть, значит, Вы имеете о них очень слабое представление. Как вообще можно что-то делать, не представляя результата своих действий? Такими действиями Вы вполне могли перевести МК на тактирование от того источника, которого у Вас нет.
Если у Вас фьюзы CKSEL в нулях, то это может означать либо тактирование от внешнего источника, либо от внешнего кварца в зависимости от того, инвертирует ли фьюзы программа, которой Вы прошиваете МК. В обоих случаях МК с такими настройками в вашей схеме работать не будет, так как она рассчитана на внутренний генератор.
ZIPMan111 писал(а):А что ещё может быть?
Да что угодно может быть, даже если фьюзы в норме.
Начать с того, что сама схема вызывает вопросы. Если RESET на пине PC6 запрещен, то как Вы программируете МК? Если разрешен, то каждое нажатие на кнопку S5 будет ресетить МК. На схеме вообще не понятно, как МК должен программироваться.
Где на схеме хоть один блокировочный конденсатор? Как организовано питание?

Начать нужно с проверки питания, корректно ли оно, потом разобраться с тем, что на RESET, не "нуль" ли случайно... Потом осциллографом смотреть, есть ли импульсы на выводах, управляющих индикаторами, есть ли обмен с DS1307...
Последний раз редактировалось Alkul Вт июл 26, 2016 06:21:11, всего редактировалось 2 раза.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Раз в Протеусе работает, то фьюзы в железе должны быть такими же как и в протеусе.

У Вас в схеме нет токоограничивающих резисторов индикатора. Очень даже может быть, что Вы сожгли порты. А вот в протеусе они не горят.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

Z_h_e писал(а):У Вас в схеме нет токоограничивающих резисторов индикатора. Очень даже может быть, что Вы сожгли порты. А вот в протеусе они не горят.
Кстати, да. Самое смешное, что при отсутствии резисторов там, где они нужны - на индикаторах, резисторы есть на кнопках - там, где без них свободно можно обойтись.

Схему, видимо, какой-то пятиклассник рисовал...
ZIPMan111 писал(а):а МК видно всегда, всегда читается. Фьюзы только там в нулях все. Так же не должно быть?
Если фьюзы в нулях, то это может означать, что все фьюзы в лог.1, если программа их инвертирует. А наличие лог.1 во всех фьюзах может означать, что на самом деле ничего с контроллера не читается, программа читает просто состояние "притянутой к питанию" шины.
Последний раз редактировалось Alkul Вт июл 26, 2016 06:32:47, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
akl
Друг Кота
Сообщения: 4462
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Alkul писал(а):...при отсутствии резисторов там, где они нужны...
На линиях SDA и SCL(SDL????) тоже нужны. Встроенная в контроллер подтяжка великовата. Правда, не знаю что такое DS13071.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

akl писал(а):Встроенная в контроллер подтяжка великовата.
Возможно ее вообще нет, когда периферия I2C включена или есть? По логике вроде как не должно быть, слейв может иметь например 3в питание и 5в для него может быть не гуд.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

akl писал(а):
Alkul писал(а):...при отсутствии резисторов там, где они нужны...
На линиях SDA и SCL(SDL????) тоже нужны.
Так точно! Два резистора по 4,7кОм (можно и чуть поменьше, килоома 3) каждый.
akl писал(а):Правда, не знаю что такое DS13071.
Обычные часы реального времени с интерфейсом I2C.
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Поглядел ДШ, можно включить подтяжку. Так что I2C думаю будет работать и без внешних резисторов.

Код: Выделить всё

These pins interface the AVR TWI with the rest of the MCU system. The output drivers contain a slew-rate 
limiter in order to conform to the TWI specification. The input stages contain a spike suppression unit removing 
spikes shorter than 50 ns. Note that the internal pull-ups in the AVR pads can be enabled by setting the PORT 
bits corresponding to the SCL and SDA pins, as explained in the I/O Port section. The internal pull-ups can in 
some systems eliminate the need for external ones.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Где-то читал, что встроенная подтяжка великовата для I2C, могут ловиться помехи. Если микросхемы рядом наверное ничего страшного, но если поставить внешние резисторы точно хуже не будет.
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

А что, с запрещенным RESETом нельзя пролить МК в программаторе?
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

ZIPMan111 писал(а):А что, с запрещенным RESETом нельзя пролить МК в программаторе?
В параллельном (с выпайкой МК) - можно. В последовательном (SPI) - нет. Еще FuseDoctor может помочь.

Никогда не надо запрещать RESET, если планируется внутрисхемное программирование, лучше более мощный МК взять.
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

Я вне схемы программирую. Программатор собрал сам. USBTinyISP...
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

ZIPMan111 писал(а):Я вне схемы программирую. Программатор собрал сам. USBTinyISP...
В данном случае это неважно - хоть Вы и вне схемы программируете, но программатор у Вас все равно последовательный и такое программирование ничуть не отличается от ISP-программирования в схеме.
С запрещенным ресетом программировать последовательно нельзя.
Зачем ресет-то запретили?
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

Да я RESET наверно ещё не запретил. И схему не я рисовал. Нашёл в сети. Когда прошивал, забыл наверно фьюзы прочитать, прежде чем прошивать их. Воткнул МК в собранные часы, а они не заработали. Решил проверить фьюзы, а там во всех окошках 0х00. А какие были на новом МК - не знаю. В даташите они представлены в двоичном виде. В шестнадцатеричный пока не научился переводить...
Программатор на пяти проводках последовательный или параллельный? Такой у меня тоже есть
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

ZIPMan111 писал(а):В даташите они представлены в двоичном виде. В шестнадцатеричный пока не научился переводить...
В стандартном калькуляторе windows есть функция перевода между всеми системами счисления.
Хотя из 16-ричной в двоичную и наоборот элементарно в голове переводится, ничего сложного.
ZIPMan111 писал(а):Решил проверить фьюзы, а там во всех окошках 0х00.
Ваш программатор точно корректно "видит" МК?
ZIPMan111 писал(а):Программатор на пяти проводках последовательный или параллельный?
Последовательный.
ZIPMan111 писал(а):Когда прошивал, забыл наверно фьюзы прочитать, прежде чем прошивать их.
В программаторе, с которым работаю я, есть опция, позволяющая не прошивать фьюзы при прошивке флэш и EEPROM. Очень рекомендую Вам (если у Вашего программатора есть такая возможность) поступать именно так - не трогать фьюзы при прошивке, если Вы не уверены.
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

Видит корректно вроде. При чтении и записи ошибок не выдаёт. С ним фьюзы можно не трогать. Но я их уже потрогал...
А если я отпаяю RESET в программаторе или если RESET запрещен, то должна ошибка вылезти при попытке прошить или прочитать МК?
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Прочитайте фьюзы, они должны отличаться от 0x00 и 0xFF, т.к. у M48 есть 2 фьюза RSTDISBL и SPIEN, они инверсны относительно друг-друга, в случае, если они равны, у вас либо отключен ресет, либо отключено последовательное программирование и вашим программатором невозможно причитать старший фьюз-байт как 0x00 или 0xFF. Еще вариант - прочитать сигнатуру, она тоже должна отличаться то 0x00 и 0xFF. Некоторые программаторы игнорируют такие ошибки как неконтакт или вообще невхождение контроллера в режим программирования, результатом чаще всего является ответ 0xFF на все запросы.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Открыл глаза
Сообщения: 40
Зарегистрирован: Чт июн 23, 2016 13:15:34

Сообщение ZIPMan111 »

Спасибо, понял. Буду разбираться
Ответить

Вернуться в «AVR»