|
|
  |
Mega16, проблемы с внутренним RC генератором |
|
|
|
Feb 11 2009, 16:40
|
Группа: Новичок
Сообщений: 5
Регистрация: 9-10-08
Пользователь №: 40 812

|
Приятного времни суток!  Есть проблема... В устройстве используется ATMega16, тактирование от внутреннего RC генератора на частоте 1мгц. Контроллер прошивается с ошибками. При выставлении частоты 2мгц, шьется и верифицируется без проблем, но... работает по ощущениям (а точнее по звукам, кторые должно издавать устройство) раза в 1.5-2 быстрее. Калибровочный байт отдает как 0xFF. При попытке изменить его в строну уменьшения (в програме) и последующем сбросе - контроллер зависает. Есть аналогичное устройство прекрасной работающее с этой прошивкой, и адекватно воспринимающее изменение тактовой частоты с 1 до 2мгц. Вопрос - ПОЧЕМУ?  В чем может быть проблема? Спасибо! P.S. Заводить контроллер от кварца на 1мгц еще не пробовал.
|
|
|
|
|
Feb 11 2009, 17:04
|

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

|
Ну раз читается 255 из байта калибровки, значит полетел. Такое бывает при ошибках записи. А с ошибками пишется потому, что у Вас, видимо, слишком высокая частота spi на программаторе. Вообщем, выбросьте этот камень, возьмите свежий  , и уменьшите скорость на программаторе. Хотя камень в ведро отправлять не надо, поставите его в девайс, который с кварцем, если, конечно, Вы такие делаете.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Feb 11 2009, 18:57
|
Группа: Новичок
Сообщений: 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)  Вообщем, выбросьте этот камень, возьмите свежий  , и уменьшите скорость на программаторе. Выкинуть была первая мысль..., но... это ж надо его отпаять/откусить и паять новый...  Я эту плату откинул и занялся дублером..., теперь дошла очередь до проблемной... Цитата(Rst7 @ Feb 11 2009, 23:04)  Хотя камень в ведро отправлять не надо, поставите его в девайс, который с кварцем, если, конечно, Вы такие делаете. Моё устройство опытный образец... там под кварц все разведено, но не поставлено... буду пробовать завтра...
|
|
|
|
|
Feb 11 2009, 19:13
|

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

|
Цитата Это необратимо? И при какй комбинации ошибок так получается? Наверняка обратимо. Только мы не знаем как. Atmel-то при тесте чипов шьет это значение, значит должны быть секретные команды  А при какой комбинации ошибок - тоже неизвестно. Замечено, что происходит сбой записи и нарушаются или фузы, или сигнатура, или, вот, байт калибровки. Есть правда еще один вариант, что внутренний генератор при максимальном значении калибровки работает неустойчиво, от этого и глюки. Попробуйте от кварца поехать, сначала впаяйте кварц, прошейте только фузы, чтобы поехало от кварца, а потом жарьте уже основной код.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Feb 13 2009, 14:30
|
Группа: Новичок
Сообщений: 5
Регистрация: 9-10-08
Пользователь №: 40 812

|
Цитата(Rst7 @ Feb 12 2009, 01:13)  Наверняка обратимо. Только мы не знаем как. Atmel-то при тесте чипов шьет это значение, значит должны быть секретные команды  А при какой комбинации ошибок - тоже неизвестно. Замечено, что происходит сбой записи и нарушаются или фузы, или сигнатура, или, вот, байт калибровки. Есть правда еще один вариант, что внутренний генератор при максимальном значении калибровки работает неустойчиво, от этого и глюки. Попробуйте от кварца поехать, сначала впаяйте кварц, прошейте только фузы, чтобы поехало от кварца, а потом жарьте уже основной код. На 1Мгц не оказалось под рукой..., были опробованы резонаторы на 2.048 и 8Мгц... и шьется, и проверяется.. и работает, но... опять быстрее чем на "другой правильной плате", с учетом увеличения скорости работы... На "правильной" период тестового сигнала 500мс, на "кривой" с резонатором 2.048 Мгц ~ 85... Разбирательства продолжаются
|
|
|
|
|
Feb 15 2009, 12:15
|
Группа: Новичок
Сообщений: 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 смотря какой подключать.
|
|
|
|
|
Feb 15 2009, 12:29
|

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

|
Цитата CKDIV... это от какой меги? В 16 такой нет... К сожалению, даташит далеко, я не помню, как там сделан генератор. В новых камнях он всегда 8МГц и в зависимости от этого фуза или делится на 8, или не делится. Цитата Если смотреть на резонаторе - то частоты правильные либо 2.048, либо 8 смотря какой подключать. Тогда ищите ошибку в коде. Я сомневаюсь, что Вам так удалось камень убить. А вообще, уже давно поменяли бы камень и не думали, в нем причина или не в нем.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Feb 17 2009, 14:40
|
Группа: Новичок
Сообщений: 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) перепутались в оболочке программатора и голове?  Тут совсем весело..., хоть 0 хоть 1 с внутренним RC на 1 Мгц заводится, но прошивается с ошибками, и "висом" при резете. С резонатором на 2.048, старым, большим, "советским"  С 0 заводится и работает, но контроллер продолжает работать в 2 раза быстрее, при 2.048 на кварце. Если СКОРТ =1, то работает уже с "нормальной" скоростью, но... до первого резета или перепрошивки.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|