Arduino UNO и MCP2515 CAN

ak62
Offline
Зарегистрирован: 03.01.2019

И так, перепроверил схему соединения ардуино + МСР. Все один в один. В первой ардуино остался скетч от канхакеровской библиотеки, в вторую залил Ваш. В программе Канхакер изменил скорость на 500. Результат 0.

ak62
Offline
Зарегистрирован: 03.01.2019

MaksVV пишет:

Для проверки 2515, просто заливаете примеры из одной библы (на одной read на другой write), естественно скорости должны быть одинаковые. Не забываем также про джампер терминатора на одной из mcp2515 (когда подключаемся между собой, при подключении к автомобилю резистор не нужен). 

Проверку именно так и делаю. К авто подключаю без перемычки. Шина на моем авто есть 500 и есть 125. 

П.С. Сейчас еще поменяю местами связки "получатель" и "отправитель", хотя, кажется уже это делал и не раз.

MaksVV
Offline
Зарегистрирован: 06.08.2015

всмысле при проверке ничего не работает? 

ak62
Offline
Зарегистрирован: 03.01.2019

MaksVV пишет:

всмысле при проверке ничего не работает? 

Если залить скетчи read write из библиотеки по ссылке из первого поста, то все отлично. Ардуино видят друг друга по кан модулям. Один отправляет, другой принимает. А вот с программой канхакер я никак не могу  подружить ардуино+мср.

ak62
Offline
Зарегистрирован: 03.01.2019

Вот так они общаются сейчас с помощью библиотеки и скетча из первого поста. И это все, что есть сейчас в библиотеке.

MaksVV
Offline
Зарегистрирован: 06.08.2015

библиотека для кан хакера точно из сообщения #3?  - потому что только она настроена на 8мгц. 

ak62
Offline
Зарегистрирован: 03.01.2019

MaksVV пишет:

библиотека для кан хакера точно из сообщения #3?  - потому что только она настроена на 8мгц. 

Библиотеку для 8МГц качал по Вашей ссылке из http://arduino.ru/forum/proekty/gsm-ustroistvo-upravleniya-kotlami-webasto-i-ne-tolko?page=1#comment-323222 Но в архиве их вагон. Оставил только arduino-canhacker-master и arduino-mcp2515-master и в приемник (сом5) груже скетч из \Documents\Arduino\libraries\arduino-canhacker-master\examples\usb_cdc

ak62
Offline
Зарегистрирован: 03.01.2019

Вот сейчас в передатчик залит такой скетч:

#include <SPI.h>
#include <mcp2515.h>

struct can_frame canMsg1;
struct can_frame canMsg2;
MCP2515 mcp2515(10);


void setup() {

  canMsg1.can_id  = 0x0F6;
  canMsg1.can_dlc = 8;
  canMsg1.data[0] = 0x8E;
  canMsg1.data[1] = 0x87;
  canMsg1.data[2] = 0x32;
  canMsg1.data[3] = 0xFA;
  canMsg1.data[4] = 0x26;
  canMsg1.data[5] = 0x8E;
  canMsg1.data[6] = 0xBE;
  canMsg1.data[7] = 0x86;

  canMsg2.can_id  = 0x036;
  canMsg2.can_dlc = 8;
  canMsg2.data[0] = 0x0E;
  canMsg2.data[1] = 0x00;
  canMsg2.data[2] = 0x00;
  canMsg2.data[3] = 0x08;
  canMsg2.data[4] = 0x01;
  canMsg2.data[5] = 0x00;
  canMsg2.data[6] = 0x00;
  canMsg2.data[7] = 0xA0;
  
  while (!Serial);
  Serial.begin(115200);
  SPI.begin();
  
  mcp2515.reset();
  mcp2515.setBitrate(CAN_125KBPS);
  mcp2515.setNormalMode();
  
  Serial.println("Example: Write to CAN");
}

void loop() {
  
  mcp2515.sendMessage(&canMsg1);
  mcp2515.sendMessage(&canMsg2);

  Serial.println("Messages sent");
  
  delay(100);

}

А в приемник :

#include <can.h>
#include <mcp2515.h>

#include <CanHacker.h>
#include <CanHackerLineReader.h>
#include <lib.h>

#include <SPI.h>

const int SPI_CS_PIN = 10;
const int INT_PIN = 2;

CanHackerLineReader *lineReader = NULL;
CanHacker *canHacker = NULL;

void setup() {
    Serial.begin(115200);
    SPI.begin();
    
    canHacker = new CanHacker(&Serial, NULL, SPI_CS_PIN);
    lineReader = new CanHackerLineReader(canHacker);
    
    pinMode(INT_PIN, INPUT);
}

void loop() {
    if (digitalRead(INT_PIN) == LOW) {
        canHacker->processInterrupt();
    }

    // uncomment that lines for Leonardo, Pro Micro or Esplora
    // if (Serial.available()) {
    //   lineReader->process();    
    // }
}

// serialEvent handler not supported by Leonardo, Pro Micro and Esplora
void serialEvent() {
    lineReader->process();
}

Так настроен канхакер. И в ответ тишина.

MaksVV
Offline
Зарегистрирован: 06.08.2015

а вы слева вверху кнопочку подключить (молиния) нажимаете? )) ну это я так...

MaksVV
Offline
Зарегистрирован: 06.08.2015

а я понял в чем ваш косяк , нужно в передатчике тоже в скетче 8 мгц указывать.

#include <SPI.h>
#include <mcp2515.h>

struct can_frame canMsg1;
struct can_frame canMsg2;
MCP2515 mcp2515(10);


void setup() {

  canMsg1.can_id  = 0x0F6;
  canMsg1.can_dlc = 8;
  canMsg1.data[0] = 0x8E;
  canMsg1.data[1] = 0x87;
  canMsg1.data[2] = 0x32;
  canMsg1.data[3] = 0xFA;
  canMsg1.data[4] = 0x26;
  canMsg1.data[5] = 0x8E;
  canMsg1.data[6] = 0xBE;
  canMsg1.data[7] = 0x86;

  canMsg2.can_id  = 0x036;
  canMsg2.can_dlc = 8;
  canMsg2.data[0] = 0x0E;
  canMsg2.data[1] = 0x00;
  canMsg2.data[2] = 0x00;
  canMsg2.data[3] = 0x08;
  canMsg2.data[4] = 0x01;
  canMsg2.data[5] = 0x00;
  canMsg2.data[6] = 0x00;
  canMsg2.data[7] = 0xA0;
  
  while (!Serial);
  Serial.begin(115200);
  SPI.begin();
  
  mcp2515.reset();
  mcp2515.setBitrate(CAN_125KBPS, MCP_8MHZ);
  mcp2515.setNormalMode();
  
  Serial.println("Example: Write to CAN");
}

void loop() {
  
  mcp2515.sendMessage(&canMsg1);
  mcp2515.sendMessage(&canMsg2);

  Serial.println("Messages sent");
  
  delay(100);

}

 

ak62
Offline
Зарегистрирован: 03.01.2019

ak62
Offline
Зарегистрирован: 03.01.2019

Сейчас исправлю. Отпишусь.

ak62
Offline
Зарегистрирован: 03.01.2019

Зашевелилось. Спасибо Вам огромное. Второй день бьюсь. Уже голова кругом идет от обилия смененных библиотек. Может быть подскажете еще начинающему, как отправить в шину вот такое сообщение? У меня есть диагностический прибор, и когда я с него отсылаю команду, то в его логе вижу вот таое: 00,0F, FF, FE,8F,43,B1,00,11,01,01,00,49,06,00,00,00,00,00,00, Путем рытя по форумумам выяснил, что ID 0x000FFFFE отсылаемые данные это 0x8F 0x43 0xB1 0x00 0x11 0x01 0x01 0x00 и 0x49 0x06 0x00 0x00 0x00 0x00 0x00 0x00 Вопрос: как передать этот ID? Спасибо еще раз.

ak62
Offline
Зарегистрирован: 03.01.2019

ak62 пишет:

Вот так они общаются сейчас с помощью библиотеки и скетча из первого поста. И это все, что есть сейчас в библиотеке.

Но, вот все равно, я не понял, почему не добавляя в скетчах MCP_8MHZ ардуины между собой весело общались???

MaksVV
Offline
Зарегистрирован: 06.08.2015

Дак они оба потому что на удвоенной (ну или половинной) частоте общались и все работало. Я всегда для проверки ставлю скорость 250кбит. Если что то не робит, проверяю у оппонента и на 500 и на 125. Если на этих скоростях взлетело, где то накосячил с установкой 8мгц

ak62
Offline
Зарегистрирован: 03.01.2019

а что посоветуете по предыдущему вопросу об ID?

MaksVV
Offline
Зарегистрирован: 06.08.2015

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

MaksVV
Offline
Зарегистрирован: 06.08.2015

А вообще это нормальный 29битный (расширенный) ID читайте выше в теме и гуглите. 

MaksVV
Offline
Зарегистрирован: 06.08.2015

ak62 пишет:
Путем рытя по форумумам выяснил, что ID 0x000FFFFE отсылаемые данные это 0x8F 0x43 0xB1 0x00 0x11 0x01 0x01 0x00 и 0x49 0x06 0x00 0x00 0x00 0x00 0x00 0x00 Вопрос: как передать этот ID? Спасибо еще раз.

я не знаю на какуб скорость шины  и с какой периодичностью. Вот пример на шину 125кбит/с. Раз в секунду шлёт пару этих мессаг: 

#include <SPI.h>
#include <mcp2515.h>

struct can_frame canMsg1;
struct can_frame canMsg2;
MCP2515 mcp2515(10);


void setup() {

  canMsg1.can_id  = 0x800FFFFE;
  canMsg1.can_dlc = 8;
  canMsg1.data[0] = 0x8F;
  canMsg1.data[1] = 0x43;
  canMsg1.data[2] = 0xB1;
  canMsg1.data[3] = 0x00;
  canMsg1.data[4] = 0x11;
  canMsg1.data[5] = 0x01;
  canMsg1.data[6] = 0x01;
  canMsg1.data[7] = 0x00;


  canMsg2.can_id  = 0x800FFFFE;
  canMsg2.can_dlc = 8;
  canMsg2.data[0] = 0x49;
  canMsg2.data[1] = 0x06;
  canMsg2.data[2] = 0x00;
  canMsg2.data[3] = 0x00;
  canMsg2.data[4] = 0x00;
  canMsg2.data[5] = 0x00;
  canMsg2.data[6] = 0x00;
  canMsg2.data[7] = 0x00;
  
  while (!Serial);
  Serial.begin(115200);
  SPI.begin();
  
  mcp2515.reset();
  mcp2515.setBitrate(CAN_125KBPS, MCP_8MHZ);
  mcp2515.setNormalMode();
  
 }

void loop() {
  
  mcp2515.sendMessage(&canMsg1);
  mcp2515.sendMessage(&canMsg2);

  Serial.println("Messages sent");
  
  delay(1000);

}

также читаем пост #22 и ниже

ak62
Offline
Зарегистрирован: 03.01.2019

В общем канхакер со мною дружить не хочет. 

Я читаю шину LOW CAN, которая на моем авто находится на 3 и 11 контакте. Удалось подключиться таким скетчем:

// Copyright (c) Sandeep Mistry. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

#include <CAN.h>

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

  Serial.println("CAN Receiver");

  // start the CAN bus at 125 kbps
  if (!CAN.begin(125E3)) {
    Serial.println("Starting CAN failed!");
    while (1);
  }
}

void loop() {
  // try to parse packet
  int packetSize = CAN.parsePacket();

  if (packetSize) {
    // received a packet
    Serial.print("Received ");

    if (CAN.packetExtended()) {
      Serial.print("extended ");
    }

    if (CAN.packetRtr()) {
      // Remote transmission request, packet contains no data
      Serial.print("RTR ");
    }

    Serial.print("packet with id 0x");
    Serial.print(CAN.packetId(), HEX);

    if (CAN.packetRtr()) {
      Serial.print(" and requested length ");
      Serial.println(CAN.packetDlc());
    } else {
      Serial.print(" and length ");
      Serial.println(packetSize);

      // only print packet data for non-RTR packets
      while (CAN.available()) {
        Serial.print(CAN.read(),HEX);
      }
      Serial.println();
    }

    Serial.println();
  }
}

с другой библиотекой МСР.

Получил такие логи в сом порту:

