не корректно приходят данные c uart в компьютер

Обсуждаем контроллеры компании Atmel.
Ответить
Али777
Прорезались зубы
Сообщения: 214
Зарегистрирован: Чт май 23, 2013 18:31:58

не корректно приходят данные c uart в компьютер

Сообщение Али777 »

Добрый день! использовал мк atmega8. по неопытности использовал внутренний осциллятор, выставил частоту на 8мгц. отправляются данные по uart, изредка приходили кракозябры. скорость обмена 9600. В то время наступили холода, и начал замечать что данные приходят не верно. т.к. в офисе все работало. из 10 сделанных плат около 5 работает не верно. Видимо придется колхозить кварц дополнительно? или уменьшить частоту осциллятора до 1мгц? по какой причине это могло произойти, изза холода начала меняться частота осциллятора? или же у атмег начала плавать частота?
Реклама
Аватара пользователя
Starichok51
Модератор
Сообщения: 19055
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: не корректно приходят данные c uart в компьютер

Сообщение Starichok51 »

ты сам ответил - из-за холода начала меняться частота внутреннего осциллятора.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
OKF
Это не хвост, это антенна
Сообщения: 1405
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: не корректно приходят данные c uart в компьютер

Сообщение OKF »

У мега8 только 1 мгц генератор калиброван. Или калибруйте 8, или спускайтесь на 1.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19055
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: не корректно приходят данные c uart в компьютер

Сообщение Starichok51 »

да, можно в программаторе прочитать калибровочное число для 8 МГц и потом в прошивке вписать его в калибровочный регистр.
но температурная зависимость частоты останется. и хватит ли ее для устойчивой синхронизации всей телеграммы?
самое надежное - поставить кварц.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
Эиком - электронные компоненты и радиодетали
OKF
Это не хвост, это антенна
Сообщения: 1405
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: не корректно приходят данные c uart в компьютер

Сообщение OKF »

Человеку как то делал ручную подстройку внутреннего генератора. Т.е., заказчик имел возможность ручками подстраивать частоту по uart.
Реклама
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: не корректно приходят данные c uart в компьютер

Сообщение oleg110592 »

Можно простую програмку написать, где в 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
Реклама
OKF
Это не хвост, это антенна
Сообщения: 1405
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: не корректно приходят данные c uart в компьютер

Сообщение OKF »

Именно так и делал. И даже это можно автоматизировать.
Делал и второй вариант - там был асинхронный кварцевый генератор на 32 кгц.
parovoZZ
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Re: не корректно приходят данные c uart в компьютер

Сообщение parovoZZ »

У современных AVR RC осциллятор имеет очень хорошую термокомпенсацию. Если МК принимает пакеты извне, то можно по ним сделать коррекцию.
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: не корректно приходят данные c uart в компьютер

Сообщение GoldenAndy »

Да тут не важно, какой кварц. ЮАРТ кварцевать надо. А будет это 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
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
parovoZZ
Мудрый кот
Сообщения: 1759
Зарегистрирован: Пт июн 01, 2018 07:28:45

Re: не корректно приходят данные c uart в компьютер

Сообщение parovoZZ »

[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4089107#p4089107"]ЮАРТ кварцевать надо.[/uquote]
Всё прекрасно работает без всяких кварцев. Причём в широком диапазоне температур.
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: не корректно приходят данные c uart в компьютер

Сообщение GoldenAndy »

parovoZZ, или пример прекрасно работающего юарт на меге8 (см. вопрос ТС), или сообщение не соответствует действительности.
Если есть пример - научите ТС и остальных, как .
А то сказанули, абы сказануть?
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
razbudin
Родился
Сообщения: 4
Зарегистрирован: Пн янв 23, 2023 20:27:15

Re: не корректно приходят данные c uart в компьютер

Сообщение razbudin »

Добрый день, Друзья.
Пытаюсь из меги8 по uart организовать передачу на комп. Пытался передавать на разных скоростях от 2400 до 115200, с одним стопом и с двумя.
Сначала пытался передавать строку, потом одиночный символ или число в UDR передавать.
Но терминал мне пишет либо <break> либо <0x80><break> Подскажите куда копать.

атмега8а кварц 8Мгц, прошиваю с верефикацией. В качестве приемника USB_UART CH340G

Добавлено after 3 hours 31 minute 8 seconds:


Пока ждал премодерации сообщения, решил посмотреть что у меня с кварцем происходит.
А там тишина полная. Хотел уже кварц перепаивать. Но вспомнил что другая мега у меня в отладочную плату воткнута :))
Мегу то я прошил, а вот записать фьюзы как то и не сообразил.
Я конечно вычитал что <break> в консоли может возникать от несоответствия скоростей приемника и передатчика.
Но я то был полностью уверен что мега использует скорость которую я выставил, а она похоже была в 8 раз ниже. :))

Вот и получил себе пол дня мучений с <break>ами в консоли.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15585
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: не корректно приходят данные c uart в компьютер

Сообщение BOB51 »

В даташите есть раздел, где указаны параметры кварц(ев), рекомендуемых к применению с USART при соответствующих настройках.
Смотрим режимы с минимальной погрешностью.
Для 8 МГц в моем (даташит на атмегу 8А - 8159D)погрещность в 0% там только от скорости 250к, для скорости 9600 - 0,2%...
:roll:
razbudin
Родился
Сообщения: 4
Зарегистрирован: Пн янв 23, 2023 20:27:15

Re: не корректно приходят данные c uart в компьютер

Сообщение razbudin »

Спасибо.
Разобрался. Дело было во фьюзах по умолчанию.
То есть атмега работала не на 8Мгц, а на 1Мгц. А я то все выставлял по таблице для 8Мгц.
Вот и выходило что скорость атмеги и скорость терминала не соответствуют.
Ответить

Вернуться в «AVR»