Перейти к содержанию
    

Не подключается кварц, Atmega8

Я решил стабилизировать частоту МК кварцевым резонатором, т.к. она со временем уменьшается, в программе указал частоту 4МГц, выставил фьюзы как указано для этой частоты 1110, в протеусе схема не работает при подключении кварца (в настройках МК я выбрал работу от внешнего кварца и указал частоту), программатор прошивает, но схема также не работает, в чем может быть причина?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, astral_ сказал:

программатор прошивает, но схема также не работает, в чем может быть причина?

Например, вы забыли повесить на кварц конденсаторы. Или ваш программатор воспринимает галочку как ноль, а ее отсутствие - как 1 (PonyProg этим страдал, чуть ли каждую неделю лет пятнадцать назад тут кто-нибудь плакался) и вы вместо 1110 записали 0001, что соответствует внутреннему RC-генератору на 1 МГц. К тому же CKSEL=0 рекомендован для керамического резонатора, для кварца производитель рекомендует CKSEL = 1. А вообще "схема не работает" слишком неконкретно. Рассказывайте подробнее - что вы хотите получить, что наблюдаете, что за программу вы заливаете, какой программатор используете и т.п.

Программатор прошивает только один раз? Если бы вы правильно запрограммировали CKSEL на кварц и кварц не работал бы - после сброса последовательный программатор больше не смог бы подключиться к процессору. Или вы используете высоковольтный параллельный программатор? Пока будем по-умолчанию предполагать последовательный программатор, значит либо вы неправильно прошиваете CKSEL и контроллер у вас продолжает работать от внутреннего RC, либо кварц работает и дело в вашей программе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

27 minutes ago, Сергей Борщ said:

 

Конденсаторы висят, фьюзы прямые, 1111 я тоже пробовал, использую программатор ISP, мк Atmega8. Программа работала, но частота была не стабильна, я просто добавил кварц на 4МГц и в программе изменил частоту. Я слышал, что если выставить фьюзы для внешнего кварца, а кварц не подключить к МК, то при попытке его прошить будет ошибка, у меня же программа нормально записывается, МК ничего не выдает, также не работает и в протеусе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, astral_ сказал:

программатор ISP

А программа какая им управляет?

1 час назад, astral_ сказал:

если выставить фьюзы для внешнего кварца, а кварц не подключить к МК, то при попытке его прошить будет ошибка, у меня же программа нормально записывается

Я все-таки недопонял - вы прошили CKSEL для кварца и после этого, с физически отключенным кварцем он у вас все равно прошивается? Значит CRSEL не прошились или прошились неправильно - у вас идет тактирование от внутреннего RC. Или вы не пробовали с отключенным кварцем? Так попробуйте - отпаяйте его или просто замкните его ноги пинцетом. Чудес же не бывает. Прочитайте CKSEL - в них действительно то, что вы хотели записать?

1 час назад, astral_ сказал:

МК ничего не выдает

Значит программа где-то зацикливается. Может не успевает что-то сделать и его сбрасывает сторожевая собака (watchdog timer). Может вы вместе с CKSEL прописали WDTON и не сбрасываете собаку  - тогда через 16 мс она сработает и все начнется с начала. Телепатировать можно до бесконечности.

1 час назад, astral_ сказал:

также не работает и в протеусе

С протеусом не работал, но этого не понимаю - как программа может не работать? Контроллер не работает только в трех случаях - когда нет питания, когда снаружи прижата нога сброса и когда на него не подается тактирование. В симуляторе ни одно из этих условий не выполняется, он в любом случае должен исполнять какие-то ассемблерные команды.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

27 minutes ago, Сергей Борщ said:

А программа какая им управляет?

Я все-таки недопонял - вы прошили CKSEL для кварца и после этого, с физически отключенным кварцем он у вас все равно прошивается? Значит CRSEL не прошились или прошились неправильно - у вас идет тактирование от внутреннего RC. Или вы не пробовали с отключенным кварцем? Так попробуйте - отпаяйте его или просто замкните его ноги пинцетом. Чудес же не бывает. Прочитайте CKSEL - в них действительно то, что вы хотели записать?

Прошиваю с помощью AVRDUDE. 

Я не прошивал без кварца, я хотел сказать, что если прошивка прошла без ошибок, то значит МК видит кварц и как-бы схема должна работать. Я замкнул контакты кварца и при попытке прошить была ошибка. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 минут назад, astral_ сказал:

Я замкнул контакты кварца и при попытке прошить была ошибка. 

Воооот. Значит таки ваш контроллер работает от кварца, но пока непонятно, чем занимается. Тогда читайте, что я написал про WDTON.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 minutes ago, Сергей Борщ said:

Воооот. Значит таки ваш контроллер работает от кварца, но пока непонятно, чем занимается. Тогда читайте, что я написал про WDTON.

WDTON установлен в 1, как и раньше, когда МК работал без кварца. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда что-то в программе. Протеус позволяет выполнять программу по ассемблерным командам? Скорее всего - да, вот и пройдите начиная от вектора сброса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/18/2022 at 1:26 PM, Сергей Борщ said:

Воооот. Значит таки ваш контроллер работает от кварца, но пока непонятно, чем занимается. Тогда читайте, что я написал про WDTON.

или продолжает работать от внутреннего генератора, если фьюзы, как Вы писали, воспринялись некорректно.

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

например, около раза в секунду при состоянии фьюзов по умолчанию - тогда работает внутренний RC генератор, тактовая частота 1МГц.

убедитесь в работе МК со светодиодом,

 

подключите кварц, измените фьюзы при той же программе - с работающим кварцем 4МГц светодиод замигает вчетверо чаще;

если частота мигания прежняя - продолжает работать RC-генератор, смотрите правильность фьюзов,

если светодиод не мигает, но программируется - проверяйте подключение кварца, его целостность

 

уверены ли, что кварц не треснул при ударе/не повредился при пайке и т.д? для уверенности кварц на длинных выводах можно проверить в другом устройстве и впаять для начала на длинных выводах

 

и если сомнения в восприятии фьюзов, старший байт не трогайте - там запрет последовательного программирования по SPI, можно вогнать МК в режим, из которого выход только через параллельное программирование; в нем же WDT - если в программе пока отказаться от управления WDT, он и сбрасывать не будет

 

при ознакомлении с новым МК или программатором полезно считать состояние фьюзов до их изменения, записать их, сравнить с состоянием по умолчанию из документации, убедиться, как именно программатор их отображает.

 

при работающем кварце на выводе XTAL2 сигнал можно смотреть осциллографом,

проверять хлопотно, но думаю, при неверно выбранных фьюзах генератор не запустится. то же при дефекте пайки или кварца.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, bvn123 сказал:

или продолжает работать от внутреннего генератора, если фьюзы, как Вы писали, воспринялись некорректно.

Он закорачивал кварц пинцетом, контроллер при этом перестает прошиваться. Значит работает от кварца.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выложите все(проект протеуса и исходники), протеус установлен, посмотрю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/23/2022 at 9:04 AM, bvn123 said:

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

Тестовую программу я попробую и проверю сигнал осциллографом, когда сделаю отдельную плату для тестов. Но пока программа не работает даже в Протеусе, с ассемблерными командами я еще не разобрался и непонятно в каком месте ошибка. Схема не работает при подключении кварца, него работает, значит в самой программе не должно быть ошибки.

6 hours ago, codenamehawk said:

Выложите все(проект протеуса и исходники), протеус установлен, посмотрю.

 

программа.zip Proteus.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вас не смущает #define F_CPU 1000000UL ?

Все используемые порты надо настроить.

Кнопки подключили, а настройки на вход не сделали.

В свойствах резисторов поменяйте Analog на Digital, будет быстрее симулировать.

Изменено пользователем codenamehawk

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, codenamehawk said:

Вас не смущает #define F_CPU 1000000UL ?

Все используемые порты надо настроить.

Кнопки подключили, а настройки на вход не сделали.

В свойствах резисторов поменяйте Analog на Digital, будет быстрее симулировать.

 

В программе, которую я выложил, частота почему-то 1 МГц, но я заливал в мк и в Протеус ту, где 4МГц, не работало. Без кварца работает, т.е. дело не в настройках портов, свойства резисторов я поменял, эффекта нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...