LCAN Receiver
21:09:27.910 -> Received extended packet with id 0x131726C and length 8
21:09:27.978 -> 0C2A9220003F
21:09:27.978 -> 
21:09:27.978 -> Received extended packet with id 0x217FFC and length 8
21:09:28.048 -> 14B0F2C04000
21:09:28.048 -> 
21:09:28.048 -> Received extended packet with id 0x217FFC and length 8
21:09:28.117 -> 34B0F2C04000
21:09:28.151 -> 
21:09:28.151 -> Received extended packet with id 0xE01008 and length 8
21:09:28.185 -> 363800004C0
21:09:28.219 -> 
21:09:28.219 -> Received extended packet with id 0x1E0162A and length 8
21:09:28.287 -> C010020160990
21:09:28.287 -> 
21:09:28.287 -> Received extended packet with id 0x217FFC and length 8
21:09:28.355 -> 14B0F2C04000
21:09:28.355 -> 
Received extended packet with id 0x217FFC and length 8
21:09:28.425 -> 14B0F2C04000
21:09:28.459 -> 
21:09:28.459 -> Received extended packet with id 0x3200408 and length 8
21:09:28.527 -> 138130200100
21:09:28.527 -> 
21:09:28.527 -> Received extended packet with id 0xC00402 and length 8
21:09:28.596 -> 30000004
21:09:28.596 -> 
21:09:28.596 -> Received extended packet with id 0xE01008 and length 8
21:09:28.665 -> 363800004C0
21:09:28.665 -> 
21:09:28.665 -> Received extended packet with id 0x2A0240E and length 8
21:09:28.699 -> 000000030

21:09:28.734 -> Received extended packet with id 0x3000042 and length 8
21:09:28.768 -> 001B01C01BB
21:09:28.802 -> 
21:09:28.802 -> Received extended packet with id 0x217FFC and length 8
21:09:28.870 -> 14B0F2C04000
21:09:28.870 -> 
21:09:28.870 -> Received extended packet with id 0x3E0004A and length 8
21:09:28.939 -> 00001DE000

Так что все таки ID имеет формат 0х00000000 и ID 0x000FFFFE это ID моего диагностического прибора.

 
MaksVV
Offline
Зарегистрирован: 06.08.2015

а просто пример read с настройкой 8 Мгц тоже не читает вашу шину? 

ak62
Offline
Зарегистрирован: 03.01.2019

MaksVV пишет:

а просто пример read с настройкой 8 Мгц тоже не читает вашу шину? 

Нет, не читает. Связка из канхакера и той библиотеки, что Вы дали ссылку работает только на столе.

MaksVV
Offline
Зарегистрирован: 06.08.2015

я ей читал обе шины (тоже 500 и 125 ) на форде фокусе и мондео. Должно работать. Правда там были короткие 11bit ID

ak62
Offline
Зарегистрирован: 03.01.2019

MaksVV пишет:

я ей читал обе шины (тоже 500 и 125 ) на форде фокусе и мондео. Должно работать. Правда там были короткие 11bit ID

У меня Volvo 2006 г.в. (не форд еще :) ) 

вот ссылка на библиотеку https://drive.google.com/open?id=141nw7Af16zcWFT1tQunHz8J0CeHgQR_A и скетчи https://drive.google.com/open?id=1MhhKXCxrdiBi0qGSJ0XQlwD6fQ_ovBmB Я пошел от обратного. У меня когда то получилось подключиться иммитатором ОБД. Вот я опять вернулся к нему.

П.С. в файле MCP2515.h в строке 13 поменял #define MCP2515_DEFAULT_CLOCK_FREQUENCY 16e6 на #define MCP2515_DEFAULT_CLOCK_FREQUENCY 8e6 и все зачиталось и на 500 и на 125.

MaksVV
Offline
Зарегистрирован: 06.08.2015

вот ещё норм библа которой я пользуюсь, пробуйте пример receive. не забываем настройку 8 мгц . Перед автомобилем лучше проверить в связке с канхакером или другой дуней. 

MaksVV
Offline
Зарегистрирован: 06.08.2015

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

ak62
Offline
Зарегистрирован: 03.01.2019

Я же правильно понимаю, что без скетча для CANHacker программа CANHacker работать не будет? А скетч требует своей библиотеки. Какой то замкнутый круг...

ak62
Offline
Зарегистрирован: 03.01.2019

MaksVV пишет:

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

