81 lines
3.9 KiB
Markdown
81 lines
3.9 KiB
Markdown
# AndruinoXTrail — Nissan X-Trail T31
|
||
|
||
Складывание зеркал при закрытии машины. Arduino + MCP2515, шина CAN COMM 500 кбит/с.
|
||
|
||
## Кузов T31
|
||
|
||
T31 (2007–2014, в том числе 2014 рестайл) — та же CAN-семья, что Qashqai J10: одна основная шина **CAN COMM**, 500 кбит/с, 11-битные ID. Закрытие дверей BCM публикует в циклических кадрах. Команды «сложить зеркала» на этой шине нет: штатная кнопка в двери меняет полярность моторов.
|
||
|
||
Схема:
|
||
|
||
1. Слушаем **закрытие** по CAN (`0x60D` / `0x358`).
|
||
2. Складываем зеркала **реле**, параллельно штатной кнопке.
|
||
3. Replay кадра кнопки по CAN на T31 почти никогда не нужен: кнопки на OBD нет.
|
||
|
||
Колодка кнопки складывания у дорестайла и рестайла T31 разная. Реле ставить параллельно **вашей** кнопке.
|
||
|
||
## Кадры CAN COMM
|
||
|
||
| ID | Назначение | Полезные байты |
|
||
|---|---|---|
|
||
| `0x60D` | BCM: двери, зажигание, **замок** | `data[2] & 0x18` — закрыто. `data[1] & 0x0C`: `00` OFF, `04` ACC, `0C` ON, `08` START |
|
||
| `0x358` | Детализация замка | `data[5]` bit0 водитель, bit1 остальные двери |
|
||
| `0x745` / `0x765` | Диагностика BCM | Не используется |
|
||
|
||
Прошивка **не** шлёт команды закрытия/открытия дверей.
|
||
|
||
## Куда врезаться
|
||
|
||
- OBD: pin 6 CAN-H, pin 14 CAN-L
|
||
- или BCM за бардачком, зелёный 40-пин: **pin 20** CAN-H (синий), **pin 40** CAN-L (розовый)
|
||
|
||
На MCP2515 **снять** перемычку 120 Ом.
|
||
|
||
## Железо
|
||
|
||
- Arduino Nano или Uno
|
||
- MCP2515 (часто кварц **8 МГц**)
|
||
- Два реле 5 В на контакты штатной кнопки складывания
|
||
|
||
```
|
||
Arduino MCP2515
|
||
D10 -> CS
|
||
D11 -> SI (MOSI)
|
||
D12 -> SO (MISO)
|
||
D13 -> SCK
|
||
D2 -> INT
|
||
5V/GND -> VCC/GND
|
||
|
||
MCP2515 CAN-H -> OBD 6 (или BCM pin 20)
|
||
MCP2515 CAN-L -> OBD 14 (или BCM pin 40)
|
||
общий GND с кузовом
|
||
|
||
D7 -> реле СЛОЖИТЬ
|
||
D8 -> реле РАЗЛОЖИТЬ
|
||
```
|
||
|
||
Питание Arduino — OBD pin 16 (+12 В) через стабилизатор 5 В, либо постоянная 12 В с предохранителем.
|
||
|
||
Реле **параллельно** штатной кнопке, не вместо неё. Моторы зеркал с Arduino не питать.
|
||
|
||
## Прошивки
|
||
|
||
Библиотека: [coryjfowler/MCP_CAN_lib](https://github.com/coryjfowler/MCP_CAN_lib)
|
||
|
||
1. `firmware/CanSniffer/CanSniffer.ino` — Serial 115200. Закрыли машину → `60D lock=1`, открыли → `lock=0`. Клавиша `f` + кнопка зеркал: если `DIFF: (none)`, оставляйте реле.
|
||
2. `firmware/XTrailMirrors/XTrailMirrors.ino` — в `config.h` по умолчанию `FOLD_VIA_RELAY`.
|
||
|
||
Если кристалл MCP2515 16 МГц, прошивка сама пробует второй вариант.
|
||
|
||
## Поведение
|
||
|
||
- Старт: текущий замок запоминается, зеркала не трогаем.
|
||
- Замок 0→1 и зажигание OFF → складывание ~8 с.
|
||
- Замок 1→0 → раскладывание ~8 с.
|
||
- При ON/START автоматика молчит.
|
||
- Пауза 12 с между циклами.
|
||
|
||
## Безопасность
|
||
|
||
Подключайтесь на заглушенном авто, с предохранителем. Сначала только сниффер. Реле не держать дольше ~8–10 с.
|