Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Програмный UART с внутренним генератором tiny85 оптимальная частота?


Програмный UART с внутренним генератором tiny85 оптимальная частота?

Сообщений 1 страница 22 из 22

1

Приветствую всех! Возникла проблема малость ошибки в пакете идут при штатной частоте генератора 8МГц.
Какую частоту выбрать лучше скорость 19200? Прерывания перед отправкой выключаются, таймеры останавливаются.
Я думаю может частоту выбрать более оптимальную но выше 11МГц поднять не получится.

Отредактировано RadioHAM-433 (2017-01-23 17:42:38)

0

2

http://wormfood.net/avrbaudcalc.php

0

3

Если используете UART на более 80/90% нагрузки, то лучше отказаться от использования RC встроенного и перейти на кратный кварц нужной частоте.

0

4

Там тогда ног не хватит, ежли кварц подцепить.
ТС, точно такое же задание стоит и у меня! Тоже тини 85, тоже уарт, тоже ошибки. Будем грызть вместе походу.  )))

0

5

С чем связывается тинька? с компом или другим контроллером?

0

6

Вопрос к кому?

0

7

К тем, у кого ошибки при передаче с внутренним генератором

0

8

Дело не только в ошибках при передаче. Самая большая проблема в том, что при изменении температуры, скорость значительно поплывёт.
Обычно при обмене между устройствами без кварцев, используют синхронизацию, чтобы остальные настроились на скорость обмена. Например, отправив байт &H55 (01010101) перед передачей.

0

9

demonizer написал(а):

Самая большая проблема в том, что при изменении температуры, скорость значительно поплывёт.


Вот и фиг то! Если мне требуется работоспособность от -20 до +40 , то, как я понимаю без кварца никак?
И второе: как замерить частоту внутреннего кварца? Тупое "дрыганье" ногой на асме в пустом цикле без прерываний даст что-то точное???

0

10

Да, без кварца никак. Я пробовал на одинаковых контроллерах. Один -в морозилке, второй - снаружи.

Не вижу смысла мерить что-то внутри. Я вот что имею в виду:

Мастер отправляет &H55, в двоичном-это ногодрыг. Слейвы таймерами измеряют время дрыганья, считают скорость, на которой передан этот байт. И на этой скорости открывают порт на приём, ну а дальше стандартная карусель.
В результате, если, скажем, мастер отправил на 9600, то для замороженного слейва, это может быть 9800. И всё срастётся. И все друг друга поймут.

Не лишним будет обозначить начало передачи, например, уронив шину на время, равное, 2.5 байтам, чтобы все поняли, что будет передача и не спутали её инициализацию с данными

Ну, про контрольную сумму молчу, т.к. подразумеваю по умолчанию

Отредактировано demonizer (2017-01-24 12:21:26)

0

11

Блин, с такими "извратами" не то что ног, и памяти ещё не хватит. Уарт то софтварный, как ни крути.  Ладно, попробую на самых низких скоростях коннект одного модуля на улице, другой нагрею феном до ~~60. Если не получится - то буду думать что-то другое аппаратное и с кварцем.

0

12

ну или юзайте нечто подобное манчестеру ;)

0

13

Почитал, поржал... :D

0

14

Можете сделать протокол похожий на WS2812, там порядок длительностей регламентирует битовую передачу, а запуск такой же как в UART сделать (по низкому уровню).

0

15

Проще кристалл поменять, чем заниматься всякой фигнёй.

0

16

Это, безусловно, фигня, то, что описывал выше, используется при организации lin-шины. И придумано не мной. Сам использую её давно. Удобно, всего один провод, подходящие скорости, доступные трансиверы, как раз, с софтварным уартом. Обновление прошивки произвожу так же, по шине.

Вообще, прежде чем городить свой огород, не плохо бы подглядеть решения у промышленников.

0

17

RDW написал(а):

ну или юзайте нечто подобное манчестеру


Xорошая вещь, делал когда то , не прихотлив к точности. Принимает во всех полярностях, хед заголовок для идентификации приема пакета. Попробуйте может поможет.
Ссылка

0

18

Не понял шутки на счет ног, мы, вроде, про программную реализацию толковали. А в целом так:  если ног и памяти хватило на софтварный уарт, то хватит  и на программный уарт + прерывание + таймер + пара переменных не жирнее word

0

19

5 ног. 2 уарт. 2 кварц. 1 свободная. Ели только ресет убрать.

0

20

На PB2 RxD, она же для прерывания
На PB1 TxD
2 пина для УАРТа, 5-2=3 . 3 свободных ноги.
:glasses:

0

21

Так, ТЗ было таким работа в стандартной сети а не отдельное что то, 19200 бод и в сети более 20 девайсов.
Это микро ночная подсветка не особо важное но хотел бы знать её статус.
Тут формат данных стандартный и пакет большой, если бы был меньше то было лучше, ошибки идут под конец как то. Допускается левые байты в начале и конце ясно дело немного.
Температурные колебания +10+45 где то, ниже 15 градусов не опускалось пока, выше 45 не было.

Нагрузка на ядро очень низкая 2 АЦП и и штук 6 таймеров, при передаче отключаются все прерывания.
Ладно перекаблирую на 10МГц (11.0592 не стабильно, некоторые МК 10 то дают при значении около 200, 11МГц даже хз) и хер с ним что тут прыгать, я и не рассчитывал на такую работу просто так кинул.
А низкоскоростной протокол FCWR-1 полностью заточен на работе без тормозов основного кода как UART при передаче, как работе идёт на кратных частотах основного тактирования.

А FCWR-1 протокол для удалённого АЦП/ЦАП-ШИМ есть рассчитан на работу как раз на низкую и нестабильную тактовую.

Я использую FCRF-2 ШИМ (для каналов не допускающих статических уровней или не регламентирующих уровень помех) пока к полярности может быть не чувствителен на счёт авто захвата, в эфире автозахват частоты и полярности запрещён на проводе другое дело, и отлично работает даже с учётом того что некоторые генераторы режут 1 за счёт долго запуска (узкого ПАВ) растёт погрешность. Например при идеальной точности при минимальном соотношении сигнал/шум проходит а при отклонении нет, при нормальном сигнале всё проходит. Но даже в пульте 16Кб все заняты под отказ, правда другие протоколы есть, если отказаться от них можно кодирование усложнить а с ними на манчестер не хватит, другие версии уже рассчитаны на МК от 64Кб там всё что угодно.
Для провода прогрешность допускается по факту пропорциональна частоте, скажем 500, 1000, 2000мкс, то 350-750, 800-1200, 1800-2200мкс допустимы отклонения, можно прямо в притык, как в эфире на предельной скорости, но в эфире там физические указатели которые даже при ошибках можно читать.
Контрольная сумму есть везде, в эфире и шифрование ясно дело (каждый пакет случайный набор байт если не знать протокол), на проводе шифрование лишнее.

Измерение освещённости, питания, управление драйвером, + UART и всё вся тинька85, потом конечно я данные девайсы переведу на свою сеть низкоскоростных АЦП/ЦАП там можно работать и по 1 пину на приём и передачу уже.

Отредактировано RadioHAM-433 (2017-01-25 17:28:28)

0

22

Я непонял? Мы о тех-же соснах?
2 уарт
2 кварц
1 свободная
1 ресет

????????????

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Програмный UART с внутренним генератором tiny85 оптимальная частота?