Что вы имеете в виду? Я же выше написал, что исправил #define MCP2515_DEFAULT_CLOCK_FREQUENCY 16e6 на #define MCP2515_DEFAULT_CLOCK_FREQUENCY 8e6 Другого места про частоту кварца я не нашел. К стати, а в самом скетче для канхакера есть где то настройка на 8 МГц?

MaksVV
Offline
Зарегистрирован: 06.08.2015

всё верно. у вас с библами бардак. уберите все в отдельную папку, скачайте по моей ссылке для канхакера 8 мгц, бусть она одна одинокая будет и будет вам счастье. 

ak62
Offline
Зарегистрирован: 03.01.2019

MaksVV пишет:

всё верно. у вас с библами бардак. уберите все в отдельную папку, скачайте по моей ссылке для канхакера 8 мгц, бусть она одна одинокая будет и будет вам счастье. 

Я уже так два дня делаю :) Удаляю все и ставлю конкретно то, что нужно для скетча. Заработало - сохраняю папку библиотеки, обзываю ее понятным для себя именем. и создаю пустую папку библиотек. А по Вашей ссылке на 8МГц целая пачка библиотек. Я оставлял из Вашего архива только две arduino-canhacker-master и arduino-mcp2515-master. И с ними работал на столе, делая связку с Канхакером. На столе заработало, а с машиной не захотела. Завтра уже на свежую голову все буду пробовать сначала.

MaksVV
Offline
Зарегистрирован: 06.08.2015

ak62 пишет:
Что вы имеете в виду? Я же выше написал, что исправил #define MCP2515_DEFAULT_CLOCK_FREQUENCY 16e6 на #define MCP2515_DEFAULT_CLOCK_FREQUENCY 8e6 Другого места про частоту кварца я не нашел. К стати, а в самом скетче для канхакера есть где то настройка на 8 МГц?

я имею ввиду вот так в setup()  писать  для mcp2515.h 

mcp2515.setBitrate(CAN_125KBPS, MCP_8MHZ);

а для  mcp_can.h 

if(CAN0.begin(MCP_ANY, CAN_500KBPS, MCP_8MHZ) == CAN_OK)

для кан хакера временно скачиваете в папку libraries библы по ссылке из #3 поста , заливаете скетч и удаляете их нафиг, обратно все свои библы возвращаете которые изначально на 16 мгц , но в сетапе настраиваются на 8

ak62
Offline
Зарегистрирован: 03.01.2019

Вот сейчас из Вашей последней ссылки собрал на столе приемопередатчик. Всё заработало с первого раза. Изменил только if(CAN0.begin(MCP_ANY, CAN_125KBPS, MCP_8MHZ) == CAN_OK).

ak62
Offline
Зарегистрирован: 03.01.2019

MaksVV пишет:

для кан хакера временно скачиваете в папку libraries библы по ссылке из #3 поста , заливаете скетч и удаляете их нафиг, обратно все свои библы возвращаете которые изначально на 16 мгц , но в сетапе настраиваются на 8

Кажется, я так уже пробовал. Просто голова кругом уже идет... Надо записывать свои действия :)

ak62
Offline
Зарегистрирован: 03.01.2019

Давайте еще раз. Я скачал библиотеки из третьего поста. Залил их в чистую папку libraries. Перед тем, как залить скетч ...\arduino-canhacker-master\examples\usb_cdc\usb_cdc\usb_cdc.ino в ардуино, мне нужно что либо, где либо менять под 8МГц?

ak62
Offline
Зарегистрирован: 03.01.2019

1.Удалил все из libraries, добавил две библиотеки arduino-canhacker-master и arduino-mcp2515-master из Вашего архива.

2. Открыл и залил скетч ...\arduino-canhacker-master\examples\usb_cdc\usb_cdc\usb_cdc.ino в ардуино. Загрузка прошла без вопросов.

3. Удалил все из libraries. Добавил туда MCP_CAN_lib-masterPOSL.

4. Открыл скетч \Arduino\libraries\MCP_CAN_lib-masterPOSL\examples\CAN_send\CAN_send.ino, изменил на if(CAN0.begin(MCP_ANY, CAN_125KBPS, MCP_8MHZ) == CAN_OK), залил в другую ардуино. Залетела без вопросов. Но выдает 

23:07:37.240 -> MCP2515 Initialized Successfully!
23:07:37.240 -> Error Sending Message...
Error Sending Message...

вместо 

Message Sent Successfully!

5. Запускаю и подключаю CanHacker. Ура! в окне CanHacker вижу сообщения от передатчика, а в его компорту уже вижу Message Sent Successfully!

В теории завтра можно пробовать снова подключить к авто.

Но, кажется, что так уже было :(

MaksVV
Offline
Зарегистрирован: 06.08.2015

должно заработать, главное скетч на ардуине-канкахере не меняйте. сразу скажу что шину 500кбит/с будет не очень хорошо захватывать, пропускает иногда сообщения. Толи мощи у ардуины не хватает, толи библиотека коряво написана. Но это ещё зависит от трафика на шине. Если не очень загружена, то будет норм сфниффить. На столе вообще всегда всё стабильно. про шину 125кбит/с не пробовал особо, должно быть норм. 

ak62
Offline
Зарегистрирован: 03.01.2019

Ну и на сон грядущий. Снова очистил папку библиотек и поставил туда одну arduino-mcp2515-master. Заменил содержимое скетча CAN_write.ino на код из сообщения 69. Запустил передачу, подключил канхакер. Period Count бегут, а содержимое ID  Data какие то левые... П.С. Досмотрел, что на отправку у канхакера есть галка для 29 бит ID.

MaksVV
Offline
Зарегистрирован: 06.08.2015

ak62 пишет:
Но выдает 

Error Sending Message...

 Ура! в окне CanHacker вижу сообщения от передатчика, а в его компорту уже вижу Message Sent Successfully!

Это происходит потому что в данном случае было всего два девайса. А когда вы кнопку в канхакере ещё не нажали , девайсы не соединены были. Получается вообще один девайс  - передатчик (и тем более если терминатор не на нём активирован джампером). 

MaksVV
Offline
Зарегистрирован: 06.08.2015

сек, там чё то подругому вроде 29 bit нужно отправлять 

MaksVV
Offline
Зарегистрирован: 06.08.2015

нет, всё норм у меня работает. вот чуть поменял. этот тоже работает

#include <SPI.h>
#include <mcp2515.h>

struct can_frame canMsg1;
struct can_frame canMsg2;
MCP2515 mcp2515(10);


void setup() {

  canMsg1.can_id  = 0x800FFFFE;
  canMsg1.can_dlc = 8;
    
  while (!Serial);
  Serial.begin(115200);
  SPI.begin();
  
  mcp2515.reset();
  mcp2515.setBitrate(CAN_125KBPS, MCP_8MHZ);
  mcp2515.setNormalMode();
  
 }

void loop() {
  canMsg1.data[0] = 0x8F;
  canMsg1.data[1] = 0x43;
  canMsg1.data[2] = 0xB1;
  canMsg1.data[3] = 0x00;
  canMsg1.data[4] = 0x11;
  canMsg1.data[5] = 0x01;
  canMsg1.data[6] = 0x01;
  canMsg1.data[7] = 0x00;
  
  mcp2515.sendMessage(&canMsg1);
  delay (500);
  canMsg1.data[0] = 0x49;
  canMsg1.data[1] = 0x06;
  canMsg1.data[2] = 0x00;
  canMsg1.data[3] = 0x00;
  canMsg1.data[4] = 0x00;
  canMsg1.data[5] = 0x00;
  canMsg1.data[6] = 0x00;
  canMsg1.data[7] = 0x00;
  mcp2515.sendMessage(&canMsg1);
  
  Serial.println("Messages sent");
  
  delay(500);

}

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

библу в данном случае нужно НЕ из моего архива канхакера брать!

ak62
Offline
Зарегистрирован: 03.01.2019

Этот работает!

ak62
Offline
Зарегистрирован: 03.01.2019

MaksVV пишет:

библу в данном случае нужно НЕ из моего архива канхакера брать!

Из Вашего, из Вашего... :) 

MaksVV
Offline
Зарегистрирован: 06.08.2015

в этом архиве какая то либа правленная под 8 мгц для канхакера, уже не помню какая точно. Просто если в библе правлено и в сетапе выбрать 8 мгц, вроде не должно работать, хотя хз. 

ak62
Offline
Зарегистрирован: 03.01.2019

На сегодня - огромное спасибо за помощь. Завтра отпишусь, что из этого вышло.

ak62
Offline
Зарегистрирован: 03.01.2019

Утро началось плохо. На столе не заработал прием 29 бит ID. Не трогая приемник раз 10 перезаливал скетч в передатчик из 90 сообщения. Не принимает канхакер этот ID и все. С авто, естественно, тоже ничего не получилось. Поробовал отправить в шину то, что я нарыл. Тоже никакой реакции от машины. Залил другой скетч на чтение в ардуино и получил на выходе 

Received extended packet with id 0x1B500000 and length 8
13:41:18.123 -> 00000000
13:41:18.158 -> 
13:41:18.158 -> Received extended packet with id 0x1E0162A and length 8
13:41:18.192 -> 203002070190
13:41:18.227 -> 
13:41:18.227 -> Received extended packet with id 0x217FFC and length 8
13:41:18.295 -> 00020C0000
13:41:18.295 -> 
13:41:18.295 -> Received extended packet with id 0x217FFC and length 8
13:41:18.330 -> 34B030C0000
13:41:18.330 -> 
13:41:18.330 -> Received extended packet with id 0x131726C and length 8
13:41:18.399 -> 0C2C020003F
13:41:18.434 -> 
13:41:18.434 -> Received extended packet with id 0x217FFC and length 8
13:41:18.467 -> 14B030C0000
13:41:18.501 -> 
13:41:18.501 -> Received extended packet with id 0x131726C and length 8
13:41:18.569 -> 0C2C020003F
13:41:18.569 -> 
13:41:18.569 -> Received extended packet with id 0x2A0240E and length 8
13:41:18.639 -> 00000000
13:41:18.639 -> 
13:41:18.639 -> Received extended packet with id 0x2803008 and length 8
13:41:18.708 -> CB40000200
13:41:18.708 -> 
13:41:18.708 -> Received extended packet with id 0x217FFC and length 8
13:41:18.777 -> 34B030C0000
13:41:18.811 -> 
13:41:18.811 -> Received extended packet with id 0x14034A2 and length 8
13:41:18.845 -> 05B0489040
13:41:18.879 -> 
13:41:18.879 -> Received extended packet with id 0x1E0162A and length 8
13:41:18.948 -> C010020170590
13:41:18.948 -> 
13:41:18.948 -> Received extended packet with id 0x1E0162A and length 8
13:41:19.016 -> 4010020170990
13:41:19.016 -> 

Это часть, не весь вывод. Т.е. все таки к шине подключился верно и в шине что то бегает.

Как вчера канхакер увидел вывод из скетча 90 сообщения - загадка. Говорят, что китайцы могут сломать любой пароль на windows. Нужно просто миллион раз ввести неправильный и widows сдастся :)

MaksVV
Offline
Зарегистрирован: 06.08.2015

значит похоже трабл, как описано в ссылке в сообщени #47. После перевключения питания нормально не робит. Позаливайте примеры из либы POSL связанные с аппаратными фильтрами. Скорее всего у вас косяк на модуле, который был канхакером. 

ak62
Offline
Зарегистрирован: 03.01.2019

Да, уже у самого такая мысль. Завтра поменяю ардуино на другую. А модули я местами менял уже 20 раз Не хотел паять. Только что провозился два часа в гараже. Канхакер уже не запускал даже. Работал со скетчами из POSL. Читает все отлично, передвать 29 бит нужно со вторым параметром 1 Вот так CAN0.sendMsgBuf(0x00FFFFFE, 1, 8, mirrow); Тогда приемник видит ID 00FFFFFE, но машина не хочет принимать этот пакет. Ни и, к стати канхакер, тоже.

MaksVV
Offline
Зарегистрирован: 06.08.2015

там в строке в сетапе где установка скорости, нужно MCP_STDEXT вроде писать для расширенных ID

 if(CAN0.begin(MCP_STDEXT, CAN_125KBPS, MCP_8MHZ) == CAN_OK)

 

ak62
Offline
Зарегистрирован: 03.01.2019

MaksVV пишет:

там в строке в сетапе где установка скорости, нужно MCP_STDEXT вроде писать для расширенных ID

 if(CAN0.begin(MCP_STDEXT, CAN_125KBPS, MCP_8MHZ) == CAN_OK)

 

Спасибо. Проверю.