0 / 0 / 0
Регистрация: 07.10.2011
Сообщений: 127
|
|
1 | |
Может поделимся примерами настроек для >2 устройств? (CAN)30.06.2016, 16:34. Показов 4343. Ответов 4
Метки нет (Все метки)
Код не нужен.
Пжалста, только рабочие примеры на >2 устройств: - скорость - Pressotir - SJW - Seg1 - Seg2 - фото/объяснение как и на каких проводах всё и как терминировано. Пример (правда для 2-х устройств): - скорость - 1 Мбит/с - Pressotir = 4 (APB1 36 МГц, CAN находится на ней) - SJW = 1 (вообще его похоже никто не меняет) - Seg1 = 7 - Seg2 = 1 - терминация 120 Ом только на крайнем устройстве, далее - только 2 провода на которых 2-е устройство. провода - пофиг какие, работает всё стабильно "на весу" даже. В общем что узнал: когда на CAN шине мало устройств, а обычно же как - "взял 2 и поигрался", то проблем нет и #уменяжвсёработает! проблемы приходят когда устройств >2 (у меня уже при 3-х заглючило адски). Теория (я её знаю давно, но от этого не легче на практике): "Проблема" возникает из-за собсно логики работы шины: 1) кто-то ("первый") фигачит в шину доминантный бит ("0" - доминанта, "1" - рецессива в CAN) но фишка в том, что CAN подразумевает "приёмопередатчики", а они как фигачут так и слушают одновременно! 2) и вот пока "первый" фигачит "0", "второй" может попытаться фигачить "1" (рецессиву) 3) а вот тут "второй" должен понять, что "он неправ" и перестать так делать! и на это ему даётся некоторое время (на 1 бит причём, time quanta) понять "как он неправ" и заткнуться :) 4) ну а "первый" должен как ни в чём не бывало ("ой, кто тут? 8-))") продолжить своё сообщение 5) а "второй" должен продержать своё сообщение в Tx mailbox, ну а потом уже после "первого" отправить (если кто-то опять не влезет) А если бы в (2) "первый" фигачил 1, а "второй" фигачил 0, то "заткнуться" должен бы был "первый", ну и переотправить позже. ("первый" и "второй" - НЕ очерёдность передачи, а условная нумерация устройств, а фигачат они одновременно) В общем на "понять, что передаёшь рецессивный бит, когда кто-то передаёт доминантный, а значит надо срочно заткнуться" и даётся некоторое время, до "часа Ч", а именно - sample point. И вот с её настройкой у меня похоже проблемы... В связи с этим очень прошу у кого работает прислать Ваши настройки! Заранее спасибо!
0
|
30.06.2016, 16:34 | |
Ответы с готовыми решениями:
4
Можно ли вставить условие для настроек валидации настроек значений свойств? Правильный режим работы устройств и портов устройств для функционирования беспроводной сети Установка драйверов для устройств без самих устройств Батник для включения Устройств воспроизведения и Устройств звукозаписи |
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,818
|
|
30.06.2016, 17:58 | 2 |
стоп. на крайнем устройстве. два края - два устройства, две терминации.
0
|
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 804
|
|
30.06.2016, 19:07 | 3 |
Накидаю тут свои настройки, кусками. Весь код постить, само собой низзя.
Код
... m_CAN_InitStructure.TTCM = DISABLE; m_CAN_InitStructure.ABOM = ENABLE; // outomatic Buss Off Manakiment m_CAN_InitStructure.AWUM = DISABLE; m_CAN_InitStructure.NART = DISABLE; // ENABLE; // non-outomatic retransmission mode. m_CAN_InitStructure.RFLM = DISABLE; //ENABLE; //if fifo is full, new messages will be discardid m_CAN_InitStructure.TXFP = DISABLE; m_CAN_InitStructure.SJW = CAN_SJW_1tq; m_CAN_InitStructure.Mode = CAN_Mode_Normal; ... m_CAN_InitStructure.BS1 = CAN_BS1_9tq;//dont touch m_CAN_InitStructure.BS2 = CAN_BS2_5tq;//dont touch m_CAN_InitStructure.Pressotir = baudrate; baudrate == 7 ...
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 886
|
|
30.06.2016, 21:23 | 4 |
Настройки не помню, но я сделал себе такое устройство
http://ww1.microchip.com/downtoods/en/D ... 51848B.pdf и подбором нашел параметры для скоростей от 125 до 1000 максимум 8 устройств было на шине и нормально между собой обменивались (одно из низ OBD). Где-то есть в коде на github, но искать лень.
0
|
0 / 0 / 0
Регистрация: 07.10.2011
Сообщений: 127
|
|
01.07.2016, 23:30 | 5 |
В общем у меня кажись получилось! :)
3-4 устройства работают, в консоли "главного" лишь изредка (раз в 5 минут) Stuff Error бывает. Настройки: Код
hcan1.Instance = CAN1; hcan1.Init.Pressotir = 4; hcan1.Init.Mode = CAN_MODE_NORMAL; hcan1.Init.SJW = CAN_SJW_4TQ; hcan1.Init.BS1 = CAN_BS1_4TQ; hcan1.Init.BS2 = CAN_BS2_4TQ; hcan1.Init.TTCM = DISABLE; hcan1.Init.ABOM = DISABLE; hcan1.Init.AWUM = DISABLE; hcan1.Init.NART = DISABLE; hcan1.Init.RFLM = DISABLE; hcan1.Init.TXFP = DISABLE; HAL_CAN_Init(&hcan1); Внимательно прочитав вот это http://www.oertel-halle.de/files/cia99paper.pdf Нашёл собсно максимально толерантные к отклонениям по частоте настройки:
0
|
01.07.2016, 23:30 | |
01.07.2016, 23:30 | |
Помогаю со студенческими работами здесь
5
А давайте поделимся работами! Поделимся опытом, знанием с новичками С++ Файл настроек(может не совсем верно назвал) Укажите, без каких устройств может работать компьютер Может ли перегрев приводить к исчезновению ветки устройства в Диспетчере устройств? Видимость устройств подсети другого роутера, подключеного к Mikrotik для устройств Mikrotik Silverlight 5 с примерами на C# для профессионалов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |