реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Mega16, проблемы с внутренним RC генератором
A.T.
сообщение Feb 11 2009, 16:40
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 9-10-08
Пользователь №: 40 812



Приятного времни суток! smile.gif

Есть проблема... В устройстве используется ATMega16, тактирование от внутреннего RC генератора на частоте 1мгц. Контроллер прошивается с ошибками. При выставлении частоты 2мгц, шьется и верифицируется без проблем, но... работает по ощущениям (а точнее по звукам, кторые должно издавать устройство) раза в 1.5-2 быстрее. Калибровочный байт отдает как 0xFF. При попытке изменить его в строну уменьшения (в програме) и последующем сбросе - контроллер зависает. Есть аналогичное устройство прекрасной работающее с этой прошивкой, и адекватно воспринимающее изменение тактовой частоты с 1 до 2мгц.

Вопрос - ПОЧЕМУ? smile.gif В чем может быть проблема?

Спасибо!


P.S. Заводить контроллер от кварца на 1мгц еще не пробовал.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 11 2009, 17:04
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Ну раз читается 255 из байта калибровки, значит полетел. Такое бывает при ошибках записи. А с ошибками пишется потому, что у Вас, видимо, слишком высокая частота spi на программаторе.

Вообщем, выбросьте этот камень, возьмите свежий wink.gif , и уменьшите скорость на программаторе.

Хотя камень в ведро отправлять не надо, поставите его в девайс, который с кварцем, если, конечно, Вы такие делаете.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
A.T.
сообщение Feb 11 2009, 18:57
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 9-10-08
Пользователь №: 40 812



Цитата(Rst7 @ Feb 11 2009, 23:04) *
Ну раз читается 255 из байта калибровки, значит полетел. Такое бывает при ошибках записи.

Это необратимо? И при какй комбинации ошибок так получается?

Цитата(Rst7 @ Feb 11 2009, 23:04) *
А с ошибками пишется потому, что у Вас, видимо, слишком высокая частота spi на программаторе.


Пробовал СТК200 и AVR910, последний с "регулятором скорости"... ошибки продолжались...

На второй плате с этими-же програматорами проблем нет...

Цитата(Rst7 @ Feb 11 2009, 23:04) *
Вообщем, выбросьте этот камень, возьмите свежий wink.gif , и уменьшите скорость на программаторе.


Выкинуть была первая мысль..., но... это ж надо его отпаять/откусить и паять новый... smile.gif Я эту плату откинул и занялся дублером..., теперь дошла очередь до проблемной...

Цитата(Rst7 @ Feb 11 2009, 23:04) *
Хотя камень в ведро отправлять не надо, поставите его в девайс, который с кварцем, если, конечно, Вы такие делаете.


Моё устройство опытный образец... там под кварц все разведено, но не поставлено... буду пробовать завтра...
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 11 2009, 19:13
Сообщение #4


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Это необратимо? И при какй комбинации ошибок так получается?


Наверняка обратимо. Только мы не знаем как. Atmel-то при тесте чипов шьет это значение, значит должны быть секретные команды smile.gif
А при какой комбинации ошибок - тоже неизвестно. Замечено, что происходит сбой записи и нарушаются или фузы, или сигнатура, или, вот, байт калибровки. Есть правда еще один вариант, что внутренний генератор при максимальном значении калибровки работает неустойчиво, от этого и глюки. Попробуйте от кварца поехать, сначала впаяйте кварц, прошейте только фузы, чтобы поехало от кварца, а потом жарьте уже основной код.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
A.T.
сообщение Feb 13 2009, 14:30
Сообщение #5





Группа: Новичок
Сообщений: 5
Регистрация: 9-10-08
Пользователь №: 40 812



Цитата(Rst7 @ Feb 12 2009, 01:13) *
Наверняка обратимо. Только мы не знаем как. Atmel-то при тесте чипов шьет это значение, значит должны быть секретные команды smile.gif
А при какой комбинации ошибок - тоже неизвестно. Замечено, что происходит сбой записи и нарушаются или фузы, или сигнатура, или, вот, байт калибровки. Есть правда еще один вариант, что внутренний генератор при максимальном значении калибровки работает неустойчиво, от этого и глюки. Попробуйте от кварца поехать, сначала впаяйте кварц, прошейте только фузы, чтобы поехало от кварца, а потом жарьте уже основной код.


