Ekka 0 1 ноября, 2017 Опубликовано 1 ноября, 2017 (изменено) · Жалоба Привет всем, засели за такую штуку как CAN. Пока ничего не понятно, к сожалению, но, может, кто-то знает, как в CubeMX настроить работу CAN с готовым стеком и протоколом, это вообще возможно ? Посоветуйте, что почитать по этому поводу? Хочу использовать stm32f105R8Tx+CAN(CANopen+CANfestival) О_О" Есть еще какое-то ПО для этого случая... canopen object dictionary editor вроде.. Что это все и где взять и куда вообще начать копать? Изменено 1 ноября, 2017 пользователем Ekka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 19 1 ноября, 2017 Опубликовано 1 ноября, 2017 · Жалоба Привет всем, засели за такую штуку как CAN. Пока ничего не понятно, к сожалению, но, может, кто-то знает, CAN - закрытая секретная информация, по ней в интернете все удалено со всех серверов, все книги и даташиты по CAN под жесточайшим запретом. Даже обсуждение CAN в открытом доступе попадает по статью ... Осторожнее с запрещенной литературой !!! CAN - это не шутки! зы. Если серьезно: как только у вас будут появляться конкретные вопросы, ответы на которые не дают интернеты и книги, то можно смело писать сюда, тогда помогут. ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 41 1 ноября, 2017 Опубликовано 1 ноября, 2017 · Жалоба Более того сайты со словами CAN блокируются Роскомнадзором. Здесь конечно люди, которые тщательно скрывают свои знания, но часть тайны смогут приоткрыть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
*Leks* 0 2 ноября, 2017 Опубликовано 2 ноября, 2017 · Жалоба Эх, старый добрый российский интернет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 4 2 ноября, 2017 Опубликовано 2 ноября, 2017 · Жалоба CAN - закрытая секретная информация, по ней в интернете все удалено со всех серверов, все книги и даташиты по CAN под жесточайшим запретом. Даже обсуждение CAN в открытом доступе попадает по статью ... CAN - это не шутки! Не смешно. Информация на https://www.can-cia.org открытого доступа к ней нет. Чтобы получить доступ надо стать CiA Member и уплачивать ежегодные взносы. На торрентах материалов из CiA нет. Для работы нужен софт (анализаторы протоколов). С этим беда-печаль: ixaat за невменяемое количество денег а у остальных анализаторы протоколов либо отсутствуют как класс либо рудиментарные. ТС: подумайте как следует еще раз так ли уж нужен вам CAN ? Не можете ли вы обойтись чем нибудь открытым и стандартным эзернетом например ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 2 2 ноября, 2017 Опубликовано 2 ноября, 2017 · Жалоба Информация на https://www.can-cia.org открытого доступа к ней нет. Чтобы получить доступ надо стать CiA Member и уплачивать ежегодные взносы. Цитата отсюда: Technical documents in public status can be downloaded free of charge by CiA-members and non-members after registration Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 19 2 ноября, 2017 Опубликовано 2 ноября, 2017 · Жалоба Для работы нужен софт (анализаторы протоколов). С этим беда-печаль: ixaat за невменяемое количество денег а у остальных анализаторы протоколов либо отсутствуют как класс либо рудиментарные. Странно, как же тогда мне удалось все это скачать бесплатно и даже часть на русском? ... Может, у меня какой-то другой интернет, выходящий в параллельную вселенную? Бюджетное железо (USB-CAN) брал тут: http://can.marathon.ru, софт в довесок у них бесплатный (под их железки). В свое время мне этого вполне хватило самостоятельно написать даже свой CANopen slave, не говоря уже о прикручивании готовых стеков. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
leocat 0 2 ноября, 2017 Опубликовано 2 ноября, 2017 · Жалоба Н-да... сейчас понапишут... Если по работе с CAN на чипах серии STM32F10x, в частности 103, то описание работы с этим "добром" очень хорошо сделал https://www.smartmode.info. Правда с использованием SPL. Если интересно использовать микрочиповские чипы, то это есть у меня https://github.com/leocat3/open-plc/tree/ma...source/can_gate, тоже SPL Не знаю, какова необходимость в "стандарте" CANOpen, но почитамши буквари, пришел к выводу, что мне этого не надо. Через чур усложнили. Все можно сделать намного проще, напр.: http://open-plc.blogspot.ru/2017/05/explor...f100-board.html От CANOpen взял только стандарт на скорости да количество точек выборки / процент попадания. Литературы и по CANopen и по CANfestival в открытом доступе - немеряно. Начните с того же Beremiz. Для анализа физического уровня вроде тоже - трудностей не заметил. Взять тот же китайский клон Saleae. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 4 2 ноября, 2017 Опубликовано 2 ноября, 2017 · Жалоба Не знаю, какова необходимость в "стандарте" CANOpen, но почитамши буквари, пришел к выводу, что мне этого не надо. Через чур усложнили. ... Литературы и по CANopen и по CANfestival в открытом доступе - немеряно. Начните с того же Beremiz. Немеряно букварей. Когда начнете выяснять почему не работает ваша реализация lss fast scan или еще что-то из глубин стандарта обнаружите что букварей недостаточно. CANopen протокол обширный и весьма непростой. Я и пишу - оно ТС надо ? Для анализа физического уровня вроде тоже - трудностей не заметил. Взять тот же китайский клон Saleae. Нет проблем с физическим уровнем. Есть проблемы с анализом стандартных протоколов. Странно, как же тогда мне удалось все это скачать бесплатно и даже часть на русском? ... Может, у меня какой-то другой интернет, выходящий в параллельную вселенную? Наверно у меня интернет неправильный. Скачайте-ка из "параллельной вселенной" бесплатно и на русском: CiA 302 все части CiA 309 все части (особенно интересует 309-2) CiA 310 CiA 312 CiA 315 CiA 445 CiA 603 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 19 2 ноября, 2017 Опубликовано 2 ноября, 2017 · Жалоба Нет проблем с физическим уровнем. Есть проблемы с анализом стандартных протоколов. Чуть выше я давал ссылку на железку от отеч. производителя. У них есть бесплатный анализатор протоколов CANopen, я такой использовал в свое время. Называется CANwise или типа того. Конечно, он не дотягивает до "крутых", но мне его вполне хватило спроектировать свой CANopen slave. А уж для прикручивания готового стека его за глаза. Наверно у меня интернет неправильный.Полагаю, что дело тут не в интернете вовсе ... На местном FTP есть много литературы по CAN, как получить туда доступ, есть соотв. тема. Скачайте-ка из "параллельной вселенной" бесплатно и на русском: Существование базовых описаний на русском лишь немного упрощают вхождение в тему, но работать все равно придется с оригинально документацией - на английском. Поэтому дело тут не "отсутствии документации", а в том, кому она нужна в таком избыточном объеме. С другой стороны, когда делаете коммерческое изделие с CANopen, его все равно нужно сертифицировать, проходя соотв. тесты. А это требует полной документации, чтобы не платить за процедуру сертификации по много раз. Поэтому придется регистрироваться в CAN CiA и платить членские взносы, чтобы получить нужную документацию (кстати, это не так уж и дорого). Ну а для "колхозников", которые городят CANopen железяки на коленках для себя или таких же "колхозных" организаций вполне хватает и того, что можно скачать в открытом доступе. зы. вспомните известную пословицу: "И рыпку съесть и на %$# сесть" ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ekka 0 2 ноября, 2017 Опубликовано 2 ноября, 2017 · Жалоба После чтения всего того, что тут понаписали и понапугали... Ну ладно( Пытаюсь просто сейчас с помощью HAL и Куба настроить КАН в режиме LoopBack, чтобы КАН слушал сам себя. (Поправьте, если ерунда: это же значит, что на КАН получит на прием то, что сам же и отправил, так?) Но после моей корявой настройки в прерывание упорно не заходит. Просто не заходит в прерывания, ни по приему, ни по передаче. Не бейте, пожалуйста, за --говнокод--, только учусь. Настройка кана Кубовская. Фильтры взяты с интернета и вообще убраны. В цикле отправляю посылку. Настройка кана: static void MX_CAN1_Init(void) { hcan1.Instance = CAN1; hcan1.Init.Prescaler = 12; hcan1.Init.Mode = CAN_MODE_LOOPBACK; hcan1.Init.SJW = CAN_SJW_1TQ; hcan1.Init.BS1 = CAN_BS1_4TQ; hcan1.Init.BS2 = CAN_BS2_3TQ; hcan1.Init.TTCM = DISABLE; hcan1.Init.ABOM = DISABLE; hcan1.Init.AWUM = DISABLE; hcan1.Init.NART = ENABLE; hcan1.Init.RFLM = DISABLE; hcan1.Init.TXFP = DISABLE; if (HAL_CAN_Init(&hcan1) != HAL_OK) { Error_Handler(); } } Функция отправки: void CAN_Transmit(void) { hcan1.pTxMsg->StdId = 0x130; hcan1.pTxMsg->DLC = 8; hcan1.pTxMsg->Data[0] = 1; hcan1.pTxMsg->Data[1] = 2; hcan1.pTxMsg->Data[2] = 3; hcan1.pTxMsg->Data[3] = 4; hcan1.pTxMsg->Data[4] = 5; hcan1.pTxMsg->Data[5] = 6; hcan1.pTxMsg->Data[6] = 7; hcan1.pTxMsg->Data[7] = 8; HAL_CAN_Transmit(&hcan1, 10); } функция по приему: (надо ли вообще) void HAL_CAN_RxCpltCallback(CAN_HandleTypeDef* canHandle) { CAN_ID = canHandle->pRxMsg->StdId; CAN_DLC = canHandle->pRxMsg->DLC; DATA[0] = canHandle->pRxMsg->Data[0]; DATA[1] = canHandle->pRxMsg->Data[1]; DATA[2] = canHandle->pRxMsg->Data[2]; DATA[3] = canHandle->pRxMsg->Data[3]; DATA[4] = canHandle->pRxMsg->Data[4]; DATA[5] = canHandle->pRxMsg->Data[5]; DATA[6] = canHandle->pRxMsg->Data[6]; DATA[7] = canHandle->pRxMsg->Data[7]; HAL_CAN_Receive_IT(&hcan1, CAN_FIFO0); } мэйн: int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_CAN1_Init(); hcan1.pTxMsg = &canTxMessage; hcan1.pRxMsg = &canRxMessage; /*CAN_FilterConfTypeDef canFilterConfig; canFilterConfig.FilterNumber = 0; canFilterConfig.FilterMode = CAN_FILTERMODE_IDLIST; canFilterConfig.FilterScale = CAN_FILTERSCALE_16BIT; canFilterConfig.FilterIdHigh = 0x53A<<5; canFilterConfig.FilterIdLow = 0x53D<<5; canFilterConfig.FilterMaskIdHigh = 0x54D<<5; canFilterConfig.FilterMaskIdLow = 0x54F<<5; canFilterConfig.FilterFIFOAssignment = 0; canFilterConfig.FilterActivation = ENABLE; canFilterConfig.BankNumber = 1; HAL_CAN_ConfigFilter(&hcan1, &canFilterConfig); canFilterConfig.FilterNumber = 1; canFilterConfig.FilterIdHigh = 0xA<<5; canFilterConfig.FilterIdLow = 0x33<<5; canFilterConfig.FilterMaskIdHigh = 0x44<<5; canFilterConfig.FilterMaskIdLow = 0x55<<5; HAL_CAN_ConfigFilter(&hcan1, &canFilterConfig);*/ HAL_CAN_Receive_IT(&hcan1, CAN_FIFO0); while (1) { CAN_Transmit(); HAL_Delay(200); } } Почему может в прерывания не заходить? (void CAN1_TX_IRQHandler(void) и void CAN1_RX0_IRQHandler(void)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 41 2 ноября, 2017 Опубликовано 2 ноября, 2017 · Жалоба Ох мамулька дорогая ! А почему надо сразу что то строчить и генерить, а не посмотреть любой из 100500 открытых проектов (с исходниками Карл !) ? Привет всем, засели за такую штуку как CAN. То есть коллектив ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ekka 0 2 ноября, 2017 Опубликовано 2 ноября, 2017 · Жалоба Как раз смотрю Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 19 2 ноября, 2017 Опубликовано 2 ноября, 2017 · Жалоба Почему может в прерывания не заходить? Потому что соотв. прерывания не были разрешены или/и не реализованы соотв. векторы прерываний. То есть коллектив ? Типа того: :smile3046: :smile3046: :smile3046: :smile3046: :smile3046: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ekka 0 2 ноября, 2017 Опубликовано 2 ноября, 2017 · Жалоба Потому что соотв. прерывания не были разрешены или/и не реализованы соотв. векторы прерываний. Типа того: :smile3046: :smile3046: :smile3046: :smile3046: :smile3046: нет... скорее ТАК :crying: /I am Alone/ разрешены прерывания сейчас по приему и передаче. Все нормально, входит в прерывание по приему и передаче, НО!!! ЕдИнОжДы... хотя отправляю в цикле же... висит в состоянии готовности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться