AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
22.12.2020, 10:02
|
|
Частый гость
Регистрация: 23.12.2006
Адрес: Волжский
Сообщений: 34
Сказал спасибо: 24
Сказали Спасибо 24 раз(а) в 11 сообщении(ях)
|
Re: Применение МК без кварца.
У адресной ленты ws2812 нет обратной связи и она чувствительна к морозам. Кварц на микроконтроллере не спасает, а порой еще хуже с ним. Я делал так: если у меня лента ws2812 длиной 20 светиков, то я отдавал код для 20 и 21-й для проца (выход с 20 светика подключал к контроллеру). так я узнавал исправность ленты. При неполучении 21 кода я корректировал длительность импульсов. До минус 22 лента продолжала работать. При более низкой температуре, увы, лента переставала откликаться.
Правда, все эти пляски были не для ленты, но на ней я испытывал сам принцип коррекции.
Я работу поменял, вряд ли что осталось с наработок.
Кварцы применяю редко, жадный я два вывода и габариты терять. SP прекрасно работает и без кварцев
|
|
|
Эти 2 пользователя(ей) сказали Спасибо hgm0 за это сообщение:
|
|
|
22.12.2020, 12:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,106
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Re: Применение МК без кварца.
Сообщение от Someone
|
0x55 иногда 0xD5
Т.е. "искажается" только один бит, 7й, который следует сразу после старта.
|
Сразу после старта идёт МЛАДШИЙ бит.
Сообщение от SlovachevskyDV
|
Смотрел осциллом. Данные похожи на адекватные, но длительность импульсов передачи слегка отличается от приема. Буквально на несколько процентов. Точно не измерял
|
Какой вы лапочка )) Поискать в интернетиках, что допустимый разбег RS 2% - никак? Или незачем, потому что "не измерял"?
Сообщение от SlovachevskyDV
|
Бывало, что даже количество принятых байт было больше на 2-3 чем нужно.
|
Налицо ошибка в программе. Таймауты, инициализация счётчиков, корректная обработка прерываний - всё смотрели?
Сообщение от SlovachevskyDV
|
После перебора OSCCAL стабильно выводило значения только на диапазоне 9C - AF. При значении FF прием тоже перестал работать.
|
Это вообще за гранью... Надо, как бы, не перебирать OSCCAL, а корректировать его адекватно.
Сообщение от SlovachevskyDV
|
Если я все правильно понял - это ЖЕСТЬ!
|
Это круче... чугуний?
Даташитов не читали? Я за вас сделал эту работу. Цитирую:
"Address: 0x31 (0x51) OSCCAL Oscillator Calibration Register"
документ 2486S–AVR–08/07 страница 287, таблица "Register Summary"
|
|
|
|
22.12.2020, 14:48
|
|
Временная регистрация
Регистрация: 10.10.2011
Адрес: Донецк
Сообщений: 94
Сказал спасибо: 65
Сказали Спасибо 48 раз(а) в 13 сообщении(ях)
|
Re: Применение МК без кварца.
Сообщение от makakus
|
Это вообще за гранью... Надо, как бы, не перебирать OSCCAL, а корректировать его адекватно.
|
Не думаю, что эта методика пойдет в производство. Это был просто эксперимент. Данная муть сделана для того, чтобы локализовать проблему. И определить, в чем причина:
-в частоте
-в программе
-в железе.
Из результатов я понял, что все таки дело в частоте.
Мои методы решения проблем, конечно, отличаются от общепринятых. Иногда, даже до безумия странные. Ну вот люблю я изобретать велосипеды . Все мы не без греха. К тому же, именно такой метод наиболее просто было реализовать в уже имеющейся программе.
Сообщение от makakus
|
Какой вы лапочка )) Поискать в интернетиках, что допустимый разбег RS 2% - никак? Или незачем, потому что "не измерял"?
|
Я уже другому отвечал, отвечу и вам: О нескольких процентах я писал не потому что надеялся, что это в пределах нормы, а в ответ на предположение о полном или частичном обрыве передачи данных.
Сообщение от makakus
|
Налицо ошибка в программе. Таймауты, инициализация счётчиков, корректная обработка прерываний - всё смотрели?
|
Не-а. В программе ошибки нет. Как уже написано выше. Дело именно в частоте.
Еще раз объясню: Я прекрасно понимаю, что для задач, которые критичны к частоте, нужно использовать кварц. Провтыкал (каюсь ) данный момент в начале, т.к идея, снабдить девайс связью, возникла позже. Пытался найти путь решения программно. Но вижу что это муторное дело, и не даст 100% защиты. Тем более, что прога заняла уже 99.8% флеша. Так что проект ждет комплексная аппаратно-програмная переделка.
Сюда написал изначально только потому, что показался странным факт сбоев передачи при стабильном приеме. Последним (богомерзким) перебором OSCCAL выяснил, что передача и прием имеют разное допустимое отклонение в частотах. Почему-то именно этой информации я не нагуглил. Хреново гуглил видимо.
Огромное спасибо всем вежливо ответившим.
И отдельное спасибо тем, кто отвечал невежливо . Именно благодаря вам я нахожу в себе силы, по большей части, искать ответы самостоятельно, вместо того чтобы спрашивать совета и быть "оплеванным"
Последний раз редактировалось SlovachevskyDV; 22.12.2020 в 15:11.
|
|
|
|
22.12.2020, 15:10
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 943
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
|
Re: Применение МК без кварца.
Сообщение от makakus
|
Даташитов не читали? Я за вас сделал эту работу.
|
Но не очень хорошо. . А то бы прочитали, что в меге8 каждая из частот внутреннего генератора требует свой калибровочный байт. И в OSCCAL записывается при запуске после ресета для генератора "по умолчанию", того, который, 1 МГц.
Сообщение от makakus
|
Сразу после старта идёт МЛАДШИЙ бит.
|
Да, точно, спасибо за поправку.
|
|
|
|
22.12.2020, 15:20
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 943
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
|
Re: Применение МК без кварца.
Сообщение от SlovachevskyDV
|
Дело именно в частоте.
|
По идее, если использовать частоту 1 Мгц, загрузится и будет использован калибровочный байт, который определяют при производстве. При температуре 25 градусов. Т.е. в вашем случае должно работать без манипуляций с калибровочным регистром. И кстати, в даташите говорится что при использовании внутреннего РЦ, фьюз CKOPT должен быть всегда не запрограммирован.
Ну и вопрос вдогонку - а почему не использовали более современную мега88, в ней-то внутренний РЦ по умолчанию 8 МГц, и, соответственно, грузится и калибруется 8 МГц (скорее всего у меня как раз поэтому нет проблем даже при "крайних" условиях, -40 и +85).
|
|
|
|
22.12.2020, 15:31
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 943
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
|
Re: Применение МК без кварца.
Сообщение от SlovachevskyDV
|
Но вижу что это муторное дело, и не даст 100% защиты.
|
Предложенная мной апнота как раз даёт гарантию, близкую к 100%. Потому что приняв первый байт пакета, который синхро, проводится перекалибровка, и остальные байты пакета принимаются уже с "идеальной" частотой. Ну я так понял, из беглого прочтения, сам-то я её не делал. А гемора никакого нет - хоть в самой апноте код и не приводится, однако он всегда лежит "рядом" на сайте производителя. Т.е. как я и писал выше, всё украдено до нас.
|
|
|
|
22.12.2020, 15:33
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,770 раз(а) в 5,896 сообщении(ях)
|
Re: Применение МК без кварца.
Сообщение от SlovachevskyDV
|
Именно благодаря вам я нахожу в себе силы, по большей части, искать ответы самостоятельно
|
Так держать!
Хороший, конечно, подход: "Ищи у соседа, у себя всегда успеешь!"(каротажники), но не в подобных случаях.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
22.12.2020, 15:40
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 943
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
|
Re: Применение МК без кварца.
ЗЫ: Кстати, глянул в даташите на мегу8 график Calibrated 8 MHz RC Oscillator Frequency vs. Osccal Value, и из него следует, что для внутреннего РЦ 8 МГц, припитании 5В и температуре 25 градусов, OSCCAL должен быть в диапазоне 160(0хА0)...176(0хВ0). Ровно 8 МГц должно быть примерно при 168(0хА8 ).
Последний раз редактировалось Someone; 22.12.2020 в 15:43.
|
|
|
Сказали "Спасибо" Someone
|
|
|
22.12.2020, 15:43
|
|
Временная регистрация
Регистрация: 10.10.2011
Адрес: Донецк
Сообщений: 94
Сказал спасибо: 65
Сказали Спасибо 48 раз(а) в 13 сообщении(ях)
|
Re: Применение МК без кварца.
Сообщение от Someone
|
По идее, если использовать частоту 1 Мгц, загрузится и будет использован калибровочный байт, который определяют при производстве. При температуре 25 градусов. Т.е. в вашем случае должно работать без манипуляций с калибровочным регистром.
|
Если... Но в том-то и дело что 1МГц - мало. Нужно минимум 8. Но в любом случае переделаю все так, чтобы можно было "без манипуляций с калибровочным регистром". Покручу схему, впихну кварц и забуду эти танцы с бубном как страшный сон.
Сообщение от Someone
|
И кстати, в даташите говорится что при использовании внутреннего РЦ, фьюз CKOPT должен быть всегда не запрограммирован.
|
Так он у меня и не запрограммирован сейчас.
Сообщение от Someone
|
а почему не использовали более современную мега88
|
Потому что там, где я работаю, уже было куплено вагон и меленькая тележка именно старых восьмых мег. Задолго до того, как я начал с ними работать.
Была бы моя воля, ничего кроме stm не использовали бы.
|
|
|
|
22.12.2020, 15:57
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 943
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
|
Re: Применение МК без кварца.
Сообщение от SlovachevskyDV
|
1МГц - мало. Нужно минимум 8
|
Ну, если верить графику, зависимости частоты от калибровочного байта, при РЦ 8 МГц, и байте равном 240, получим тактовую 13 МГц. Так что вполне можно и больше 8 МГц. Правда довести значение до 240 надо плавно, шагами не более 10%, дабы не было сбоев при работе с флэш (т.е. при выполнении программы).
Последний раз редактировалось Someone; 22.12.2020 в 16:01.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:07.
|
|