|
|
  |
UART: инициализация скорости, Отличия от "классики", напр. C8051Fxxx |
|
|
|
Apr 4 2007, 09:49
|
Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762

|
Цитата(Halfback @ Apr 3 2007, 22:33)  UART без использования таймера + обработчик прерывания от трансмиттера. А то я понять не могу почему у меня программа в отладчике в этот обработчик не входит... UART без таймера не работает -> соответственно и в прерывание не входит
|
|
|
|
|
Apr 4 2007, 19:30
|
Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 28-05-05
Пользователь №: 5 512

|
Цитата UART без таймера не работает -> соответственно и в прерывание не входит ну в общем я разобрался в чём я был не прав - там помимо EA=1 (разрешение всех прерываний) надо было выставить ES = 1 (разрешить индивидуально для UART) А вот как заставить заработать UART без таймера я так и не разобрался. Смысл в том что в кейле байты по УАРТу шлются а протеусовская симуляция не работает =) может глюк протеуса 6,9 SP5 ???
|
|
|
|
|
Apr 5 2007, 11:15
|
Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762

|
Цитата(Halfback @ Apr 4 2007, 20:30)  может глюк протеуса 6,9 SP5 ??? Скореее всего глюки  Keila или просто глюки  . Вообще таймер определяет скорость передачи по UART. Соответственно если таймер выключен, то скорость = 0. Если не веришь проверь в режиме эмуляции кейла Peripherals->Serial->Baudrate.
|
|
|
|
|
Apr 5 2007, 18:39
|
Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 28-05-05
Пользователь №: 5 512

|
Цитата Если не веришь проверь в режиме эмуляции кейла Peripherals->Serial->Baudrate Дык там в кейле и проверял - байты слались без проблем и при этом таймер в конфигурации вообще не трогал  А протеус молчит. Кстати а как сделать так чтобы отсылка по УАРТа велась без участия тела майн ??? Что там в обработчике прерывания написать надо??? И есть ли толковая книга (ну или сайт какой-нибудь) с примерами на СИ по МЦУ С51??? а то имеются только по AVR...
|
|
|
|
|
Apr 6 2007, 13:30
|
Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762

|
Цитата(Halfback @ Apr 5 2007, 19:39)  Дык там в кейле и проверял - байты слались без проблем и при этом таймер в конфигурации вообще не трогал  А протеус молчит. А какой у тубя Keil. У меня 3.31, и в мем при отключенном таймере baubrate = 0 (как и должно быть). А вообще чего мучаться с протеус и нельзя ли все промоделировать в железе(Сейчас практически во всех МК есть UART) + ПС. Документация здесь h**p://electronix.ru/forum/index.php?act=Attach&type=post&id=10553 Цитата Кстати а как сделать так чтобы отсылка по УАРТа велась без участия тела майн ??? Без main() - это что-то новенькое. А где у тебя код инициализации контроллера будет? В ощем возьми какой нибудь пример работы с uart, разберись хорошенько и будет Вот с этого файла я начинал свое знакомство с UART -> режим работы без прерываниия
Сообщение отредактировал Kolia - Apr 6 2007, 13:42
|
|
|
|
|
Apr 19 2007, 12:07
|

Местный
  
Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744

|
Грусным делиться вроде и нечем. Использовал разные сигналы (06Х, 12Х, 31Х, 35Х). Глюков или несоответствия документации практически нет. Только в 35Х есть небольшое несоответствие в виде отсутствия "минусового" ключа между встроенной опорой и землей, хотя на блок-схеме он показан. Характеристики всех АЦП очень неплохие, а главное, соответствуют заявленным. Что не нравится - так это страничные SFR в 0ХХ-1ХХ, а также деление памяти данных на idata, pdata, xdata, но это все наследие 51 архитектуры. Теперь по существу вопроса. На сайте силабса есть утилита ConfigWizard, которая очень помогает разобраться с тем, как инициализировать ту или иную периферию. Причем она полезна как начинающим разбираться с сигналами, так и уже опытным http://www.silabs.com/tgwWebApp/public/web...u_configwiz.htm
|
|
|
|
|
Nov 19 2007, 07:58
|
Группа: Новичок
Сообщений: 6
Регистрация: 21-02-07
Пользователь №: 25 549

|
1 Для работы уарта (F064) обязательно нужен таймер 2 если вы хотите максимальную скорость обмена, то работайте с прерыванием. 3 если вы хотите работать на скоростях выше стандартной (115200), то работайте с UART1 а не UART0. стабильно работает с ПК через мост CP2101 на скорости 921600. Примечание: стабильно работает при использовании для тактирования кварца 22118400, т.е. погрешность выставления скорости передачи = 0%. С использованием встроенного генератора не проверял.
|
|
|
|
|
Nov 19 2007, 11:04
|
Частый гость
 
Группа: Свой
Сообщений: 153
Регистрация: 15-05-06
Из: Николаев
Пользователь №: 17 119

|
Цитата(Настовьяк Артём @ Nov 19 2007, 09:58)  3 если вы хотите работать на скоростях выше стандартной (115200), то работайте с UART1 а не UART0. стабильно работает с ПК через мост CP2101 на скорости 921600. Примечание: стабильно работает при использовании для тактирования кварца 22118400, т.е. погрешность выставления скорости передачи = 0%. С использованием встроенного генератора не проверял. Работа СР2103 на скорости 921600 с использованием внутреннего генератора при работе контроллера идет отлично (на C8051F32x) Все действия лучше делать по прерыванию УАРТа. Только нужно всего лиш проверять причину прерывания: прием илии передача и не забывать программно очищать этот флаг.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|