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

 
 
> LPC177x UART, использовать FIFO для передачи
megajohn
сообщение Sep 24 2013, 14:00
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



первоначально передача была сделана по одному байту.

но после написания драйвера для отправки по SSP с использованием FIFO решил так же переписать уартовский, но не тут то было.

нет привычных битов TFE Transmit FIFO Empty, TNF Transmit FIFO Not Full

хотя в доке написано
16 byte Receive and Transmit FIFOs

у меня сложилось мнение что из указанных 16 остается 14 байт на RX и лишь два байта на TX. Так ?


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Sep 27 2013, 11:51
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



чего то я не понимаю видать....

у меня это было так.

функция послать данные:
если передатчик и доп буфер пусты пихает в передатчик 16 байт данных. Если их меньше и ладно, если их больше пихает 16 остальные кладет в буфер программный. если доп буфер был не пуст, кладет данные в него.

прерывание уарт пуст - если буфер программный пуст и ладно, если нет, то берет данные из него и пихает в передатчик.

я так понимаю что проблема ваша в том что при пустом буфере надо данные в него положить, а не в программный буфер... ну так это добавление одного ифа в функции отправки, зато момент отправки четко обозначен, можно чип селект какой - либо опустить...


вообщем никакой проблемы я не вижу если честно, все мне кажется логично... А вот что делать с прерывание буфер пуст если оно возникает всегда когда буфер пуст для меня как раз вопрос. Ведь большую часть времени если обмена нет, он как раз и пуст, вы прерывание что-ли запрещаете, а когда данные кладете разрешаете? Не уверен, что это прям мего логично...
Go to the top of the page
 
+Quote Post
ig_z
сообщение Sep 27 2013, 12:04
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 27-08-04
Пользователь №: 551



QUOTE (Golikov A. @ Sep 27 2013, 14:51) *
вообщем никакой проблемы я не вижу если честно, все мне кажется логично... А вот что делать с прерывание буфер пуст если оно возникает всегда когда буфер пуст для меня как раз вопрос. Ведь большую часть времени если обмена нет, он как раз и пуст, вы прерывание что-ли запрещаете, а когда данные кладете разрешаете? Не уверен, что это прям мего логично...

Если вопрос ко мне, то в общем виде картина передачи данных выглядит так:
- аппликейшн никогда не работает с уарт прямо. Только через кольцевой буфер.
- после получения данных буфер проверяет разрешены ли прерывания на передачу и разрешает их, если запрещены.
- обработчик прерывания заполняет выходной регистр (или выходное фифо) данными. Если данные закончились - запрещает преравания на передачу

Прерывания разрешаются когда есть данные и запрещаются когда из нет. Просто , логично, компактно и надежно

Ну и вы конечно правы, с уарт на лпс нет никаких проблем, одно мелкое неудобство.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- megajohn   LPC177x UART, использовать FIFO для передачи   Sep 24 2013, 14:00
- - GetSmart   Два независимых буфера для RX и TX. К примеру, в L...   Sep 24 2013, 14:40
- - Golikov A.   а разве не появляется флаг буфер передатчика занят...   Sep 24 2013, 16:30
|- - jcxz   Цитата(Golikov A. @ Sep 24 2013, 22:30) а...   Sep 24 2013, 17:19
|- - megajohn   Цитата(jcxz @ Sep 24 2013, 20:19) Нет. Та...   Jan 30 2015, 12:08
- - Terminator   Мне удалось нормально запустить uart TX на lpc1768...   Sep 26 2013, 11:15
|- - jcxz   А что там странного? Вполне соответствуют описанию...   Sep 26 2013, 16:43
- - Terminator   беда в том что прерывание TX_EMPTY может возникнут...   Sep 27 2013, 04:34
- - Golikov A.   что значит вызывается обработчик при разрешении? О...   Sep 27 2013, 09:53
|- - ig_z   QUOTE (Golikov A. @ Sep 27 2013, 12:53) ч...   Sep 27 2013, 11:35
- - Golikov A.   вы проверяете разрешено ли прерывание, и разрешает...   Sep 27 2013, 12:48
|- - jcxz   Да, конечно, 16550 уже давно морально устарел и мо...   Sep 27 2013, 16:40
|- - ig_z   QUOTE (jcxz @ Sep 27 2013, 19:40) Это уж ...   Sep 27 2013, 20:35
- - Terminator   это всё конечно красиво, но попробуйте сделать выв...   Sep 28 2013, 04:52
|- - Golikov A.   Цитата(Terminator @ Sep 28 2013, 08:52) э...   Sep 28 2013, 05:05
|- - jcxz   Возможно товарищи по каким-то причинам (религиозны...   Sep 28 2013, 11:34
|- - Terminator   Цитата(jcxz @ Sep 28 2013, 18:34) Возможн...   Sep 30 2013, 02:59
|- - megajohn   Цитата(jcxz @ Sep 28 2013, 15:34) Возможн...   Sep 30 2013, 07:01
- - Golikov A.   Аминь   Sep 28 2013, 19:11
- - Terminator   Отправка выглядела примерно так: уарт не занят, ра...   Sep 30 2013, 10:34
|- - jcxz   Цитата(Terminator @ Sep 30 2013, 16:34) О...   Oct 1 2013, 03:09
- - GetSmart   По поводу докладывания FIFO 16-тью элементами. Цит...   Sep 30 2013, 20:39
|- - Grape   Цитата(GetSmart @ Oct 1 2013, 00:39) По п...   Oct 1 2013, 10:02
|- - GetSmart   Цитата(Grape @ Oct 1 2013, 16:02) UM10360...   Jan 4 2014, 05:29
- - yanvasiij   Люди, идиотский вопрос. Столкнулся тоже с этим нью...   Jan 30 2015, 09:10
- - Golikov A.   отсутствием FIFO, например.... тем что нельзя пихн...   Jan 30 2015, 09:46
|- - yanvasiij   Цитата(Golikov A. @ Jan 30 2015, 14:46) о...   Jan 30 2015, 10:08
|- - Kabdim   Цитата(yanvasiij @ Jan 30 2015, 13:08) Да...   Jan 30 2015, 10:22
- - Golikov A.   Велика, если есть критические секции в которых у в...   Jan 30 2015, 10:21
- - yanvasiij   Golikov A., Kabdim Спасибо за разъяснения! Буд...   Jan 30 2015, 10:31
|- - jcxz   Цитата(yanvasiij @ Jan 30 2015, 16:31) Я ...   Jan 30 2015, 10:52
- - Golikov A.   Цитата, который бы дал понять FIFO TX уже заполнен...   Jan 30 2015, 12:36


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 01:32
Рейтинг@Mail.ru


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