Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

32-разрядные микроконтроллеры разработки АО "НИИЭТ"

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

Аватара пользователя
Лашкевич
Сообщения: 373
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение Лашкевич »

Хорошо. Посылки верные. Теперь юникон.
1. Покажите параметры модуля связи (скриншот)
2. Что написано снизу слева в статусе на основном окне?
3 Узел сверху слева не появляется?
4. Не запущен ли юникон в песочнице каким-то антивирусом?
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
petrovitch
Сообщения: 107
Зарегистрирован: 15 фев 2017, 19:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch »

Unicon_3.jpg
Unicon_3.jpg (153.65 КБ) 1549 просмотров
Unicon_2.jpg
Unicon_2.jpg (50.51 КБ) 1549 просмотров
Unicon_1.jpg
Unicon_1.jpg (46.48 КБ) 1549 просмотров
Аватара пользователя
Лашкевич
Сообщения: 373
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение Лашкевич »

А, ну понятно. Когда такое имя устройства (bad) это значит, что устройство не слышит юникон (не принимает его посылки). Т.е. устройство посылает, но не принимает. Юникон, когда видит устройство в сети, посылает ему запрос на чтение идентификационных параметров, чтобы показать, что это за устройство, но, не видя ответа, переспрашивает безуспешно еще несколько раз и рисует BAD. Возможно, в аппаратной части что-то не так, или внутри софта что-то не так с приемом посылок (ножка на прием не сконфигурирована).
Проверьте, что функция CANtoRS_ReceiveRS внтури драйвера V_CANtoRS.c вызывается как таковая, а потом проверьте, принимает ли она что-нибудь (поставьте бряку на ReadPackDataCounter или вставьте свой счетчик). Если не принимает, проверяйте ножки на приём, проверьте осциллографом на ножке RX, что посылки идут (должно быть несколько после запуска юникона, потом он будет молчать). Или можете сами посылать что-то своей программой периодически (вместо юникона) и убедиться, что приём посылок внутри CANtoRS_ReceiveRS пошел.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
petrovitch
Сообщения: 107
Зарегистрирован: 15 фев 2017, 19:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch »

Сигнал на отправленный внешней программой на ножке RX есть!
TEK0000.JPG
TEK0000.JPG (84.96 КБ) 1536 просмотров
Инициализацию UART проверил. Всё как в оригинале (местами в схеме я к этому и стремился).

А вот установка Breakpoint показала отсутствие вызова функции приёма данных. Я и в коде вызов не нашёл (!).
Тогда как происходит передача?

Код: Выделить всё

void SM_Sys_ms_Calc(TSM_Sys* p) {
	sm_cmd_logic.ms_calc(&sm_cmd_logic); //Обработка команд управления
	sm_net.ms_calc(&sm_net); //обертка для вызова коммуникационных драйверов
	adc.ms_calc(&adc); //АЦП
	sm_prot.ms_calc(&sm_prot); //Защиты
	AutoOffset.ms_calc(&AutoOffset); //авто смещение некоторых каналов АЦП
	//блочная передача драйвера CANopen. Через неё, в частности, грузятся осциллограммы dlog
	Can2BTInterface.ms_calc(&Can2BTInterface, NT_TIMER2->VALUE, &co2_vars);
	leds.msCalc(&leds);//светодиоды
	RTCclock.msCalc(&RTCclock);//часы
	UserMem.ms_calc(&UserMem);//пользовательская память в МК
	if ((drv_params.sens_type == 2) || (drv_params.sens_type == 3)){ //В типе датчика выбран ДПР Холла
		DPReCAP.ms_calc(&DPReCAP);
	}
	global_time.ms_calc(&global_time);

	DIO_fast_calc(); //дискретные входы/выходы
Аватара пользователя
Лашкевич
Сообщения: 373
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение Лашкевич »

Ну там вызывается общая функция calc этого модуля в 10кГц вроде, а внутри уже всё остальное. Там же по указателю вызов.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
petrovitch
Сообщения: 107
Зарегистрирован: 15 фев 2017, 19:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch »

В main определяется переменная CANtoRS и инициализируется в том числе указателями, но действительно упоминания этой переменной ни в Fast_calc, ни в Slow_calc нет!

Видимо поэтому и breakpoint не срабатывает.
Аватара пользователя
Лашкевич
Сообщения: 373
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение Лашкевич »

CANtoRS.calc(&CANtoRS); (указатель на CANtoRS_calc) вызывается в SM_Net_ms_Calc, в CANtoRS_calc вызывается CANtoRS_Receive, там вызывается CANtoRS_ReceiveRS. Не 10кгц, но 1мс, да. Бряка может не срабатывать из-за включенной оптимизации. Поставьте счетчики.
Вложения
2019-07-18_13-06-09.png
2019-07-18_13-06-09.png (54.94 КБ) 1531 просмотр
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
petrovitch
Сообщения: 107
Зарегистрирован: 15 фев 2017, 19:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch »

Ставил breakpoint в функции приёма данных
CANtoRS function.jpg
CANtoRS function.jpg (102.58 КБ) 1526 просмотров
При отправке с внешнего терминала как бы сюда программа не попадает, но на паузе счётчик принятых пакетов p->ReadPackDataCounter показывает некое ненулевое число и буфер данных соответствует отправленным данным. :?:
Аватара пользователя
Лашкевич
Сообщения: 373
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение Лашкевич »

А вот еще что. Попробуйте снять галочку 29 бит идентификатор в параметрах модуля связи. Это, насколько я помню, дефолтные параметры.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
petrovitch
Сообщения: 107
Зарегистрирован: 15 фев 2017, 19:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch »

Теперь соединение установилось!

Но список параметров отображается не так. В чём теперь дело?
Node.jpg
Node.jpg (17.98 КБ) 1499 просмотров
Node.jpg
Node.jpg (17.98 КБ) 1499 просмотров
Вложения
Dict.jpg
Dict.jpg (31.03 КБ) 1499 просмотров
Ответить

Вернуться в «32-разрядные микроконтроллеры»