Добрый день!
Начал разбираться с ARM Cortex-R микроконтроллером TMS570LS20216 от Texas Instruments (серия TMS570LS20x/10x). Использую кит TMDX570LS20SUSB. Программу пишу в CCS, а конфигурацию - в HalCoGen.
Сейчас застрял с SCI (Serial Communication Interface, UART mode).
Выбрал SCI2 модуль. В начале сконфигурировал SCI2 для отсылки данных без использования прерываний (polling mode). Тут все работает.
Следующим этапом попытался добавить TX high level прерывание для отсылки данных и RX high level прерывание для приема отсылаемых байтов для SCI2. Выводы LIN2TX и LIN2RX соединены между собой снаружи. Первый отсылаемый байт отправляется с main (), а последующие байты - с подпрограммы прерывания TX INT. Для этого в (HalCoGen – приложение для графической конфигурации контроллера) разрешил прерывание TX INT (high level) и RX INT (high level) для SCI2, в VIM (Vectored Interrupt Manager) модуле разрешил 49-ый канал прерываний (LIN2 high).
В приложенном проекте отсылается пакет из 10 байтов. TX INT функционирует нормально, а вот с приемом данных по RX INT проблемы. Вижу, что данные не принемаются. В чем может быть проблема? Такое ощущение, что RX INT не разрешен.
Предполагаю, что одновременно можно использовать и TX INT, и RX INT прерывания одинакового уровня, как и еще несколько других прерываний, относящиеся к SCI2. У всех этих прерываний разные приоритеты. Если даже несколько прерываний появились одновременно, то с начала обрабатывается прерывание с большим приоритетом, а далее в порядке уменьшения приоритета. В результате ни одно из прерываний не должно пропасть. Я прав? И в чем может быть ошибка?
С уважением,
Дмитрий
Прикрепленные файлы
SCI.zip ( 818.64 килобайт )
Кол-во скачиваний: 14