Размер приемного буфера UART

32-разрядные микроконтроллеры разработки АО "НИИЭТ"

Модераторы: ea, dav, bkolbov, Alis, pip, _sva_

Ответить
АСП
Сообщения: 2
Зарегистрирован: 12 мар 2026, 18:00
Предприятие: ООО "Автоматика Сервис"

Размер приемного буфера UART

Сообщение АСП »

В РЭ К1921ВГ015 указано, что при приеме байтов UART, может быть вызвано прерывание, используя IFLS регистр порога прерывания по заполнению буфера в режиме FIFO. Если IFLS=0, то прерывание генерируется при заполнении 1/8 буфера. Если IFLS=1, то при заполнении 1/4 буфера и т.д. В РЭ не указано какой размер буфера, в долях от которого поднимается прерывание?
RabidRabbit
Сообщения: 136
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: Размер приемного буфера UART

Сообщение RabidRabbit »

Что такое РЭ я не знаю, но в РП (Руководство пользователя) пишут, что
В состав приемопередатчика входят два буфера типа FIFO. Буфер приемника имеет
разрядность 12, буфер передатчика – разрядность восемь. Каждый буфер может хранить до
32 байт данных, и каждый буфер может быть сконфигурирован (программно) как
32-байтный или как однобайтный.
АСП
Сообщения: 2
Зарегистрирован: 12 мар 2026, 18:00
Предприятие: ООО "Автоматика Сервис"

Re: Размер приемного буфера UART

Сообщение АСП »

Да, Руководство пользователя, не Руководство по эксплуатации, прошу прощения за неточность.

Проверил отдельной программой заполнение буфера и при установке прерывания по заполнению буфера на 1/8 прерывание происходит при получении 4 байт.

Выяснилось, что буфер остается заполненным и после первых 4 байт прерывания вызываются после каждого нового 1 байта. Это и вызвало изначальный вопрос, что первое прерывание приходит через 4 байта (при конфигурации прерывания 1/8 размера буфера), потом прерывания приходят после каждого 1 байта. Теперь причина понятна, надо чистить буфер после каждого прерывания.

Теперь надо разобраться как чистить буфер, если прочтение буфера не очищает буфер автоматически.
ea
Администратор
Сообщения: 110
Зарегистрирован: 10 окт 2014, 09:08

Re: Размер приемного буфера UART

Сообщение ea »

Добрый день!
В состав приемопередатчика входят два буфера типа FIFO. Буфер приемника имеет
разрядность 12, буфер передатчика – разрядность восемь. Каждый буфер может хранить до
32 байт данных, и каждый буфер может быть сконфигурирован (программно) как
32-байтный или как однобайтный.

Т.е. буфер FIFO хранит 32 записи, а 1/4 буфера - 32/4 = 8 записей (байт).
Ответить

Вернуться в «32-разрядные микроконтроллеры»