Требуется CAN-трансмиттер данных SECU-3 в протокол OBD

Все вопросы по железу
Post Reply
Sergey21126
Posts: 89
Joined: 04 Dec 2016, 22:11
Your CAR: LADA 2190
SECU version: DIY SECU-3i
Has thanked: 2 times
Been thanked: 26 times

Re: Требуется CAN-трансмиттер данных SECU-3 в протокол OBD

Post by Sergey21126 »

STC wrote:Сегодня вечером буду искать причину.
Вот начало общения с MCP2515
mcp2515_init.png
Sergey21126
Posts: 89
Joined: 04 Dec 2016, 22:11
Your CAR: LADA 2190
SECU version: DIY SECU-3i
Has thanked: 2 times
Been thanked: 26 times

Re: Требуется CAN-трансмиттер данных SECU-3 в протокол OBD

Post by Sergey21126 »

mcp2515_muki.png
Sigrok:
mcp2515.tar.gz
(4.25 KiB) Downloaded 632 times
Sergey21126
Posts: 89
Joined: 04 Dec 2016, 22:11
Your CAR: LADA 2190
SECU version: DIY SECU-3i
Has thanked: 2 times
Been thanked: 26 times

Re: Требуется CAN-трансмиттер данных SECU-3 в протокол OBD

Post by Sergey21126 »

Вот так выглядит правильная инициализация MCP2515
mc2515_true_init.png
Виден RESET. Загрузка регистров и пр. В общем хз. что-то не так :shock:

Вот так отправка скорости
mcp2515_send_speed.png
Вот синтетика
mcp2515_good_work_speed_send.tar.gz
(1.93 KiB) Downloaded 602 times
Sergey21126
Posts: 89
Joined: 04 Dec 2016, 22:11
Your CAR: LADA 2190
SECU version: DIY SECU-3i
Has thanked: 2 times
Been thanked: 26 times

Re: Требуется CAN-трансмиттер данных SECU-3 в протокол OBD

Post by Sergey21126 »

Ага!
MCP2515 Работает
SPCR = (1<<SPE)|(1<<MSTR) | (0<<SPR1)|(1<<SPR0);

MCP2515 Не работает!
SPCR = _BV(SPE)|_BV(MSTR)|_BV(SPR0)|_BV(CPHA);

Надо переключать регистр при общении с этим чипом.

Все пашет
secu_rulit_tazom.jpg
Программа, которую можно залить в SECU и крутить стрелками (только через программатор)
mcp2515_demo_for_mega644p_ECU.tar.gz
(138.24 KiB) Downloaded 641 times
User avatar
STC
Posts: 13843
Joined: 30 Apr 2013, 23:41
Your CAR: AZLK 2140
SECU version: DIY SECU-3
Location: North Korea
Has thanked: 2160 times
Been thanked: 4335 times
Contact:

Re: Требуется CAN-трансмиттер данных SECU-3 в протокол OBD

Post by STC »

Ага!
MCP2515 Работает
SPCR = (1<<SPE)|(1<<MSTR) | (0<<SPR1)|(1<<SPR0);

MCP2515 Не работает!
SPCR = _BV(SPE)|_BV(MSTR)|_BV(SPR0)|_BV(CPHA);
Спасибо! да, mpc2515 работает только в SPI modes 0,0 and 1,1. А попробуй пожалуйста вот так:

SPCR = _BV(SPE)|_BV(MSTR)|_BV(SPR0)|_BV(CPHA)|_BV(CPOL); //SPI mode 1,1

Для HIP я сбрасываю CPOL, а для MCP2515 устанавливаю...
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)
Sergey21126
Posts: 89
Joined: 04 Dec 2016, 22:11
Your CAR: LADA 2190
SECU version: DIY SECU-3i
Has thanked: 2 times
Been thanked: 26 times

Re: Требуется CAN-трансмиттер данных SECU-3 в протокол OBD

Post by Sergey21126 »

STC wrote:SPCR = _BV(SPE)|_BV(MSTR)|_BV(SPR0)|_BV(CPHA)|_BV(CPOL); //SPI mode 1,1
Инициализация проходит нормально.

В общем все пашет.
User avatar
STC
Posts: 13843
Joined: 30 Apr 2013, 23:41
Your CAR: AZLK 2140
SECU version: DIY SECU-3
Location: North Korea
Has thanked: 2160 times
Been thanked: 4335 times
Contact:

Re: Требуется CAN-трансмиттер данных SECU-3 в протокол OBD

Post by STC »

еще вопрос, это инициализация или именно запись пакета данных:
Sergey21126 wrote:
STC wrote:Сегодня вечером буду искать причину.
Вот начало общения с MCP2515
mcp2515_init.png
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)
Sergey21126
Posts: 89
Joined: 04 Dec 2016, 22:11
Your CAR: LADA 2190
SECU version: DIY SECU-3i
Has thanked: 2 times
Been thanked: 26 times

Re: Требуется CAN-трансмиттер данных SECU-3 в протокол OBD

Post by Sergey21126 »

STC wrote:еще вопрос, это инициализация или именно запись пакета данных:
0xC0 - SPI_RESET
Сброс чипа в исходное состояние (будет режим конфигурирования)

0x02 - SPI_WRITE (писать в регистры)
CNF3 (в какой регистр, потом пойдут CNF2 и CNF1 )
0x01
0x91
0x40 настройка под кварц и скорость шины

После чего читаем CNF1 для проверки. (можно и не делать ))) )
0x03 - SPI_READ
.. adress, и получаем 0x40 если чип живой, можно придумать еще код CHECK :D

Потом
0x05 PI_BIT_MODIFY
+ (CANCTRL, (1<<REQOP2)|(1<<REQOP1)|(1<<REQOP0), 0);
переводим в рабочий режим из конфигурирования

Все. Шлем что-то )
User avatar
STC
Posts: 13843
Joined: 30 Apr 2013, 23:41
Your CAR: AZLK 2140
SECU version: DIY SECU-3
Location: North Korea
Has thanked: 2160 times
Been thanked: 4335 times
Contact:

Re: Требуется CAN-трансмиттер данных SECU-3 в протокол OBD

Post by STC »

Достал из шкафа клон Saleae Logic 16, подключил, настроил, супер! Вот он и пригодился.

Да, инициализация правильная:
mcp2515-initialization.png
mcp2515-initialization.png (9.74 KiB) Viewed 1070 times

А вот потом шлет он без перерыва ерунду какую-то :) Число 129 все время. Пошел разбираться...
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)
User avatar
STC
Posts: 13843
Joined: 30 Apr 2013, 23:41
Your CAR: AZLK 2140
SECU version: DIY SECU-3
Location: North Korea
Has thanked: 2160 times
Been thanked: 4335 times
Contact:

Re: Требуется CAN-трансмиттер данных SECU-3 в протокол OBD

Post by STC »

Все, нашел баги в коде, через пару дней будет все работать.
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)
Post Reply

Return to “Аппаратное обеспечение”