На 1Мгц не оказалось под рукой..., были опробованы резонаторы на 2.048 и 8Мгц... и шьется, и проверяется.. и работает, но... опять быстрее чем на "другой правильной плате", с учетом увеличения скорости работы... На "правильной" период тестового сигнала 500мс, на "кривой" с резонатором 2.048 Мгц ~ 85... Разбирательства продолжаются wink.gif
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 13 2009, 15:08
Сообщение #6


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
На "правильной" период тестового сигнала 500мс, на "кривой" с резонатором 2.048 Мгц ~ 85...


500 на "правильной" плате - это если туда кварц 2.048 сунуть?

Если да, то очень похоже, что на "неправильной" плате продолжает работать от внутреннего RC без установленного фуза CKDIV, т.е. при нормальном содержимом байта калибровки было бы 8МГц, а со значением 255 очень может получиться как раз около 12ти. Проверьте фузы еще раз. И посмотрите частоту генерации осциллографом.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
A.T.
сообщение Feb 15 2009, 12:15
Сообщение #7





Группа: Новичок
Сообщений: 5
Регистрация: 9-10-08
Пользователь №: 40 812



Цитата(Rst7 @ Feb 13 2009, 21:08) *
500 на "правильной" плате - это если туда кварц 2.048 сунуть?

Нет... 500 это на плате работающей от внутреннего RC генератора.

Цитата(Rst7 @ Feb 13 2009, 21:08) *
Если да, то очень похоже, что на "неправильной" плате продолжает работать от внутреннего RC без установленного фуза CKDIV, т.е. при нормальном содержимом байта калибровки было бы 8МГц, а со значением 255 очень может получиться как раз около 12ти. Проверьте фузы еще раз. И посмотрите частоту генерации осциллографом.


CKDIV... это от какой меги? В 16 такой нет... Если смотреть на резонаторе - то частоты правильные либо 2.048, либо 8 смотря какой подключать.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Feb 15 2009, 12:29
Сообщение #8


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
CKDIV... это от какой меги? В 16 такой нет...


К сожалению, даташит далеко, я не помню, как там сделан генератор. В новых камнях он всегда 8МГц и в зависимости от этого фуза или делится на 8, или не делится.

Цитата
Если смотреть на резонаторе - то частоты правильные либо 2.048, либо 8 смотря какой подключать.


Тогда ищите ошибку в коде. Я сомневаюсь, что Вам так удалось камень убить.

А вообще, уже давно поменяли бы камень и не думали, в нем причина или не в нем.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
SysRq
сообщение Feb 15 2009, 13:52
Сообщение #9


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168





При этом обязательно CKOPT = 1 (не запрограммирован).
Может быть состояния запрограммирован (0) и не запрограммирован (1) перепутались в оболочке программатора и голове? :)

CKDIV в M16 нету.
Go to the top of the page
 
+Quote Post
A.T.
сообщение Feb 17 2009, 14:40
Сообщение #10





Группа: Новичок
Сообщений: 5
Регистрация: 9-10-08
Пользователь №: 40 812



Цитата(Rst7 @ Feb 15 2009, 18:29) *
Тогда ищите ошибку в коде. Я сомневаюсь, что Вам так удалось камень убить.

Писал ранее, есть другая плата... с этой же прошивокой работает нормально....

Цитата(Rst7 @ Feb 15 2009, 18:29) *
А вообще, уже давно поменяли бы камень и не думали, в нем причина или не в нем.


Сменю... хотелось выяснить что это было такое...

Цитата(SysRq @ Feb 15 2009, 19:52) *


При этом обязательно CKOPT = 1 (не запрограммирован).
Может быть состояния запрограммирован (0) и не запрограммирован (1) перепутались в оболочке программатора и голове? smile.gif


Тут совсем весело..., хоть 0 хоть 1 с внутренним RC на 1 Мгц заводится, но прошивается с ошибками, и "висом" при резете.

С резонатором на 2.048, старым, большим, "советским" smile.gif С 0 заводится и работает, но контроллер продолжает работать в 2 раза быстрее, при 2.048 на кварце. Если СКОРТ =1, то работает уже с "нормальной" скоростью, но... до первого резета или перепрошивки.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 15:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01442 секунд с 7
ELECTRONIX ©2004-2016