yanvasilij 0 30 января, 2015 Опубликовано 30 января, 2015 · Жалоба Golikov A., Kabdim Спасибо за разъяснения! Буду тогда нарезать по 16. Я правильно понял, что нет регистра в линейке LPC177x_178x, который бы дал понять FIFO TX уже заполнен и нужно вручную считать по 16, а потом дожидаться THRE и отсчитывать следующие 16? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 228 30 января, 2015 Опубликовано 30 января, 2015 · Жалоба Я правильно понял, что нет регистра в линейке LPC177x_178x, который бы дал понять FIFO TX уже заполнен и нужно вручную считать по 16, а потом дожидаться THRE и отсчитывать следующие 16? Такого нет. Действовать надо так: появился статус - TX-буфер пуст - значит можно записать не более 16 байт. Пишете по счётчику. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 5 30 января, 2015 Опубликовано 30 января, 2015 · Жалоба Нет. Там эмуляция стандартного, не самого удачного 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 ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 30 января, 2015 Опубликовано 30 января, 2015 · Жалоба , который бы дал понять FIFO TX уже заполнен и нужно вручную считать по 16, а потом дожидаться THRE и отсчитывать следующие 16? Это у UART, а на SSP фифо имеет флаги половинной загрузки и переполнения... Это я так, если вдруг можно SPI вместо уарт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться