Ответ: Непонятно,
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ВН 29 декабря 2003 г. 14:32
В ответ на: Уважаемые а кто либо пытался настроить UART в 89с4051 который работает от таймера 1 в mode 1 (16bit counter) может поможете надо сделать 4800 и 57600 на кварце 13,560 отправлено dimkos 29 декабря 2003 г. 12:07

что сделать-то хотите. Посл. порт, когда он как UART, допускает 2 режима тактирования.
1. SM0=1,SM1=0, 9-bit UART с фикс. скоростью. Baudrate=Fosc/64, либо Fosc/32.
На 64, если бит SMOD в PCON равен 0, иначе на 32.
Таймер здесь вообще не используется. И при Вашем кварце 2 возможные скорости:423750 (SMOD=1) или 211875 (SMOD=1).
2. SM1=1, SM0=0 8-bit UART, либо SM1=1, SM0=1 9 битный UART c "переменной" скоростью.
Baudrate=T1OVF/(2^(5-SMOD)).
T1OVF - "выходная частота" Таймера 1. И равна она Fosc/(12*N).
N - к-т деления таймера 1.
При Вашем кварце 2 ближайшие к 4800 скорости, которые можно получить, это 4708 с копейками и 5045 (без копеек).
Первая при SMOD=1 и коэфф-те деления таймера 1 равным 15. Вторая при SMOD=0 и к-те деления 7. Т.к. оба к-та деления меньше 256, то зачем таймеру 1 16-ти разрядный режим?. 8-ми разрядный с автоперегрузкой нужен, с занесением в TH1 241 для первой скорости и 249 для второй.
А со скоростью 57600 еще интереснее.
Входная частота таймера равна Fosc/12, т.е. 1130000 Гц. Выходная автоматом делится либо на 16(SMOD=1), либо на 32(SMOD=0). Если взять SMOD=0 и минимальный к-т деления таймера, т.е. 1, то получится скорость 35312.5. Далековато от 57600. А при SMOD=1 и единичном к-те деления таймера получится 70625. Не ближе. А при к-те деления таймера=2 те же 35312.5 Близко к 57600 не получается, а таймер делит максимум на 2. Зачем ему 16-ти разрядный режим.
Или Вы хотите вообще полностью программный UART реализовать?
Ну на 57600 это сомнительно, если только кроме UART-рования ничем заниматься не будет. Но, если даже и сделать, используя прерывания от таймера, то опять, нафига 16-ти разрядный режим, если макс. к-т деления (для 4800) равен 235?.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru