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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> LPC177x UART, использовать FIFO для передачи
yanvasiij
сообщение Jan 30 2015, 10:31
Сообщение #31


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



Golikov A., Kabdim Спасибо за разъяснения! Буду тогда нарезать по 16. Я правильно понял, что нет регистра в линейке LPC177x_178x, который бы дал понять FIFO TX уже заполнен и нужно вручную считать по 16, а потом дожидаться THRE и отсчитывать следующие 16?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 30 2015, 10:52
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(yanvasiij @ Jan 30 2015, 16:31) *
Я правильно понял, что нет регистра в линейке LPC177x_178x, который бы дал понять FIFO TX уже заполнен и нужно вручную считать по 16, а потом дожидаться THRE и отсчитывать следующие 16?

Такого нет. Действовать надо так: появился статус - TX-буфер пуст - значит можно записать не более 16 байт. Пишете по счётчику.
Go to the top of the page
 
+Quote Post
megajohn
сообщение Jan 30 2015, 12:08
Сообщение #33


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

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



Цитата(jcxz @ Sep 24 2013, 20:19) *
Нет. Там эмуляция стандартного, не самого удачного 16550.


хотел высказаться об еще одном неудачном месте в LPC: MultimediaCardIntarface

есть три регистра MCI-CLOCK MCI-DATACTRL MCI-COMMAND
После записи в которые надо
Note: After a data write, data cannot be written to this register for three MCLK clock periods plus two PCLK clock periods.
конечно не сложно это сделать, но не нравятся три фактора
1. на этапе иннициализации частота MCLK 200кГц а потом уже и 10МГц может быть, так что эту времянку нужно в рантайме менять
2. PCLK тоже они проекта к проекту может быть разный
3. ладно, записал, подождал указанное время, потом снова записал. Но от предыдущей записи до новой выполнялись же такты, и можно было бы и по меньше ждать времянку. Но не таймер же заводить для этого.

Как мне видится аппаратное решение: три бита занятости, clock_busy, datactrl_busy, command_busy
перед записью ждешь просто готовность соответствующего бита, и вот она программная независимость от аппаратных заморочек. Ляпота

может донести эту мысль инженерам NXP на их форуме ? Но с английским туго.

P.S. а как вы красиво решали ожидание на LPC ?
P.P.S на других платформах есть такая заморочка с MCI ?


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 30 2015, 12:36
Сообщение #34


Гуру
******

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



Цитата
, который бы дал понять FIFO TX уже заполнен и нужно вручную считать по 16, а потом дожидаться THRE и отсчитывать следующие 16?

Это у UART, а на SSP фифо имеет флаги половинной загрузки и переполнения... Это я так, если вдруг можно SPI вместо уарт.
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 Текстовая версия Сейчас: 25th July 2025 - 19:30
Рейтинг@Mail.ru


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