PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Общение с машиной (http://pccar.ru/forumdisplay.php?f=14)
-   -   Arduino+CANBUS Shield (http://pccar.ru/showthread.php?t=23221)

Disgraced 20.06.2015 22:36

Arduino+CANBUS Shield
 
Вложений: 1
Помогите разобраться.
Имеется автомобиль семейства Mazda.

Имеется Ардуино Про Микро и CAN-BUS Shield.

Между собой соединял согласно даташита про микры и MCP2515 (прозванивал ноги).
Цитата:

Сообщение от lti1 (Сообщение 289078)
CAN-BUS Shield -> Ардуино
MOSI -> MOSI
MISO -> MISO
SCK -> SCK
CS -> к пину 10 ардуины
INT -> к пину 2 ардуины
GND -> GND

К одной из колодок содержащей CAN_H и CAN_L контакты подключился воткнув в колодку пару иголок, получившееся соединение прозвонил - контакт есть. Данные по шине в месте подключения передаются - инфа 100%.

Согласно найденной информации шина в мазде работает на скорости 500 kbps.
Пробовал залить example receive скетч идущий с CANBUS либой.
Эффект нулевой - в мониторе порта вообще ничего.
Судя по внешнему виду шилда - терминирующего резистора на нём нет, но для эксперимента выпаял резистор R2 - не помогло.
Что я делаю не так, и что мне надо сделать, чтобы стало как надо. Вопрос стоит не в расшифровке сообщений идущих по can, а в их простом получении, для начала.

PS диагностические приблуды мне не нужны. Использую ардуину с шилдом, потому как в итоге хочу получить самостоятельное устройство непрерывно передающее по шине определенную информацию.
Если есть альтернативные ардуине варианты (стоящие копейки) то предлагайте.

Farman 21.06.2015 19:57

GND c массой на машине подключаете?

Disgraced 22.06.2015 11:09

Цитата:

Сообщение от Farman (Сообщение 331091)
GND c массой на машине подключаете?

Нет, а надо? Если да, то мне непонятен принцип подключения - в авто сеть 12V, а ардуина с шилдом питаются от 5V с усб. Да и куда подключать - на ардуине только CAN_H и CAN_L.

В соседней теме у людей не работают параллельно подключенные к колодке OBD устройства - может причина в этом? Хотя у меня подключение скорее последовательное.

Lehas 22.06.2015 11:45

Цитата:

Сообщение от Disgraced (Сообщение 331123)
Нет, а надо? Если да, то мне непонятен принцип подключения - в авто сеть 12V, а ардуина с шилдом питаются от 5V с усб. Да и куда подключать - на ардуине только CAN_H и CAN_L.

В соседней теме у людей не работают параллельно подключенные к колодке OBD устройства - может причина в этом? Хотя у меня подключение скорее последовательное.

массу можно к корпусу разъема подключить.
В can шине не бывает последовательного подключения.

Disgraced 23.06.2015 13:20

Цитата:

Сообщение от Lehas (Сообщение 331127)
массу можно к корпусу разъема подключить.
В can шине не бывает последовательного подключения.

да, с последовательным соединением тупанул, но земля нафиг не нужна.
у шилда своя земля, у авто своя.
проблема не в этом. может быть всё таки в параллельном соединении? хотя если все системы в авто итак параллельно висят, то добавление шилда ничего не должно менять.

Lehas 23.06.2015 14:34

а масса шилда, ардуины и компа как нибудь с массой машиной соединены? шилд начинает принимать данные если подключена масса и can_h, на шилде начинает мигать светодиод.

lti1 23.06.2015 16:33

Масса не обязательна. У меня на Octavia Tour и на FF3 без массы всё отлично принимает и отправляет.

Lehas 23.06.2015 16:51

Цитата:

Сообщение от lti1 (Сообщение 331229)
Масса не обязательна. У меня на Octavia Tour и на FF3 без массы всё отлично принимает и отправляет.

по одному проводу в любом случае работать не будет. либо обе кан, либо кан-х и масса

Disgraced 23.06.2015 17:08

Цитата:

Сообщение от Lehas (Сообщение 331231)
по одному проводу в любом случае работать не будет. либо обе кан, либо кан-х и масса

Ну так у меня и подключены оба can.
На шилде очень быстро моргает светодиод RX, почти непрерывно, и немного реже моргает светодиод TX - значит шилда чтото принимает. И либо не передаёт на ардуину, либо делает это неправильно.
Или ошибка в соединении ардуино-шилд или загвоздка в скетче.
Попробовал ради эксперимента в скетче разные скорости шины указывать - результата нет.
В мониторе порта вообще ничего не отображается. Если скорость неправильная так и должно быть? Или должен быть поток ничего не значащих цифр?

Disgraced 24.06.2015 14:12

Итак, шина работает на скорости 500kbps - это 100%.
Прозвонил все контакты на моём безымянном шилде и на ардуине - подключены они между собой верно - 99%
Залил скетч с вот таким содержанием:
Код:

    if(CAN_OK == CAN.begin(CAN_500KBPS))                  // init can bus : baudrate = 500k
    {
        Serial.println("CAN BUS Shield init ok!");
    }
    else
    {
        Serial.println("CAN BUS Shield init fail");
        Serial.println("Init CAN BUS Shield again");
        delay(1000);
    }

В мониторе порта увидел ответ CAN BUS Shield init ok!
Значит дело в скетче для приёма сообщений с can шины.
Нашел вот такую информацию:
Цитата:

Сообщение от brokly;
Аппаратные фильтры настраивают получение драйвером только сообщений с определенными ID, вплоть до отключения приема сообщений. В вашей бибилиотеке это функции :

1
INT8U init_Mask(const INT8U num,const INT32U ulData); /* init Masks */
2
INT8U init_Filt(const INT8U num,const INT8U ext,const INT32U ulData); /* init filters */
Масок всего две.

Фильтров шесть, причем при определенных обстоятельствах первые два фильтра взаимодействуют с первой маской, остальные 4 со второй. Попробуйте проинициализировать фильтры так :
кодрасечатать?
1
CAN.init_Mask(0, 0); // разрешить маскам получать обычные сообщения
2
CAN.init_Filt(0, 0, 0); // разрешить фильтрам получать обычные сообщения
3
CAN.init_Mask(1, 0); // разрешить маскам получать расширенные сообщения
4
CAN.init_Filt(1, 1, 0); // разрешить маскам получать расширенные сообщения

Немного не отдупляю, как проинициализировать фильтры.

Gorynch 24.06.2015 14:58

покажи весь скетч и либу для шилда
При передачи данных шилду (по SPI) нет аппаратного подтверждения принятых данных, поэтому нужно проверять программно, например, прочитать один из регистров cnf и сравнить с тем, что туда было записано. Если совпадает, значит соединение прошло успешно. Не во всех либах это сделано.
Ещё момент, у тебя перемычка J1 (рядом с контактом Тх) открыта, а это значит, что питание для платы 3.3В, а не 5В. По крайней мере, для настоящего Pro Micro. Проверь напряжение на Vcc.
И чем питается шилд?
Судя по фотке, кварц на шилде 8Мгц, это влияет на значения регистров CNF, с помощью которых устанавливается скорость CAN шины в шилде. Чаще всего используется 16МГц, поэтому в либе значения могут быть рассчитаны для 16, а не для 8

Disgraced 24.06.2015 16:17

Gorynch
либа отсюда https://github.com/Seeed-Studio/CAN_BUS_Shield
напряжение на vcc 4.64 - на китайских про микро перемычка открыта
как я понимаю, шилд питается от ардуины, которая в свою очередь от usb порта ноутбука
шилд соединял с ардуиной по инструкции от iti1 у которого всё работает (правда с другим шилдом)
скетчи пробовал разные вот один и зних:
Код:

// demo: CAN-BUS Shield, receive data with check mode
// send data coming to fast, such as less than 10ms, you can use this way
// loovee, 2014-6-13


#include
#include "mcp_can.h"


// the cs pin of the version after v1.1 is default to D9
// v0.9b and v1.0 is default D10
const int SPI_CS_PIN = 10;

MCP_CAN CAN(SPI_CS_PIN);                                    // Set CS pin

void setup()
{
    Serial.begin(9600);

START_INIT:

    if(CAN_OK == CAN.begin(CAN_500KBPS))                  // init can bus : baudrate = 500k
    {
        Serial.println("CAN BUS Shield init ok!");
    }
    else
    {
        Serial.println("CAN BUS Shield init fail");
        Serial.println("Init CAN BUS Shield again");
        delay(100);
        goto START_INIT;
    }
}


void loop()
{
    unsigned char len = 0;
    unsigned char buf[8];

    if(CAN_MSGAVAIL == CAN.checkReceive())            // check if data coming
    {
        CAN.readMsgBuf(&len, buf);    // read data,  len: data length, buf: data buf

        unsigned char canId = CAN.getCanId();
       
        Serial.println("-----------------------------");
        Serial.println("get data from ID: ");
        Serial.println(canId);

        for(int i = 0; i         {
            Serial.print(buf[i]);
            Serial.print("\t");
        }
        Serial.println();
    }
}

/*********************************************************************************************************
  END FILE
*********************************************************************************************************/

то что в предыдущем посте я писал - фигня


по факту, на данный момент - шилда/ардуино подключены к проводке авто и как только на них поступает питание - шилда начинает безостановки что-то принимать (светодиод rx мерцает, почти непрерывно светится) но ардуино нихрена не получает от шилды - даже сообщение из START_INIT (не появляется в мониторе порта ни при каких условиях, и на ардуине светодиод rx не моргает вообще)

Gorynch 24.06.2015 16:56

ПрОвода питания от ардуины к шилду на картинке нет. Есть земля и данные
В данном скетче для проверки наличия нового сообщения идёт обращения к шилду через SPI, по идее для этого нужно использовать прерывание от шилда по пину 2 (в твоём случае), это будет быстрее
Увеличь скорость rs232 до 115200 (и в скетче, и на компе)
Добавь обработку прихода данных от компа: пришла "1" (т.е. ты в терминале нажал 1 и Enter) - инициализировать шилд, пришла "2" - запустить приём данных от шилда
Светодиод rx на ардуине связан с rs232, а не с шилдом. Когда пойдут данные должен моргать Tx
Самое главное - в скетче значения регистров CNF рассчитаны для 16МГц. Нужно пересчитывать для 8, или менять кварц

lti1 24.06.2015 17:22

Disgraced, попробуйте этот скетч, я им сканировал FF3, только скорость CAN поменяйте:
PHP код:

#include <mcp_can.h>
#include <SPI.h>

long unsigned int rxId;
unsigned char len 0;
unsigned char rxBuf[8];

MCP_CAN CAN0(10);

void setup()
{
  
Serial.begin(115200);
  
CAN0.begin(CAN_125KBPS);
  
pinMode(2INPUT); 
}

void loop()
{
    if(!
digitalRead(2))                         
    {
      
CAN0.readMsgBuf(&lenrxBuf);              
      
rxId CAN0.getCanId();                    
//      if (rxId == 0x3A) //фильтр по ID, при необходимости раскомментировать
//      {  //фильтр по ID, при необходимости раскомментировать
      
Serial.println(); 
      
Serial.print("ID: ");
      
Serial.print(rxIdHEX);
      
Serial.print("  Data: ");
      for(
int i 0i<leni++)
      {
      if(
rxBuf[i] < 0x10Serial.print("0");
      
Serial.print(rxBuf[i], HEX);
      
Serial.print(" ");
      }
//     } //фильтр по ID, при необходимости раскомментировать
   
}


И питания шилда действительно на фото нет. Соедините +5v шилда и микро.

Disgraced 25.06.2015 15:44

Итак, по порядку: соединил разъем шилда 5V и разъем VCC ардуины - никакого эффекта.
Скетч в посте от lti1 не дал результата, в мониторе порта по прежнему тишина.

Gorynch, по вашей подсказке поменял кварц - впаял на 16mhz.
Что получилось - скетч из моего поста, шилда запитана, кварц на 16mhz - в мониторе порта поток сообщений:
Код:

CAN BUS Shield init fail
Init CAN BUS Shield again

А вот что это может значить - не пойму.
Т.е. до этого не было никаких сообщений, а теперь сообщает что всё плохо.
По поводу
Цитата:

Сообщение от Gorynch (Сообщение 331310)
Добавь обработку прихода данных от компа: пришла "1" (т.е. ты в терминале нажал 1 и Enter) - инициализировать шилд, пришла "2" - запустить приём данных от шилда

можете помочь со скетчем?

Gorynch 25.06.2015 16:38

в ардуино не силён, но что-то вроде
PHP код:

void loop() {
    if (
Serial.available() > 0) {
        
incomingByte Serial.read();
        if (
incomingByte == 1) {
            do 
somthing ....
        }
        if (
incomingByte == 2) {
            do 
somthing else ....
        }
    }


можно использовать switch, но синтаксиса не знаю для ардуины

в либе на mcp2515 добавь своих отладочных сообщений в терминал, чтобы понять где именно затык

T_r_D 03.07.2015 19:15

У меня таже проблема!
На шилде светодиод RX аж светится, а на Arduino данные не идут.
Кварц тоже кстати 8MhZ.

Gorynch Спасибо что направил в нужную сторону!

Такс, Выдернул отсюда https://github.com/Flori1989/MCP2515_lib
с поддержкой 8MhZ.

Теперь вопрос как установить 8MhZ в скетче.
Вот так нужно? Или она сама определит?
if(CAN_OK == CAN.begin(CAN_500KBPS,MCP_8MHz))

Вот так данные пошли
Цитата:

// demo: CAN-BUS Shield, receive data with interrupt mode
// when in interrupt mode, the data coming can't be too fast, must >20ms, or else you can use check mode
// loovee, 2014-6-13

#include
#include "mcp_can.h"

// the cs pin of the version after v1.1 is default to D9
// v0.9b and v1.0 is default D10
const int SPI_CS_PIN = 10;

MCP_CAN CAN(SPI_CS_PIN); // Set CS pin


unsigned char flagRecv = 0;
unsigned char len = 0;
unsigned char buf[8];
char str[20];

void setup()
{
Serial.begin(115200);
START_INIT:

if(CAN_OK == CAN.begin(CAN_500KBPS,MCP_8MHz)) // init can bus : baudrate = 500k
{
Serial.println("CAN BUS Shield init ok!");
}
else
{
Serial.println("CAN BUS Shield init fail");
Serial.println("Init CAN BUS Shield again");
delay(100);
goto START_INIT;
}

attachInterrupt(0, MCP2515_ISR, FALLING); // start interrupt
}

void MCP2515_ISR()
{
flagRecv = 1;
}

void loop()
{
if(flagRecv)
{ // check if get data

flagRecv = 0; // clear flag

// iterate over all pending messages
// If either the bus is saturated or the MCU is busy,
// both RX buffers may be in use and reading a single
// message does not clear the IRQ conditon.
while (CAN_MSGAVAIL == CAN.checkReceive())
{
// read data, len: data length, buf: data buf
CAN.readMsgBuf(&len, buf);

// print the data
for(int i = 0; i {
Serial.print(buf[i]);Serial.print("\t");
}
Serial.println();
}
}
}
А теперь ответте мне кто нить на вопрос!
На диагностической колодке CAN-Comfort нету чтоль?
Я невижу нажатий кнопок на руле в упор!

Disgraced 04.07.2015 17:47

T_r_D, скетч который ты выложил - у тебя работает? у тебя кварц 8MHz? А шилд, как у меня на фото?

Цитата:

Сообщение от T_r_D (Сообщение 331948)
На диагностической колодке CAN-Comfort нету чтоль?
Я невижу нажатий кнопок на руле в упор!

Комфорт если и выведен в диагностическую колодку, то на другие контакты. Проще к контактам идущим на магнитолу подцепить для проверки.

T_r_D 04.07.2015 23:04

Disgraced у меня шилд с кнопками вообще.
Но это не важно! Кварц у меня 8мегагерц так что качай по ссылке библиотеку и заливай мой скетч.
И да, у меня после этого заработало, но только я увидел то что мне не нужно :)

На магнитоле FT CAN так что надо шилд допилить. Микруху уже заказал, через пару недель приедет.

Disgraced 05.07.2015 12:58

Цитата:

Сообщение от T_r_D (Сообщение 331997)
Disgraced у меня шилд с кнопками вообще.
Но это не важно! Кварц у меня 8мегагерц так что качай по ссылке библиотеку и заливай мой скетч.

Не помогло. В отличии от предыдущих скетчей - в этот раз постоянно горел светодиод INT на шилде, помимо рх тх, но в мониторе порта пустота.
Я уже в отчаянии.

(vS) 05.07.2015 14:42

я знаю с кем тебе поговорить https://www.drive2.ru/b/1567416/
))

T_r_D 05.07.2015 22:03

Disgraced
5V========5V
GND======GND
D3========D3 (INT)
D9========D9
D10=======PMW10
D11=======PMW11
D12=======12
D13=======13

Так подключи!
И кварц 8МгЦ верни на место.

А шилд у тебя такой же как и у меня.

Отпиши результат.

У тя походу каких-то соединений не хватает.
Чем так мучится купил бы уже UNO :) Не так дорого это стоит.

Disgraced 19.07.2015 14:47

Цитата:

Сообщение от T_r_D (Сообщение 332048)
Disgraced
5V========5V
GND======GND
D3========D3 (INT)
D9========D9
D10=======PMW10
D11=======PMW11
D12=======12
D13=======13

Так подключи!
И кварц 8МгЦ верни на место.

А шилд у тебя такой же как и у меня.

Отпиши результат.

У тя походу каких-то соединений не хватает.
Чем так мучится купил бы уже UNO :) Не так дорого это стоит.

У тебя в списке одно из соединений по мойму лишнее. Вообще, как я понял, для соединения шилды и арудины нужно соединить питание (VCC), землю(GND), SPI интерфейс(MISO, MOSI, SCK, CS) и один цифровой контакт(D10). Еще INT. D9 используется вместо D10 на более свежих версиях шилдов для Leonardo.
Но в любос случае пока никаких результатов.
УНО бы купил, если бы мог быть уверен, что это поможет.
В конечном итоге, я бы хотел получить готовое устройство на одной плате - т.е. микрухи от шилда и ардуины спаяные вместе, без лишних компонентов и контактов.

Bersenev 19.07.2015 15:36

Цитата:

Сообщение от Disgraced (Сообщение 333149)
В конечном итоге, я бы хотел получить готовое устройство на одной плате - т.е. микрухи от шилда и ардуины спаяные вместе, без лишних компонентов и контактов.

Типа такого? Читал с помощью него легковые Opel, Volkswagen, Hyundai, Ford, Mercedes, грузовики MAN, Isuzu, Volvo, FREIGHTLINER, трактора John Deere и ещё много чего, всё уже и не припомню


http://content.foto.my.mail.ru/mail/...leon/i-618.jpg

http://content.foto.my.mail.ru/mail/...leon/i-619.jpg

Disgraced 01.08.2015 23:50

Достал Ардуино Уно, испробовал кучу разных библиотек, результат нулевой.
По прежнему не хочет инициализировать шину.
Похоже проблема в шилде.
Bersenev не могли бы вы дать схему по которой собирали свою щилду?

xmetal 02.08.2015 01:47

Цитата:

Сообщение от Gorynch (Сообщение 331310)
ПрОвода питания от ардуины к шилду на картинке нет. Есть земля и данные

У меня была такая ситуация. В результате погорела нога MISO у Ардуино, а также mcp2515 похоже тоже, так как с другой ардуиной она уже не работала. С другим кан модулем все нормально стало. Disgraced, попробуй проверить SPI ноги у твоей Про Мини.

olegik_ah 05.08.2015 05:17

Цитата:

Сообщение от Disgraced (Сообщение 334295)
Достал Ардуино Уно, испробовал кучу разных библиотек, результат нулевой.
По прежнему не хочет инициализировать шину.
Похоже проблема в шилде.
Bersenev не могли бы вы дать схему по которой собирали свою щилду?

Привет!
Тоже вмешаюсь в разговор. Не так давно мутил проектик для своей ауди. Тоже весь мозг сломал по поводу can сниффилки. Купил шилд и ардуину - не мог подружить. Что только не делал. И кварц менял и трансивер... После 2 недель пыток пришла мысль о том, что шилд мертв. Шилд, кстати, был такой-же, как у тебя... Покупал я его в России. Было безумно жалко денег на новый шилд. Порылся на алиекспрессе и нашел дешманские варики. И купил сразу по 5 штук:)
Ардуина нано http://ru.aliexpress.com/item/Nano-3...659109175.html 151руб штучка
CAN шилд http://ru.aliexpress.com/item/5pcs-l...259606078.html 200рублей штучка.

С этим всем заработало почти сразу... Вот мои комменты:
0. Если ни с какими либами шилд не хочет инициализироваться - либо мертв шилд, либо не корректное подключение...
1. Перед включением еще раз проверяем провода. В моем случае ардуина питалась от USB, а шилд от ардуины. Соединяем MOSI, MISO, SCK, +5 и землю. Любой не задействованный DigitalPin в качестве CS для модуля (его же и в скетче указываем). INT по началу можно вообще не использовать.
2. Для общения с машиной нужно только 2 провода CanH и CanL. Общая земля с машиной не нужна. Скорее всего от общей земли с машиной у меня умер трансивер на первом шилде. Если попутать H и L - ничего страшного не будет. Шилд инициализнется, но данных не будет.
3. Важно выбрать нужную либу - если кварц на 8мгц - нужна соответствующая либа. Почти все либы в нете на 16мгц. Просто замена кварца на 16мгц не приносила результатов. Если кварц не совпадает с либой, то инициализация все равно проходит успешно... только данных нет никаких... или в шину начинает что-то срать - аж блоки теряются.
4. В некоторых либах фильтры изначально настроены так, чтобы ничего не принимать (нужно глядеть код либы). В этом случае инициализируем их, чтобы принимать все:
CAN.init_Mask(0, 0);
CAN.init_Filt(0, 0, 0);
CAN.init_Mask(1, 0);
CAN.init_Filt(1, 1, 0);
5. И самое важное. В некоторых автомобилях (к примеру у меня в AUDI) на диагностическом разъеме (ODB) нет вообще ничего и работает он в режиме запрос-ответ. Т.е. если у диаг шины ничего не спросить - то будет тишина. Поэтому нужно вкурить место подключения. У меня 4 различные шины (моторная, комфорт, инфотеймент и диагностическая). Нужно понимать, что не во всех шинах есть вся информация... И скорости у шин могут быть разные. У меня часть 100, часть 500...

Если интересно, то могу прислать фотку с подключением, либу и скетч...

olegik_ah 05.08.2015 05:25

А, забыл добавить про терминирующий резюк.
Если подключаться ВМЕСТО устройства или в диаг разъем - то терминирующий резюк нужен. В общем случае 120 ом. Но, судя по спецификации, у меня в ауди нужно 60 ом.
Если подключаться ВМЕСТЕ (параллельно) с устройством - то терминатор не нужен.

И еще одно. Проводки CAN шины должны быть витой парой. Я по началу подцепил 2 проводка и не скрутил их. С не скрученными проводками длиною 30см у меня портились данные...

xmetal 05.08.2015 11:34

olegik_ah, тоже использую нано и почти такой же кан-модуль :good: Все думаю как их между собой закрепить, сейчас просто болтаются на проводках, как решил этот вопрос?

alexfox 05.08.2015 14:42

У меня что-то китайский NANO не пошел...драйвера под Win не ставятся, всякие пробовал - на видит его комп. Кто какие подсовывал драйвера?
ПроМикро (Леонардо) нормально определяется, но с ним точно такая же ситуация как автора поста - нет инициализации с шилдом.
MCP2515 + TJA1050 (с кварцем на 8МГц) и пробовал со вторым MCP2515 + 2551 с кварцем на 16МГц - глухо...

xmetal 05.08.2015 15:40

Цитата:

Сообщение от alexfox (Сообщение 334553)
У меня что-то китайский NANO не пошел...драйвера под Win не ставятся, всякие пробовал - на видит его комп. Кто какие подсовывал драйвера?

Если микруха USB-UART CH340g, то можно тут взять.

olegik_ah 05.08.2015 17:40

Цитата:

Сообщение от xmetal (Сообщение 334511)
olegik_ah, тоже использую нано и почти такой же кан-модуль :good: Все думаю как их между собой закрепить, сейчас просто болтаются на проводках, как решил этот вопрос?

Позже буду мутить свою плату... А пока ардуина, CAN модуль, DC-DC конвертер и bluetooth модуль ужились с помощью термоклеевого пистолета и пары саморезов вот в такой http://ru.aliexpress.com/item/3pcs-l...267314003.html коробочке:)

Внутри выглядит не очень... Но снаружи вполне достойно

olegik_ah 05.08.2015 17:52

Цитата:

Сообщение от alexfox (Сообщение 334553)
У меня что-то китайский NANO не пошел...драйвера под Win не ставятся, всякие пробовал - на видит его комп. Кто какие подсовывал драйвера?

Ну это зря. У меня кучка китайских ардуин всяких... на части из них китайский (не оригинальный) чип FT232R. Если ставить последние драйвера с сайта производителя http://www.ftdichip.com/Drivers/VCP.htm, то они определяют что чип - подделка и сносят с него PID. Короче, нужно изначально ставить дрова версии 2.8.14. Но, если PID уже снесен - то курим здесь http://geektimes.ru/post/258848/ - в принципе ничего сложного...

olegik_ah 05.08.2015 17:57

Цитата:

Сообщение от xmetal (Сообщение 334561)
Если микруха USB-UART CH340g, то можно тут взять.

+1 Тока драйвер без цифровой подписи к этому чипу...
Подробнее http://arduino-project.net/driver-ch340g/

olegik_ah 05.08.2015 18:17

Цитата:

Сообщение от alexfox (Сообщение 334553)
MCP2515 + TJA1050 (с кварцем на 8МГц)

Пока я пытался завести свой первый шилд - выяснил, что TJA1050 может не подойти для всех авто. Проверить просто - нужно подать питание на шилд (ардуину можно вообще не подключать) и ткнуться осцилом в землю и в TJA1050 в 4 ногу. Будет что на осциле? Если нет - то либо TJA1050 мертв, либо он не подходит.

По итогу для моей тачки (как выяснилось потом) TJA вполне подходит... Но я то этого не знал еще. Взял какой-то блок со свой машины и разобрал его с целью посмотреть что VAG ставит в качестве трансивера - выяснил, что используется MCP2551 (не путать с контроллером MCP2515). MCP2551 1 в 1 по распиновке подходит вместо TJA1050... Но это все имеет смысл ТОЛЬКО если инициализация проходит успешно, но нет данных!!!

Если инициализации нет - то еще раз повторюсь - либо не так подключен шилд к ардуине, либо контроллер MCP2515 мертв.

И про терминатор не забываем тоже. Особенно на быстрых шинах. Если подключаемся куда-то в шину, то он скорее всего не нужен. Если вместо какого-то устройства или в диаг разъем - то точно нужен. Но пляски с терминатором тоже имеют смысл, если инициализация есть, но данных нет.

xmetal 05.08.2015 18:28

olegik_ah, стабилизатор ардуиновский разве не потянет блютус и КАН, а то может без DC-DC обойтись можно? У себя хочу немного напругу сбить 4 диодами, чтобы не выше 12 в было при работающем генераторе. Преобразователь городить не хочется.
[оффтоп] Какое ГУ в Ауди, не как у остальных VAG?

alexfox 05.08.2015 18:31

Инициализация шилда прошла, после того как сменил ПроМикро на Нано:
CAN BUS Shield init ok!
Больше в мониторе ничего нет.
На 4-пине MCP2551 есть пачки импульсов во время нажатия кнопок, если не нажимать, то тишина...

olegik_ah 05.08.2015 19:02

Цитата:

Сообщение от xmetal (Сообщение 334594)
olegik_ah, стабилизатор ардуиновский разве не потянет блютус и КАН, а то может без DC-DC обойтись можно? У себя хочу немного напругу сбить 4 диодами, чтобы не выше 12 в было при работающем генераторе. Преобразователь городить не хочется.
[оффтоп] Какое ГУ в Ауди, не как у остальных VAG?

Возможно... Но мне для BT нужно 3.3 Преобразователь для этого. Ардуина питается от сети машины. Судя по спецификации - должна выдержать 17вольт постоянно. Поэтому в диодах смысла не вижу.
Что такое ГУ?

olegik_ah 05.08.2015 19:13

Вложений: 2
Цитата:

Сообщение от alexfox (Сообщение 334595)
Инициализация шилда прошла, после того как сменил ПроМикро на Нано:
CAN BUS Shield init ok!
Больше в мониторе ничего нет.
На 4-пине MCP2551 есть пачки импульсов во время нажатия кнопок, если не нажимать, то тишина...

Куда подключаешься? Скорость шины точно та, что нужна?

В аттаче моя либа и скетч. Либа не типовая - взял какую-то с гитхаба и ее под себя немного допилил.

Обрати внимание на строчку CAN.begin(CAN_100KBPS, MCP_8MHz)
Первый параметр - скорость шины, второй - тип кварца (MCP_16MHz или MCP_8MHz) на шилде.

Либа и скетч 100% рабочие - проверено на разных тачках, на разных шинах, на разных кварцах...

xmetal 05.08.2015 19:15

Цитата:

Сообщение от olegik_ah (Сообщение 334597)
Возможно... Но мне для BT нужно 3.3 Преобразователь для этого. Ардуина питается от сети машины. Судя по спецификации - должна выдержать 17вольт постоянно. Поэтому в диодах смысла не вижу.
Что такое ГУ?

Помоему максимум 15, надо еще раз взгялуть в даташит. В китайских нано стаб стоит другой, попроще, нежели в оригинале. Да и вообще хочется чтобы меньше мощи рассеивалось на стабе, чтобы не грелось.
ГУ - головное устройство, магнитолка.


Часовой пояс GMT +4, время: 18:53.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot