реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> UART с управлением паритета, Опциональная передача символа Mark и Space
Guest_@Ark_*
сообщение Apr 18 2009, 11:08
Сообщение #31





Guests






Цитата(IgorMarx @ Apr 18 2009, 14:29) *
Любезный @Ark, возможно Вы и правы. только Ваш UART на 4-х мегагерцах должен тупо ждать стартового бита, а мой, хоть и на 18-и, но работает в фоне наверное в более сложных, по сравнению с Вашей, системах (не одной, заметьте!), переносим в другие проекты и является законченным универсальным решением...

Ну и что? Когда можно и нужно использовать универсальные решения - я их использую, как и Вы. Есть встроенный UART и всем нас устраивает - замечательно! Используем его. А если его нет, что Вы будете делать? Или кварц нежелательно ставить в устройство из-за условий эксплуатации? Откажетесь от проекта? Я, в отличие от Вас, свободен в выборе технических решений, как универсальных, так и узкоспециализированных. В этом вся разница...


Цитата(zltigo @ Apr 18 2009, 14:53) *
Опять глупость sad.gif

Видимо, взаимная...
Go to the top of the page
 
+Quote Post
IgorMarx
сообщение Apr 18 2009, 11:23
Сообщение #32


Участник
*

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



Цитата(@Ark @ Apr 18 2009, 15:08) *
А если его нет, что Вы будете делать? Или кварц нежелательно ставить в устройство из-за условий эксплуатации? Откажетесь от проекта? Я, в отличие от Вас, свободен в выборе технических решений, как универсальных, так и узкоспециализированных.


Я, конечно, извиняюсь перед всеми за оффтоп (это не тема обсуждения), но кто сказал, что я не свободен в выборе технических решений? Делать глупые вещи (придётся согласиться с супермодератором) - это такая свобода что ли? Да это хрень полная. Ну давайте писать Windows на ассемблере, дрыгать ногами чипов, вместо того, чтобы зайти в интернет, и увидеть, что в продаже уже появился новый чип в 5 раз дешевле и с количеством портов в 3 раза больше. Я считаю себя свободным, потому что вместо того, чтобы заниматься ботвой, смотрю, что вокруг. Я уже предлагал ссылку выше на готовое решение. Не нравится, давайте сначала разберёмся хотя бы с тем, что есть на борту. Почитаем даташит.

Если тут не о чем больше говорить, предлагаю тему закрыть. Единственная причина этого не делать - всё же дождаться автора темы, может у него вопросы какие.
Go to the top of the page
 
+Quote Post
aerolog
сообщение Apr 21 2009, 09:17
Сообщение #33





Группа: Новичок
Сообщений: 4
Регистрация: 11-01-06
Пользователь №: 13 058



Большое спасибо за такое бурное обсуждение.
Пробовал отключать ФИФО и ставить размер 1 - все равно при RealTime выполнении если я в начале установил Бит Mark - то он потом не сбрасывается, хотя явным видом вызывается сброс тех самых битов управления.
Интересная ситуация наблюдается когда разрешается проверка четности, порт пердачи уходит в 1, и зависает??? До сих пор не могу найти адекватного ответа. unsure.gif

Вот такие результаты проверки всех предложений.
Какие будут еще варианты?

А софтовое решение никто не рубает на корню, просто хотелось использовать внутренние свойства.

А 9-й бит действительно используется при работе с MDB протоколом, там необходимо с единицей в 9-м бите посылать адрес, а с нулем идут данные.
Go to the top of the page
 
+Quote Post
IgorMarx
сообщение Apr 21 2009, 15:36
Сообщение #34


Участник
*

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



aerolog, к сожалению у меня сейчас осцильник подох, сам проверить не могу.

Нужно делать так:

Передача:

1. Программируем порт на 8 бит и т.д.
2. Цикл:
- в LCR выставляем бит 3 (разрешение 9-го бита) и комбинацию битов 4,5 Forcedstick parity, которая должна соответствовать последующему байту.
- записываем последующий байт в THR
- ждём, когда в регистре LSR бит 6 станет 1
3. переход на пункт 2, если данные не кончились.

Приём:
1. Программируем FIFO trigger level = 1, контроль четности Forced "0" stick parity.
2. Принимаем байт (жём бит 0 в LSR). Если видим ошибку "Parity error", то это означает, что 9-й принятый бит равен 1, иначе 0.
3. переход на 2, если нужны ещё данные.

Забыл добавить: при отладке НЕЛЬЗЯ наблюдать регистры UART в отладчике (т.к. отладчик будет считывать регистры UART сам, чтобы отобразить на экране, и при продолжении выполнения программы результат будет совсем другой). Это означает, что их нужно исключить регистры UART с вкладки Watch и не отображать на вкладку UART0 (или UART1) отладчика. Возможно, что-то не работает именно из-за этого?

Сообщение отредактировал IgorMarx - Apr 21 2009, 15:38
Go to the top of the page
 
+Quote Post
aerolog
сообщение Apr 22 2009, 09:35
Сообщение #35





Группа: Новичок
Сообщений: 4
Регистрация: 11-01-06
Пользователь №: 13 058



Жаль IgorMarx, но такой вариант тоже не прокатыает.
Может это проц глюкнутый? unsure.gif
Go to the top of the page
 
+Quote Post
IgorMarx
сообщение Apr 22 2009, 16:00
Сообщение #36


Участник
*

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



Цитата(aerolog @ Apr 22 2009, 13:35) *
Жаль IgorMarx, но такой вариант тоже не прокатыает.
Может это проц глюкнутый? unsure.gif


А можете сделать небольшой тестовый проект и показать, как Вы делаете?
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 7th July 2025 - 10:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01398 секунд с 7
ELECTRONIX ©2004-2016