Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2019-июл-18 03:35

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: RS-485
СообщениеДобавлено: 2019-июл-10 13:58 
Не в сети

Зарегистрирован: 2019-май-06 01:06
Сообщения: 5
Возможно ли где посмотреть пример реализации на 1986ве3 по rs-485. а то на демо плате по 232-му передачу и обмен отдельными байтами по имеющимся примерам и документации получилось, а с 485 затык. и немного не понятен алгоритм работы с выходами (PORTI 13,14) управления приемо-передатчиком на демоплате. Заранее спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RS-485
СообщениеДобавлено: 2019-июл-10 14:38 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1309
Откуда: Тула
movAXBX писал(а):
пример реализации на 1986ве3 по rs-485. а то на демо плате по 232-му передачу и обмен отдельными байтами по имеющимся примерам и документации получилось, а с 485 затык.

А в чём, собственно, затык?
Если в переключении с передачи на приём, то да, вследствие природной кривизны тамошнего UART'a, не имеющего прерывания по окончанию передачи и снимающего флаг BUSY до окончания передачи стопового бита, реализация нормального полудуплекса становится не тривиальной и сильно зависящей от задачи. Хотя и на мегабите 485й поднять можно.

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RS-485
СообщениеДобавлено: 2019-июл-10 16:07 
Не в сети

Зарегистрирован: 2019-май-06 01:06
Сообщения: 5
данные на выходе из порта вообще не вижу. Вот и начинаю сомневаться что код не правильно, или перемычки лишние или недоустановил на демоплате. уже даже просто передачу байта оставил, иди фиг даже видимости передачи на порту не вижу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RS-485
СообщениеДобавлено: 2019-июл-10 17:06 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1309
Откуда: Тула
Тогда нужно:
1. Проверить железо (по схеме, вольтметром, осциллографом);
2. Включить "физику" на передачу, убедиться в этом.
3. Циклично слать в порт что-то, проверить.
4 ....
5. PROFIT!

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RS-485
СообщениеДобавлено: 2019-июл-10 22:35 
Не в сети

Зарегистрирован: 2019-май-06 01:06
Сообщения: 5
prostoRoman писал(а):
Тогда нужно:
1. Проверить железо (по схеме, вольтметром, осциллографом);
2. Включить "физику" на передачу, убедиться в этом.
3. Циклично слать в порт что-то, проверить.
4 ....
5. PROFIT!

1. смотрю не только данные но и осцилографом.
3. что то шлю в порт отправляю.

2,4,5 а зачем я прошу пример реализации, наверно что бы понять насколько мой код рабочий. и вот абсолютно бесполезный ваш ответ


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RS-485
СообщениеДобавлено: 2019-июл-10 22:43 
Не в сети

Зарегистрирован: 2019-май-06 01:06
Сообщения: 5
PORT_InitTypeDef GPIO_user_iniCTRL;


GPIO_user_iniCTRL.PORT_FUNC=PORT_FUNC_PORT;
GPIO_user_iniCTRL.PORT_MODE=PORT_MODE_DIGITAL;
GPIO_user_iniCTRL.PORT_OE=PORT_OE_OUT;
GPIO_user_iniCTRL.PORT_Pin=PORT_Pin_All;
GPIO_user_iniCTRL.PORT_PULL_DOWN=PORT_PULL_DOWN_ON;
GPIO_user_iniCTRL.PORT_PULL_UP=PORT_PULL_UP_OFF;

PORT_Init (MDR_PORTI , &GPIO_user_iniCTRL);


//

PORT_ResetBits(MDR_PORTI , PORT_Pin_13);
PORT_SetBits(MDR_PORTI , PORT_Pin_14);
UART_SendData (MDR_UART1,countt );

код пытаюсь заставить работать на ДЕМОПЛАТЕ

PORT_InitTypeDef GPIO_user_ini;
UART_InitTypeDef uart_user_ini;

GPIO_user_ini.PORT_FUNC=PORT_FUNC_OVERRID; //PORT_FUNC_PORT;
GPIO_user_ini.PORT_MODE=PORT_MODE_DIGITAL;
// GPIO_user_ini.PORT_OE=PORT_OE_IN;
// GPIO_user_ini.PORT_Pin=PORT_Pin_3;
// GPIO_user_ini.PORT_PULL_DOWN=PORT_PULL_DOWN_OFF;
// GPIO_user_ini.PORT_PULL_UP=PORT_PULL_UP_OFF;
GPIO_user_ini.PORT_Pin=PORT_Pin_4;
GPIO_user_ini.PORT_OE=PORT_OE_OUT;
GPIO_user_ini.PORT_PULL_DOWN=PORT_PULL_DOWN_OFF;
GPIO_user_ini.PORT_PULL_UP=PORT_PULL_UP_OFF;
GPIO_user_ini.PORT_PD_SHM=PORT_PD_SHM_OFF;
GPIO_user_ini.PORT_PD=PORT_PD_DRIVER;


PORT_Init (MDR_PORTC,&GPIO_user_ini);

RST_CLK_PCLKcmd(RST_CLK_PCLK_UART1,ENABLE);

UART_BRGInit (MDR_UART1, UART_HCLKdiv1);

uart_user_ini.UART_BaudRate= 9600;
uart_user_ini.UART_FIFOMode=UART_FIFO_OFF;
uart_user_ini.UART_HardwareFlowControl=UART_HardwareFlowControl_TXE;
uart_user_ini.UART_Parity=UART_Parity_No;
uart_user_ini.UART_StopBits=UART_StopBits1;
uart_user_ini.UART_WordLength=UART_WordLength8b;


UART_Init (MDR_UART1, &uart_user_ini);
UART_Cmd (MDR_UART1, ENABLE);
//
while (runs=1) // LOOP
{
countt++;
PORT_ResetBits(MDR_PORTI , PORT_Pin_13);
PORT_SetBits(MDR_PORTI , PORT_Pin_14);
UART_SendData (MDR_UART1,countt );
}


этот код на демоплате данные на 485 не передает


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RS-485
СообщениеДобавлено: 2019-июл-11 08:59 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 438
Цитата:
RST_CLK_PCLKcmd(RST_CLK_PCLK_UART1,ENABLE);

для UART есть тактирование, а для портов аналогичной ф-ции не видно.Может, действительно, тактирование портов не включено??

_________________
О сколько нам открытий чудных
Готовит просвященья дух,
И опыт - сын ошибок трудных ... (Пушкин)

Пергаменты не утоляют жажду ("Фауст",Гете)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RS-485
СообщениеДобавлено: 2019-июл-11 11:33 
Не в сети

Зарегистрирован: 2019-май-06 01:06
Сообщения: 5
редактор писал(а):
Цитата:
RST_CLK_PCLKcmd(RST_CLK_PCLK_UART1,ENABLE);

для UART есть тактирование, а для портов аналогичной ф-ции не видно.Может, действительно, тактирование портов не включено??

тоже вопрос, для PORTI компилятор не пропустил включение тактирования.
Поэтому подозревая что я в корне не правильно взялся за решение и прошу пример работы с самим портом. А то с протоколами разобрался а с сами портом проблема. Тут товарищи-создатели чудесных микроконтроллеров часто появляются?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RS-485
СообщениеДобавлено: 2019-июл-11 11:43 
Не в сети

Зарегистрирован: 2017-апр-26 14:51
Сообщения: 362
Откуда: ПКК "Миландр"
Тактирование, которое не включается функцией RST_CLK_PCLKcmd(), включается функцией RST_CLK_PCLK2cmd(). Она прямо следующая объявлена в заголовочнике MDR32F9Qx_rst_clk.h библиотеки после RST_CLK_PCLKcmd().
Примеры работы с UART входят в состав библиотеки - C:\Keil_v5\ARM\PACK\Keil\MDR1986BExx\1.51\Examples\MDR1986VE3\UART

До кучи еще тут можно почитать:
https://startmilandr.ru/doku.php/prog:u ... o_sndarray
https://startmilandr.ru/doku.php/prog:uart:echo_rate

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB