реклама на сайте
подробности

 
 
> Поможите с UART на высокой скорости
EXeGLuMATOR
сообщение Jan 18 2008, 11:27
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Имеем LPC2103 и соединение с VNC-1L по UART. На скоростях до 115200 все нормально. как только выше - виснет при приеме данных. Виснет в разных местах. Закономерность выявить не смог. Кварц 14.7456, т.е. скорости строго стандартные. Работает на прерываниях. Причем UART0 работает без проблем (по крайней мере не замечено никаких) до скорости 921600. UART1, к которому и подключен VNC по причине наличия аппаратного управления потоком, выше 115200 не хочет ни в какую. Одиночные символы и строки небольшой длины принимает/передает без проблем, но серию строк - уже никак. sad.gif Виснет намертво. Где - никак не могу разобраться. Обработчик (одинаковые для UART0, UART1):

void UART1Handler (void) __irq
{
u08 iid;

// loop until not more interrupt sources
while (((iid = U1IIR) & UIIR_NO_INT) == 0)
{
// identify & process the highest priority interrupt
switch (iid & UIIR_ID_MASK)
{
case UIIR_RLS_INT: // Receive Line Status
U1LSR; // read LSR to clear
break;
case UIIR_CTI_INT: // Character Timeout Indicator
case UIIR_RDA_INT: // Receive Data Available
do
{
// calc next insert index & store character
utemp1 = (uart1_rx_insert_idx + 1) % UART1_RX_BUFFER_SIZE;
uart1_rx_buffer[uart1_rx_insert_idx] = U1RBR;

// check for more room in queue
if (utemp1 != uart1_rx_extract_idx)
uart1_rx_insert_idx = utemp1; // update insert index
}
while (U1LSR & ULSR_RDR);

break;

case UIIR_THRE_INT: // Transmit Holding Register Empty
while (U1LSR & ULSR_THRE)
{
// check if more data to send
if (uart1_tx_insert_idx != uart1_tx_extract_idx)
{
U1THR = uart1_tx_buffer[uart1_tx_extract_idx++];
uart1_tx_extract_idx %= UART1_TX_BUFFER_SIZE;
}
else
{
// no
uart1_tx_running = 0; // clear running flag
break;
}
}

break;
default: // Unknown
U1LSR;
U1RBR;
U1MSR;
break;
}
}

VICVectAddr = 0; /* Acknowledge Interrupt */
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th July 2025 - 23:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01348 секунд с 7
ELECTRONIX ©2004-2016