1830ВЕ32У, 1830ВЕ32АУ

Интегральные схемы разработки АО "НИИЭТ" с повышенной стойкостью к СВ ВВФ

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

cto402
Сообщения: 9
Зарегистрирован: 11 сен 2013, 08:50

Re: 1830ВЕ32У, 1830ВЕ32АУ

Сообщение cto402 »

Здравствуйте.
Вопрос по асинхронному приёмопередатчику.
Из описания возникает двоякое толкование ситуации, когда посылка не считана и приходит новая. Не понятно, при этом, старая посылка перезаписывается новой или в буфере будет оставаться несчитанная ("старая") посылка? Вот выдержки из текста:
"..если к моменту окончания приема байта предыдущий байт не был считан из SBUF, то он будет
потерян.." - значит перезаписывается новой посылкой?
"..если не выполнено условие "RI"=0 ....., то принятая последовательность бит теряется..."(фрагмент из описания режима "1", описание ситуации, когда флаг "RI" не был сброшен) - значит остаётся старая посылка?
Уточню ещё раз вопрос, какая посылка будет в SBUF, если посылки не считывать, первая или последняя? В связи с этим ещё вопрос. Достаточно ли сбросить флаг "RI" для приёма очередной посылки или нужно выполнять чтение SBUF?
cto402
Сообщения: 9
Зарегистрирован: 11 сен 2013, 08:50

Re: 1830ВЕ32У, 1830ВЕ32АУ

Сообщение cto402 »

Ещё вопросы по асинхронному приёмопередатчику. Цитирую ТО:
"Если бит остановки потерян, устанавливается бит ошибки формата (FE). Этот бит может быть проверен программно после каждого приема для обнаружения ошибок связи."
1. Означает ли это, что в режимах "1", "2" и "3", независимо от состояния стоп-бита, при соблюдении всех остальных условий, посылка будет принята и выставлен флаг "RI" ?
2. Будет ли принята посылка в режиме "1" и сформирован флаг "FE" при следующем исходном состоянии приёмника: "RI"=0, "SM"=1, стоп-бит = 0.
_sva_
Специалист
Сообщения: 215
Зарегистрирован: 12 ноя 2009, 17:42
Откуда: Воронеж
Контактная информация:

Re: 1830ВЕ32У, 1830ВЕ32АУ

Сообщение _sva_ »

cto402 писал(а): Уточню ещё раз вопрос, какая посылка будет в SBUF, если посылки не считывать, первая или последняя? В связи с этим ещё вопрос. Достаточно ли сбросить флаг "RI" для приёма очередной посылки или нужно выполнять чтение SBUF?
Первая, сбросить флаг достаточно.
_sva_
Специалист
Сообщения: 215
Зарегистрирован: 12 ноя 2009, 17:42
Откуда: Воронеж
Контактная информация:

Re: 1830ВЕ32У, 1830ВЕ32АУ

Сообщение _sva_ »

cto402 писал(а):Ещё вопросы по асинхронному приёмопередатчику. Цитирую ТО:
"Если бит остановки потерян, устанавливается бит ошибки формата (FE). Этот бит может быть проверен программно после каждого приема для обнаружения ошибок связи."
1. Означает ли это, что в режимах "1", "2" и "3", независимо от состояния стоп-бита, при соблюдении всех остальных условий, посылка будет принята и выставлен флаг "RI" ?
2. Будет ли принята посылка в режиме "1" и сформирован флаг "FE" при следующем исходном состоянии приёмника: "RI"=0, "SM"=1, стоп-бит = 0.
1. Да.
2. Да.
alextm
Сообщения: 1
Зарегистрирован: 10 окт 2017, 15:54
Предприятие: АО НПЦ "Полюс"

Re: 1830ВЕ32АУ

Сообщение alextm »

Здравствуйте, проблема при приеме данных по UART
Столкнулся с непонятной проблемой при обмене данными по UART - прием данных происходит с ошибкой. Неверно интерпретируются входные данные при формате байтов с одним стоповым битом. Из первой осциллограммы видно, что второй байт не был принят (обработчик прерывания UART не вызвался). Так же, странно, что не было установки признака ошибки кадра FE. (При содержимом посылки 0xFF, 0x00, 0x00, 0x00 ... 0x00, стабильно пропускается каждый второй байт и "FE" не возникает)
При изменении содержимого посылки на FF 10 02 0A 15 00 01 97 30 00 01.... начинают происходить ошибки FE, прием байтов идет с ошибкой. Эта ситуация показана на втором рисунке.
Для того, что бы контролировать работу UART и контроллера в целом, в момент приема команд по UART, сделана непрерывная выдача константы 0x55, которая корректно принимается ПК, что позволяет судить о корректности тактирования МК, и его настоек UART.
Для эксперемента, была изменена настройка порта на стороне ПК с одного стопового бита на два, при этом прием данных МК происходит без потерь и ошибок. (Рис.3). Но в штатной системе обмен должен происходить в формате 19200,8,N,1. Прошу пояснить данную ситуацию и дать совет решения.

Для пояснения привожу код инициализации UART и обработчик прерывания.
void UART_ISR(void) ISR_ID_UART {
unsigned char i;

if (TI) {
TI = 0;
WDT_HW_RESET;
TB8 = 0;
SBUF = 0x55;
return ;
}
DEBUG_IRQ_UART_RI_START;
if (RI) {
RI = 0;
i = SBUF;
if (SM0) // FE
{
DEBUG_UART_FE_DETECT;
SM0 = 0;
}
//HexBin_Rx_Char(i); обработка данных отключена
DEBUG_IRQ_UART_RI_EXIT;
}
}
Main():
...
InitUART();
...
Initxxxx();
...
SBUF = 0x55;
IE = (1 << 7) | (1 << 4); //EA + ES
PCON &= ~(1<<6);
SM0 = 0;
PCON |= (1<<6);
SM0 = 0;
while (1) {
}
Инициализация:
unsigned char InitUART() {

PCON = 0;
SCON = 0x50;
#ifdef UART_USE_TIMER2
#warning "UART использует таймер 2"
RCAP2L = UART_RCAP_CALC(UART_BAUD);
RCAP2H = UART_RCAP_CALC(UART_BAUD) >> 8;
TL2 = RCAP2L;
TH2 = RCAP2H;
RCLK = 1;
TCLK = 1;
TR2 = 1;
#else
#warning "UART использует таймер 1"
TMOD = (TMOD & 0x0F) | ( 2 << 4) ;// Timer 1 : режим "2"
TH1 = UART_T1_CALC(UART_BAUD);
TL1 = UART_T1_CALC(UART_BAUD);
TR1 = 1; // Timer 1 run
#endif

RI = 0; //Сброс битов приёма и передачи
TI = 0;

PCON = 0x40 | (UART_BAUD_x2 << 7); //Use FE. SM0 as FE
ES = 1;
PS = 1; // Высокий приоритет!
P3 = 0xff;
return 0;
}
Определения:
#define UART_BAUD 9600
#define UART_BAUD_x2 1 // режим удвоения скорости
#define CLK 11059000 //11.059 МГц
#define TIMER2_DIV 32
// #define UART_USE_TIMER2

#define UART_RCAP_CALC(baud) (unsigned short)((65536.0 - ((float)CLK / (float)baud / (float)TIMER2_DIV)) + 0.5) //9600
#define UART_T1_CALC(baud) (unsigned short)((256.0 - (((float)CLK/12.0)/ ((float)baud * 32.0))) + 0.5)

#define DEBUG_PIN0( x ) P1_0 = x;
#define DEBUG_PIN1( x ) P1_1 = x;
#define WDT_HW_RESET P3_5 ^= 1;

#define DEBUG_IRQ_UART_RI_START DEBUG_PIN1(0); DEBUG_PIN1(1)
#define DEBUG_IRQ_UART_RI_EXIT DEBUG_PIN1(0); DEBUG_PIN1(1);DEBUG_PIN1(0); DEBUG_PIN1(1)
#define DEBUG_UART_FE_DETECT DEBUG_PIN0(0); DEBUG_PIN0(1);
Потеря байтов. нет FE!
Изображение

Потеря байтов. 19200 бод, 1 стоп бит.
Изображение

Обмен нормальный. 19200 бод, 2 стоп бит.
Изображение
iap_64
Сообщения: 1
Зарегистрирован: 14 окт 2021, 18:39
Предприятие: ФГУП НПЦАП

Re: 1830ВЕ32У, 1830ВЕ32АУ

Сообщение iap_64 »

Здравствуйте. Для проведения климатических и механических испытаний макета аппаратуры (без специалтных воздействий) заложен 1830ве32у, но сроки его поставки неприемлемо затянуты. К1830ве32у может быть поставлен намного быстрее, но в описании о нем и его параметрах информации найти не удалось. Прошу уточнить их основные отличия?
dav
Сообщения: 208
Зарегистрирован: 14 дек 2015, 09:21
Предприятие: АО НИИЭТ
Откуда: АО НИИЭТ, Воронеж

Re: 1830ВЕ32У, 1830ВЕ32АУ

Сообщение dav »

iap_64 писал(а): 15 окт 2021, 11:22 Здравствуйте. Для проведения климатических и механических испытаний макета аппаратуры (без специалтных воздействий) заложен 1830ве32у, но сроки его поставки неприемлемо затянуты. К1830ве32у может быть поставлен намного быстрее, но в описании о нем и его параметрах информации найти не удалось. Прошу уточнить их основные отличия?
Доброго времени суток!
Микроконтроллеры К1830ве32у и 1830ве32у отличаются приемкой (К1830ве32у - с приемкой "1" ОТК, 1830ве32у - с приемкой "5" ВП).
Ответить

Вернуться в «Радиационно-стойкие интегральные схемы»