Neo_Matrix 0 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба 2 минуты назад, mantech сказал: Ну как же? А прерывание по приему символов с установленным флагом ошибки кадра до тех пор, пока на линии висит 0? Ошибка кадра приходит единожды при изменении сигнала в 0. 3 минуты назад, jcxz сказал: Так можно сделать, если сразу после завершения длинного 0, всегда идёт пауза не менее этих самых 0.5-0.7 мс. А нормальные байты начинают идти только после этой паузы. Пауза может быть или не быть :)) Неизвесно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 172 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба 4 минуты назад, Neo_Matrix сказал: По идее можно после LBD флага запустить таймер и EXTI на подъем сигнала. Далее можно понять был ли перепад за время таймера(100мс) Если оно включится при работающей функции "UART" - можно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Neo_Matrix 0 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба Только что, jcxz сказал: Если оно включится при работающей функции "UART" - можно. Нужно попробовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 32 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба 3 минуты назад, jcxz сказал: В тех UART, с которыми я имел дело, оно срабатывало 1 раз - когда счётчик битов достигал стоп-бита, и там оказывался 0. После этого ноль может стоять сколь угодно долго - ничего не генерится до следующего старта. В таком случае можно пойти 2мя способами - цикл получаем ошибку кадра, затем реинит уарта, и так до посинения, либо перевод ноги уарта на работу, как порт ввода и отслеживание перехода в 1 после события ошибки кадра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 172 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба 1 минуту назад, Neo_Matrix сказал: Нужно попробовать. В Infineon-ах (XMC4xxx) входных функций на одну ногу можно использовать любое количество - при программировании режима ноги программируется только выходная функция. А входные функции на программируют режим ноги, поэтому можно использовать хоть сразу все, что есть на ноге - и UART.RX и таймер и ещё что угодно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 32 12 апреля, 2020 Опубликовано 12 апреля, 2020 (изменено) · Жалоба 2 минуты назад, jcxz сказал: можно использовать хоть сразу все, Наверно и здесь так, ибо проще схемотехнически... Тогда и реинит не нужен. Изменено 12 апреля, 2020 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Neo_Matrix 0 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба Спасибо. Завтра попробую проверить Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 172 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба 6 минут назад, mantech сказал: В таком случае можно пойти 2мя способами - цикл получаем ошибку кадра, затем реинит уарта, Вы невнимательно читаете. Я чуть выше, что так работать не будет. Ибо не будет "старт-бита". Старт-бит - это переход 1->0 и затем 1 или 3 проверки в середине битового интервала. Без перехода 1->0 не запустится таймер вычисляющий середину бита -> не будет старт-бита. Можете сколько угодно реинитить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 32 12 апреля, 2020 Опубликовано 12 апреля, 2020 (изменено) · Жалоба 4 минуты назад, jcxz сказал: Ибо не будет "старт-бита". Старт-бит - это переход 1->0 и затем 1 или 3 проверки в середине битового интервала Может и так, никогда не использовал уарт в такой извращенной задаче Тогда только отслеживать переход из0-1 после прерывания ошибки кадра как gpio in. Изменено 12 апреля, 2020 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firstvald 12 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба не знаю надо смотреть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 172 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба 2 минуты назад, Neo_Matrix сказал: Спасибо. Завтра попробую проверить Ещё вариант (чтобы не менять схему): после получения ошибки фрейма запустить чтение этой GPIO-ноги через DMA с периодом < длины бита, а в ISR разгребать полученный массив и смотреть - все ли биты == 0. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 32 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба 3 минуты назад, jcxz сказал: периодом < длины бита, а в ISR разгребать полученный массив и смотреть - все ли биты == 0. Зачем? если там не постоянный 0 - получим новый старт уарта и прерывание... Если нет - не получим.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Neo_Matrix 0 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба А если следующий байт пока еще не идет, а линия приняла нормальное состояние? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 172 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба 2 минуты назад, mantech сказал: Зачем? если там не постоянный 0 - получим новый старт уарта и прерывание... Если нет - не получим.. Я так понимаю - ТС-у нужно определить, что длительность 0-я не менее чем сколько-то мсек. Т.е. - детектировать сигнал длинного BREAK. И отличить его от кратковременной помехи на линии. И если такой сигнал обнаружен - произвести сброс (какого-то протокола приёма). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Neo_Matrix 0 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба Только что, jcxz сказал: Я так понимаю - ТС-у нужно определить, что длительность 0-я не менее чем сколько-то мсек. Т.е. - детектировать сигнал длинного BREAK. И отличить его от кратковременной помехи на линии. И если такой сигнал обнаружен - произвести сброс (какого-то протокола приёма). Все верно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться