|
UART с управлением паритета, Опциональная передача символа Mark и Space |
|
|
|
Apr 16 2009, 14:02
|
Группа: Новичок
Сообщений: 4
Регистрация: 11-01-06
Пользователь №: 13 058

|
Доброе время суток! Кто сталкивался в LPC210x с необходимостью управления битами паритета Mark и Space, для эмуляции 9-битного варианта передачи данных? Пробовал делать путем ручного переключения этих битов и вылазит такая картина. В пошаговом режиме байты пересылаются нормально (отслеживаю по осцилу). Как только переходит в сплошной поток - то ли LPC не успевает переключаться, то ли еще что-то, но Mark и Space не изменяются.
|
|
|
|
|
 |
Ответов
|
Apr 17 2009, 19:59
|

Участник

Группа: Участник
Сообщений: 61
Регистрация: 5-10-05
Из: Зеленоград
Пользователь №: 9 268

|
Споры - дело дурное. Каждый в любом случае останется при своём мнении. Очень интересно, получится ли управлять девятым битом. Сейчас мне заняться этим просто некогда, но если что-то выйдет, поделюсь. Соответственно, надеюсь, что тут будет опубликован результат, если у кого что получится. P.S. А может, любезный @Ark найдёт решение? Спец же по портам  Будем ему благодарны aerolog, попробуйте, как говорит Сергей, отключить фифо и перед записью в THR выставлять требуемые значения битов Parity Select регистра LCR со включенным Parity Enable. Возможно перед этим нужно дожидаться, чтобы освободился буфер передатчика (установился бит THRE или TEMT (какой конкретно нужнопроверять).
|
|
|
|
Guest_@Ark_*
|
Apr 17 2009, 22:48
|
Guests

|
Цитата(IgorMarx @ Apr 17 2009, 23:59)  ... А может, любезный @Ark найдёт решение? Спец же по портам  Будем ему благодарны  Если верить тому, что написано в ДШ на этот камень, его UART совместим по регистрам со стандартом 16550. В PC такой же UART стоит на COM-портах (точнее, стоял). Известная вещь. Берем описание и читаем... Перед выбором режима управления четностью рекомендуется очистить очередь приемника и передатчика - установкой 1-го и 2-го бита соответственно в регистре управления буферизацией... Кстати, управлять напрямую значением девятого бита нельзя, можно лишь выбрать один из режимов - контроль четности, контроль нечетности, нет контроля. Если в последнем случае задать 2 стоп бита, то девятый бит всегда будет 1... Итого: если хотите самостоятельно управлять девятым битом, придется FIFO отключить совсем. Перед передачей каждого байта выбирать режим четность/нечетность таким образом, чтобы девятый бит принимал нужное значение... Короче - геморрой. Проще сделать программно...
|
|
|
|
|
Apr 18 2009, 06:05
|

Участник

Группа: Участник
Сообщений: 61
Регистрация: 5-10-05
Из: Зеленоград
Пользователь №: 9 268

|
Цитата(@Ark @ Apr 18 2009, 02:48)  Кстати, управлять напрямую значением девятого бита нельзя, можно лишь выбрать один из режимов - контроль четности, контроль нечетности, нет контроля Стоп... а как же вот это?:  Разве это не задание значения бита напрямую? Зачем 2 стоп-бита?
|
|
|
|
Guest_@Ark_*
|
Apr 18 2009, 06:53
|
Guests

|
Цитата(IgorMarx @ Apr 18 2009, 10:05)  Стоп... а как же вот это?: ... Разве это не задание значения бита напрямую? Зачем 2 стоп-бита? По моим данным (из описания 16550) значения битов 5-3 задают следующие режимы: XX0 - нет контроля четности 001 - контроль четности 011 - контроль нечетности отстальные значения зарезервированы. По Вашей информации получается: 101 - девятый бит =1 111 - девятый бит =0 Противоречия нет. Есть возможность - задавате 9-й бит напрямую. Только я не уверен, что можно переключать режимы "на ходу". Скорее нет. Ведь для приема используется то же формат, что для передачи, и от него зависит ошибка четности и тест стоп-бита в конце. P.S. Режим "2 стоп-бита без контроля четности" аналогичен 9-битному режиму с одним стоп-битом и с постоянным значением девятого бита 1.
|
|
|
|
Сообщений в этой теме
aerolog UART с управлением паритета Apr 16 2009, 14:02 meister Цитата(aerolog @ Apr 16 2009, 18:02) для ... Apr 16 2009, 14:15 aerolog Но ведь не хочется огород городить. В обычном COM ... Apr 16 2009, 15:06 IgorMarx Мне эта тема тоже интересна. Филипс как всегда ... Apr 17 2009, 16:57 @Ark Цитата(IgorMarx @ Apr 17 2009, 20:57) ...... Apr 17 2009, 17:45  IgorMarx Цитата(@Ark @ Apr 17 2009, 21:45) P.S. Ес... Apr 17 2009, 19:00   @Ark Цитата(IgorMarx @ Apr 17 2009, 23:00) Я э... Apr 17 2009, 19:16 Сергей Борщ Цитата(aerolog @ Apr 16 2009, 17:02) В по... Apr 17 2009, 19:25 meister Цитата(Сергей Борщ @ Apr 17 2009, 23:25) ... Apr 17 2009, 20:36  HARMHARM Цитата(meister @ Apr 17 2009, 23:36) Заче... Apr 17 2009, 20:46   meister Цитата(HARMHARM @ Apr 18 2009, 00:46) Име... Apr 17 2009, 20:51    HARMHARM Цитата(meister @ Apr 17 2009, 23:51) Это ... Apr 17 2009, 21:12  Сергей Борщ Цитата(meister @ Apr 17 2009, 23:36) Заче... Apr 18 2009, 09:31   meister Цитата(Сергей Борщ @ Apr 18 2009, 13:31) ... Apr 18 2009, 09:57   Andy Mozzhevilov Цитата(Сергей Борщ @ Apr 18 2009, 13:31) ... Apr 18 2009, 10:33   klop Найдите родной документ по УАРТУ. Будет он я думю ... Apr 18 2009, 06:52    zltigo Цитата(@Ark @ Apr 18 2009, 09:53) По моим... Apr 18 2009, 08:57     @Ark Цитата(zltigo @ Apr 18 2009, 12:57) Дерга... Apr 18 2009, 10:02      zltigo Цитата(@Ark @ Apr 18 2009, 13:02) Физичес... Apr 18 2009, 10:28       @Ark Цитата(zltigo @ Apr 18 2009, 14:28) Этого... Apr 18 2009, 10:40        zltigo Цитата(@Ark @ Apr 18 2009, 13:40) У супер... Apr 18 2009, 10:53      IgorMarx Любезный @Ark, возможно Вы и правы. только Ваш UAR... Apr 18 2009, 10:29       @Ark Цитата(IgorMarx @ Apr 18 2009, 14:29) Люб... Apr 18 2009, 11:08        IgorMarx Цитата(@Ark @ Apr 18 2009, 15:08) А если ... Apr 18 2009, 11:23         aerolog Большое спасибо за такое бурное обсуждение.
Пробов... Apr 21 2009, 09:17          IgorMarx aerolog, к сожалению у меня сейчас осцильник подох... Apr 21 2009, 15:36           aerolog Жаль IgorMarx, но такой вариант тоже не прокатыает... Apr 22 2009, 09:35            IgorMarx Цитата(aerolog @ Apr 22 2009, 13:35) Жаль... Apr 22 2009, 16:00    IgorMarx Цитата(@Ark @ Apr 18 2009, 10:53) По Ваше... Apr 18 2009, 09:57 IgorMarx Насчёт отключения FIFO. Вот вопрос: что будет, есл... Apr 17 2009, 20:54 Andy Mozzhevilov На самом деле при передаче там должно все получить... Apr 18 2009, 09:02
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|