Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
Модераторы: ea, dav, bkolbov, Alis, pip, _sva_
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
Хорошо. Посылки верные. Теперь юникон.
1. Покажите параметры модуля связи (скриншот)
2. Что написано снизу слева в статусе на основном окне?
3 Узел сверху слева не появляется?
4. Не запущен ли юникон в песочнице каким-то антивирусом?
1. Покажите параметры модуля связи (скриншот)
2. Что написано снизу слева в статусе на основном окне?
3 Узел сверху слева не появляется?
4. Не запущен ли юникон в песочнице каким-то антивирусом?
-
- Сообщения: 107
- Зарегистрирован: 15 фев 2017, 19:07
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
А, ну понятно. Когда такое имя устройства (bad) это значит, что устройство не слышит юникон (не принимает его посылки). Т.е. устройство посылает, но не принимает. Юникон, когда видит устройство в сети, посылает ему запрос на чтение идентификационных параметров, чтобы показать, что это за устройство, но, не видя ответа, переспрашивает безуспешно еще несколько раз и рисует BAD. Возможно, в аппаратной части что-то не так, или внутри софта что-то не так с приемом посылок (ножка на прием не сконфигурирована).
Проверьте, что функция CANtoRS_ReceiveRS внтури драйвера V_CANtoRS.c вызывается как таковая, а потом проверьте, принимает ли она что-нибудь (поставьте бряку на ReadPackDataCounter или вставьте свой счетчик). Если не принимает, проверяйте ножки на приём, проверьте осциллографом на ножке RX, что посылки идут (должно быть несколько после запуска юникона, потом он будет молчать). Или можете сами посылать что-то своей программой периодически (вместо юникона) и убедиться, что приём посылок внутри CANtoRS_ReceiveRS пошел.
Проверьте, что функция CANtoRS_ReceiveRS внтури драйвера V_CANtoRS.c вызывается как таковая, а потом проверьте, принимает ли она что-нибудь (поставьте бряку на ReadPackDataCounter или вставьте свой счетчик). Если не принимает, проверяйте ножки на приём, проверьте осциллографом на ножке RX, что посылки идут (должно быть несколько после запуска юникона, потом он будет молчать). Или можете сами посылать что-то своей программой периодически (вместо юникона) и убедиться, что приём посылок внутри CANtoRS_ReceiveRS пошел.
-
- Сообщения: 107
- Зарегистрирован: 15 фев 2017, 19:07
Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
Сигнал на отправленный внешней программой на ножке RX есть!
А вот установка Breakpoint показала отсутствие вызова функции приёма данных. Я и в коде вызов не нашёл (!).
Тогда как происходит передача?
Инициализацию 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кГц вроде, а внутри уже всё остальное. Там же по указателю вызов.
-
- Сообщения: 107
- Зарегистрирован: 15 фев 2017, 19:07
Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
В main определяется переменная CANtoRS и инициализируется в том числе указателями, но действительно упоминания этой переменной ни в Fast_calc, ни в Slow_calc нет!
Видимо поэтому и breakpoint не срабатывает.
Видимо поэтому и 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 (54.94 КБ) 1543 просмотра
-
- Сообщения: 107
- Зарегистрирован: 15 фев 2017, 19:07
Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
Ставил breakpoint в функции приёма данных
При отправке с внешнего терминала как бы сюда программа не попадает, но на паузе счётчик принятых пакетов p->ReadPackDataCounter показывает некое ненулевое число и буфер данных соответствует отправленным данным. - Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
А вот еще что. Попробуйте снять галочку 29 бит идентификатор в параметрах модуля связи. Это, насколько я помню, дефолтные параметры.
-
- Сообщения: 107
- Зарегистрирован: 15 фев 2017, 19:07
Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01
Теперь соединение установилось!
Но список параметров отображается не так. В чём теперь дело?
Но список параметров отображается не так. В чём теперь дело?
- Вложения
-
- Dict.jpg (31.03 КБ) 1511 просмотров