Собрал часы. Не работают дисплеи ни с ОК ни с ОА. Ни одна лампочка не горит. Будто веревкой к дереву привязал индикатор. Собираю в протеусе - все работает. В чем дело? Фьюзы? А что ещё может быть? Какие они Они должны быть в этом случае? И будет ли виден убитый микроконтроллер программе сина прог? Разные тычки ставил в ней, а МК видно всегда, всегда читается. Фьюзы только там в нулях все. Так же не должно быть?
Вы их наугад, что-ли выбираете? По схеме (лапы бы за такую "смехотехнику" оборвать) непонятно, какие именно индикаторы должны быть, это определяется только программой. Надо смотреть в программе, какие уровни и куда она подает, только так можно выяснить, какой требуется индикатор - с ОК или с ОА.
ZIPMan111 писал(а):
В чем дело? Фьюзы? Какие они Они должны быть в этом случае?
Судя по схеме, МК должен тактироваться от внутреннего RC генератора. По умолчанию фьюзы выставлены как раз на такой режим с делением частоты на 8, итого тактовая частота - 1МГц. Если Вы их не трогали, то тактироваться МК должен. Не видя исходника, сложно сказать, на какую частоту тактирования все рассчитано. Но и при 1 МГц скорости работы для часов хватит за глаза.
ZIPMan111 писал(а):
Разные тычки ставил в ней, а МК видно всегда, всегда читается.
Какие "тычки"? Фьюзы, что-ли? Если Вы спрашиваете, какие фьюзы должны быть, значит, Вы имеете о них очень слабое представление. Как вообще можно что-то делать, не представляя результата своих действий? Такими действиями Вы вполне могли перевести МК на тактирование от того источника, которого у Вас нет. Если у Вас фьюзы CKSEL в нулях, то это может означать либо тактирование от внешнего источника, либо от внешнего кварца в зависимости от того, инвертирует ли фьюзы программа, которой Вы прошиваете МК. В обоих случаях МК с такими настройками в вашей схеме работать не будет, так как она рассчитана на внутренний генератор.
ZIPMan111 писал(а):
А что ещё может быть?
Да что угодно может быть, даже если фьюзы в норме. Начать с того, что сама схема вызывает вопросы. Если RESET на пине PC6 запрещен, то как Вы программируете МК? Если разрешен, то каждое нажатие на кнопку S5 будет ресетить МК. На схеме вообще не понятно, как МК должен программироваться. Где на схеме хоть один блокировочный конденсатор? Как организовано питание?
Начать нужно с проверки питания, корректно ли оно, потом разобраться с тем, что на RESET, не "нуль" ли случайно... Потом осциллографом смотреть, есть ли импульсы на выводах, управляющих индикаторами, есть ли обмен с DS1307...
Последний раз редактировалось Alkul Вт июл 26, 2016 06:21:11, всего редактировалось 2 раз(а).
У Вас в схеме нет токоограничивающих резисторов индикатора. Очень даже может быть, что Вы сожгли порты. А вот в протеусе они не горят.
Кстати, да. Самое смешное, что при отсутствии резисторов там, где они нужны - на индикаторах, резисторы есть на кнопках - там, где без них свободно можно обойтись.
Схему, видимо, какой-то пятиклассник рисовал...
ZIPMan111 писал(а):
а МК видно всегда, всегда читается. Фьюзы только там в нулях все. Так же не должно быть?
Если фьюзы в нулях, то это может означать, что все фьюзы в лог.1, если программа их инвертирует. А наличие лог.1 во всех фьюзах может означать, что на самом деле ничего с контроллера не читается, программа читает просто состояние "притянутой к питанию" шины.
Последний раз редактировалось Alkul Вт июл 26, 2016 06:32:47, всего редактировалось 1 раз.
Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2708 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
akl писал(а):
Встроенная в контроллер подтяжка великовата.
Возможно ее вообще нет, когда периферия I2C включена или есть? По логике вроде как не должно быть, слейв может иметь например 3в питание и 5в для него может быть не гуд.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2708 Откуда: г. Чайковский
Рейтинг сообщения:3 Медали: 1
Поглядел ДШ, можно включить подтяжку. Так что 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.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Где-то читал, что встроенная подтяжка великовата для I2C, могут ловиться помехи. Если микросхемы рядом наверное ничего страшного, но если поставить внешние резисторы точно хуже не будет.
Я вне схемы программирую. Программатор собрал сам. USBTinyISP...
В данном случае это неважно - хоть Вы и вне схемы программируете, но программатор у Вас все равно последовательный и такое программирование ничуть не отличается от ISP-программирования в схеме. С запрещенным ресетом программировать последовательно нельзя. Зачем ресет-то запретили?
Да я RESET наверно ещё не запретил. И схему не я рисовал. Нашёл в сети. Когда прошивал, забыл наверно фьюзы прочитать, прежде чем прошивать их. Воткнул МК в собранные часы, а они не заработали. Решил проверить фьюзы, а там во всех окошках 0х00. А какие были на новом МК - не знаю. В даташите они представлены в двоичном виде. В шестнадцатеричный пока не научился переводить... Программатор на пяти проводках последовательный или параллельный? Такой у меня тоже есть
В даташите они представлены в двоичном виде. В шестнадцатеричный пока не научился переводить...
В стандартном калькуляторе windows есть функция перевода между всеми системами счисления. Хотя из 16-ричной в двоичную и наоборот элементарно в голове переводится, ничего сложного.
ZIPMan111 писал(а):
Решил проверить фьюзы, а там во всех окошках 0х00.
Ваш программатор точно корректно "видит" МК?
ZIPMan111 писал(а):
Программатор на пяти проводках последовательный или параллельный?
Последовательный.
ZIPMan111 писал(а):
Когда прошивал, забыл наверно фьюзы прочитать, прежде чем прошивать их.
В программаторе, с которым работаю я, есть опция, позволяющая не прошивать фьюзы при прошивке флэш и EEPROM. Очень рекомендую Вам (если у Вашего программатора есть такая возможность) поступать именно так - не трогать фьюзы при прошивке, если Вы не уверены.
Видит корректно вроде. При чтении и записи ошибок не выдаёт. С ним фьюзы можно не трогать. Но я их уже потрогал... А если я отпаяю RESET в программаторе или если RESET запрещен, то должна ошибка вылезти при попытке прошить или прочитать МК?
Прочитайте фьюзы, они должны отличаться от 0x00 и 0xFF, т.к. у M48 есть 2 фьюза RSTDISBL и SPIEN, они инверсны относительно друг-друга, в случае, если они равны, у вас либо отключен ресет, либо отключено последовательное программирование и вашим программатором невозможно причитать старший фьюз-байт как 0x00 или 0xFF. Еще вариант - прочитать сигнатуру, она тоже должна отличаться то 0x00 и 0xFF. Некоторые программаторы игнорируют такие ошибки как неконтакт или вообще невхождение контроллера в режим программирования, результатом чаще всего является ответ 0xFF на все запросы.
_________________ Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Сейчас этот форум просматривают: Starichok51 и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения