Перейти к содержанию
    

LPC177x UART, использовать FIFO для передачи

Golikov A., Kabdim Спасибо за разъяснения! Буду тогда нарезать по 16. Я правильно понял, что нет регистра в линейке LPC177x_178x, который бы дал понять FIFO TX уже заполнен и нужно вручную считать по 16, а потом дожидаться THRE и отсчитывать следующие 16?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Такого нет. Действовать надо так: появился статус - TX-буфер пуст - значит можно записать не более 16 байт. Пишете по счётчику.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет. Там эмуляция стандартного, не самого удачного 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 ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Это у UART, а на SSP фифо имеет флаги половинной загрузки и переполнения... Это я так, если вдруг можно SPI вместо уарт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...