не корректно приходят данные c uart в компьютер
не корректно приходят данные c uart в компьютер
Добрый день! использовал мк atmega8. по неопытности использовал внутренний осциллятор, выставил частоту на 8мгц. отправляются данные по uart, изредка приходили кракозябры. скорость обмена 9600. В то время наступили холода, и начал замечать что данные приходят не верно. т.к. в офисе все работало. из 10 сделанных плат около 5 работает не верно. Видимо придется колхозить кварц дополнительно? или уменьшить частоту осциллятора до 1мгц? по какой причине это могло произойти, изза холода начала меняться частота осциллятора? или же у атмег начала плавать частота?
- Реклама
- Starichok51
- Модератор
- Сообщения: 19055
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: не корректно приходят данные c uart в компьютер
ты сам ответил - из-за холода начала меняться частота внутреннего осциллятора.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: не корректно приходят данные c uart в компьютер
У мега8 только 1 мгц генератор калиброван. Или калибруйте 8, или спускайтесь на 1.
- Starichok51
- Модератор
- Сообщения: 19055
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: не корректно приходят данные c uart в компьютер
да, можно в программаторе прочитать калибровочное число для 8 МГц и потом в прошивке вписать его в калибровочный регистр.
но температурная зависимость частоты останется. и хватит ли ее для устойчивой синхронизации всей телеграммы?
самое надежное - поставить кварц.
но температурная зависимость частоты останется. и хватит ли ее для устойчивой синхронизации всей телеграммы?
самое надежное - поставить кварц.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Re: не корректно приходят данные c uart в компьютер
Человеку как то делал ручную подстройку внутреннего генератора. Т.е., заказчик имел возможность ручками подстраивать частоту по uart.
- Реклама
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: не корректно приходят данные c uart в компьютер
Можно простую програмку написать, где в OSCCAL значения записывать и выводить на UART, будет типа:
ж═≤Иж░ІХ▒≥║Жж═≤Иж░ІХ▒≥║Жж═≤И├ж░ІХ▒≥║Жж═≤И√жvy▒Y≥vI║AИV2
it works with OSCCAL=173
it works with OSCCAL=174
it works with OSCCAL=175
it works with OSCCAL=176
it works with OSCCAL=177
it works with OSCCAL=178
it works with OSCCAL=179
it works with OSCCAL=180
it works with OSCCAL=181
it works with OSCCAL=182
it works with OSCCAL=183
it works with OSCCAL=184
it works with OSCCAL=185
it works with OSCCAL=186
it works with OSCCAL=187
it works with OSCCAL=188
it works with OSCCAL=189
it works with OSCCAL=190▀K╨zK
мусор...
потом взять среднее значение...
Можно припаять часовой кварц - у меня на меге48 без конденсаторов работает и изучить апликейшн AVR055
Спойлер
мусор, еще мусор, куча мусора...ж═≤Иж░ІХ▒≥║Жж═≤Иж░ІХ▒≥║Жж═≤И├ж░ІХ▒≥║Жж═≤И√жvy▒Y≥vI║AИV2
it works with OSCCAL=173
it works with OSCCAL=174
it works with OSCCAL=175
it works with OSCCAL=176
it works with OSCCAL=177
it works with OSCCAL=178
it works with OSCCAL=179
it works with OSCCAL=180
it works with OSCCAL=181
it works with OSCCAL=182
it works with OSCCAL=183
it works with OSCCAL=184
it works with OSCCAL=185
it works with OSCCAL=186
it works with OSCCAL=187
it works with OSCCAL=188
it works with OSCCAL=189
it works with OSCCAL=190▀K╨zK
мусор...
Можно припаять часовой кварц - у меня на меге48 без конденсаторов работает и изучить апликейшн AVR055
Re: не корректно приходят данные c uart в компьютер
Именно так и делал. И даже это можно автоматизировать.
Делал и второй вариант - там был асинхронный кварцевый генератор на 32 кгц.
Делал и второй вариант - там был асинхронный кварцевый генератор на 32 кгц.
Re: не корректно приходят данные c uart в компьютер
У современных AVR RC осциллятор имеет очень хорошую термокомпенсацию. Если МК принимает пакеты извне, то можно по ним сделать коррекцию.
- GoldenAndy
- Поставщик валерьянки для Кота
- Сообщения: 1925
- Зарегистрирован: Чт июл 28, 2016 07:58:37
- Откуда: Kyiv, UA
- Контактная информация:
Re: не корректно приходят данные c uart в компьютер
Да тут не важно, какой кварц. ЮАРТ кварцевать надо. А будет это 32768 и расчет OSCCAL или BAUDRATE, или это будет кварц на 1/4/8/16МГц - не важно.
Важно, что у Меги8 должны быть свободны PORTB6/7.
А если они заняты - то тут уже только пляски с бубном.
Например, если ПО позволит - софтовый уарт с подстройкой скорости передатчика по принимаемым данным.
Что то похожее изобретали тут в одной из веток форума...
Добавлено after 1 hour 3 minutes 32 seconds:
вдогонку.
Вот тут обсуждалась стабильность юарта без кварца.
https://radiokot.ru/forum/viewtopic.php ... 0#p3942250
Важно, что у Меги8 должны быть свободны PORTB6/7.
А если они заняты - то тут уже только пляски с бубном.
Например, если ПО позволит - софтовый уарт с подстройкой скорости передатчика по принимаемым данным.
Что то похожее изобретали тут в одной из веток форума...
Добавлено after 1 hour 3 minutes 32 seconds:
вдогонку.
Вот тут обсуждалась стабильность юарта без кварца.
https://radiokot.ru/forum/viewtopic.php ... 0#p3942250
Re: не корректно приходят данные c uart в компьютер
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4089107#p4089107"]ЮАРТ кварцевать надо.[/uquote]
Всё прекрасно работает без всяких кварцев. Причём в широком диапазоне температур.
Всё прекрасно работает без всяких кварцев. Причём в широком диапазоне температур.
- GoldenAndy
- Поставщик валерьянки для Кота
- Сообщения: 1925
- Зарегистрирован: Чт июл 28, 2016 07:58:37
- Откуда: Kyiv, UA
- Контактная информация:
Re: не корректно приходят данные c uart в компьютер
parovoZZ, или пример прекрасно работающего юарт на меге8 (см. вопрос ТС), или сообщение не соответствует действительности.
Если есть пример - научите ТС и остальных, как .
А то сказанули, абы сказануть?
Если есть пример - научите ТС и остальных, как .
А то сказанули, абы сказануть?
Re: не корректно приходят данные c uart в компьютер
Добрый день, Друзья.
Пытаюсь из меги8 по uart организовать передачу на комп. Пытался передавать на разных скоростях от 2400 до 115200, с одним стопом и с двумя.
Сначала пытался передавать строку, потом одиночный символ или число в UDR передавать.
Но терминал мне пишет либо <break> либо <0x80><break> Подскажите куда копать.
атмега8а кварц 8Мгц, прошиваю с верефикацией. В качестве приемника USB_UART CH340G
Добавлено after 3 hours 31 minute 8 seconds:
Пока ждал премодерации сообщения, решил посмотреть что у меня с кварцем происходит.
А там тишина полная. Хотел уже кварц перепаивать. Но вспомнил что другая мега у меня в отладочную плату воткнута
Мегу то я прошил, а вот записать фьюзы как то и не сообразил.
Я конечно вычитал что <break> в консоли может возникать от несоответствия скоростей приемника и передатчика.
Но я то был полностью уверен что мега использует скорость которую я выставил, а она похоже была в 8 раз ниже.
Вот и получил себе пол дня мучений с <break>ами в консоли.
Пытаюсь из меги8 по uart организовать передачу на комп. Пытался передавать на разных скоростях от 2400 до 115200, с одним стопом и с двумя.
Сначала пытался передавать строку, потом одиночный символ или число в UDR передавать.
Но терминал мне пишет либо <break> либо <0x80><break> Подскажите куда копать.
атмега8а кварц 8Мгц, прошиваю с верефикацией. В качестве приемника USB_UART CH340G
Добавлено after 3 hours 31 minute 8 seconds:
Пока ждал премодерации сообщения, решил посмотреть что у меня с кварцем происходит.
А там тишина полная. Хотел уже кварц перепаивать. Но вспомнил что другая мега у меня в отладочную плату воткнута
Мегу то я прошил, а вот записать фьюзы как то и не сообразил.
Я конечно вычитал что <break> в консоли может возникать от несоответствия скоростей приемника и передатчика.
Но я то был полностью уверен что мега использует скорость которую я выставил, а она похоже была в 8 раз ниже.
Вот и получил себе пол дня мучений с <break>ами в консоли.
Re: не корректно приходят данные c uart в компьютер
В даташите есть раздел, где указаны параметры кварц(ев), рекомендуемых к применению с USART при соответствующих настройках.
Смотрим режимы с минимальной погрешностью.
Для 8 МГц в моем (даташит на атмегу 8А - 8159D)погрещность в 0% там только от скорости 250к, для скорости 9600 - 0,2%...

Смотрим режимы с минимальной погрешностью.
Для 8 МГц в моем (даташит на атмегу 8А - 8159D)погрещность в 0% там только от скорости 250к, для скорости 9600 - 0,2%...
Re: не корректно приходят данные c uart в компьютер
Спасибо.
Разобрался. Дело было во фьюзах по умолчанию.
То есть атмега работала не на 8Мгц, а на 1Мгц. А я то все выставлял по таблице для 8Мгц.
Вот и выходило что скорость атмеги и скорость терминала не соответствуют.
Разобрался. Дело было во фьюзах по умолчанию.
То есть атмега работала не на 8Мгц, а на 1Мгц. А я то все выставлял по таблице для 8Мгц.
Вот и выходило что скорость атмеги и скорость терминала не соответствуют.





