Arduino UNO и MCP2515 CAN

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

b707 пишет:

Макс, а я в свою очередь спрощу - а как кан-хакер (в смысле программа, а не железка) настраивает нестандартные скорости для ардуино -mcp2515 ? - Я смотрю регистры настройки скорости у mcp2515 - и формат у них несколько другой, чем на SJA1000. Или в программе можно выбрать тип чипа?

сорри за ламерские вопросы - я программу пока не видел

просто подумалось - то, что кан-хакер не работает со скоростью 83,3 на mcp2515 8MHz - может это связно с тем, что народ вводит параметр 83FE - а ведь для 8МГц тут значение будет другое

 

Почему ламерские? вопросы очень даже рабочие.  Не знаю, не приходилось работать с нестандартными скоростями. В программе CAN Hacker нет выбора контроллера CAN, но, насколько я знаю, она заточена была под sja1000 (какой то немец ее писал).  А так то программа  работает все-таки с МК (ардуиной) по UART (протокол lawicel), а не с контроллером CAN  напрямую.  Поэтому скетч разный для sja1000 и MCP2515. Т.е. ответ на твой вопрос - это решается на уровне прошивки МК. 

И еще, раз уж ты начал разбираться в регистрах CAN контроллера (в отличае от меня ленивого, пользующегося библиотеками). В настройках программы при установке пользовательской скорости CAN, смотри есть разные видимо схемы настройки скорости (обвел красной линией). Видимо тут и нужно указывать по-разному в зависимости от прошивки (ну и собственно железа адаптера). А программу пора бы уже увидеть))) см. пост #3. 

b707
Offline
Зарегистрирован: 26.05.2017

Cho1s - для 33.3 попробуйте еще 49FE или C9FE. Я пока не вполне четко понимаю значение двух старших бит этого числа, но к счастью вариантов там немного :)

MaksVV - спасибо обьяснения

 

Cho1s
Offline
Зарегистрирован: 26.07.2017

добрый день, сегодня глянул на машине, РАБОТАЕТ и 89FE и 49FE  и С9FE. на столе нашел потом проблему, пин в разьеме сломался

Cho1s
Offline
Зарегистрирован: 26.07.2017

Спасибо большое b707 и MaksVV за помощь !

b707
Offline
Зарегистрирован: 26.05.2017

Cho1s пишет:

добрый день, сегодня глянул на машине, РАБОТАЕТ и 89FE и 49FE  и С9FE

о, отлично, значит когда я считал биты на бумажке - не ошибся :)))))

sadman41
Offline
Зарегистрирован: 19.10.2016

b707 пишет:

о, отлично, значит когда я считал биты на бумажке - не ошибся :)))))

Ретроград в наших рядах...

nvs48
Offline
Зарегистрирован: 26.09.2019

Добрый вечер!

Есть приборка, опытным путем установил, что скорость CAN 125. Canhacker на прослушку на этой скорости работает без вопросов - сообщения принимает. А отправить через canhacker в шину не могу. Переставляю скорость на 250 - работает исправно.

Пробую через mcp2515 - на скорости 125 прослушка и отправка сообщений работает. 

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

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

не понятно что в данном контексте является  канхакером.  Это таже ардуина+MCP ? 

nvs48
Offline
Зарегистрирован: 26.09.2019

да

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

удалить все библиотеки, связанные с MCP 2515 поставить библиотеки из поста #3. Если есть вторая связка , настроить их между собой и попробовать обмен туда сюда. Терминатор на одной активировать и обязательно убрать галку listen only в настройках программы канхакер, если она стоит

Fayton
Offline
Зарегистрирован: 10.12.2018

CanSan-v6 Новые супер возможности! Сохранение файла плеера редактирование и загрузка. Теперь можно делится наработками и не только! С Новым Годом!

 

Andriyovuch
Offline
Зарегистрирован: 05.01.2020

Добрый вечер. Всех с наступившим)) Уважаемые форумчане, помогите чайнику. Имеется  ARDUINO UNO i RAMPS 1.5. Вопрос: ВОЗМОЖНО ЛИ  СЛЕПИТЬ ИХ В БУТЕРБРОД БЕЗ ОСОБЫХ ТРУДНОСТЕЙ?  Для 3д принтера. Если да, то с какой прошивкой, ньюансами и т.д т.п.  Извиняюсь если не в ту тему написал, если что направьте куда надо. Спасибо за понимание.

Maxboxr
Offline
Зарегистрирован: 28.02.2017

Здравствуйте, помогите новичку. Canhacker не могу запустить. Есть NANO и MCP2515 и куча библиотек. Снял приборную панель с авто на столе подключаю питание. NANO и MCP2515 подключаю к CAN. Смотрю на монитор CAN_READ и ничего. Затем снимаю один провод с CAN без разницы H или L  и начинают бежать пакеты, ставлю провод обратно и опять все замолкает, Пробую запустить canhacker, он запускается к COM PORT видит CONNECTED TO 125 но ничего не показывает, Помогите пожалуйста у меня на нервной почве уже депрессия началась,

 

 

Cho1s
Offline
Зарегистрирован: 26.07.2017

а панель на столе включается ?

Cho1s
Offline
Зарегистрирован: 26.07.2017

думаю что нет,

канхакер проще на машине проверить, панель может не слать сообщения когда спит, а когда отключаете один провод это просто “шум” как помехи...

Cho1s
Offline
Зарегистрирован: 26.07.2017

думаю что нет,

канхакер проще на машине проверить, панель может не слать сообщения когда спит, а когда отключаете один провод это просто “шум” как помехи...

Maxboxr
Offline
Зарегистрирован: 28.02.2017

визуально нет . но чт ото в CAN передает

Maxboxr
Offline
Зарегистрирован: 28.02.2017

Получается, что то MCP видит пусть даже шум

Maxboxr
Offline
Зарегистрирован: 28.02.2017

Да Вы были правы это помехи . Отключаю минус с панели а пакеты идут. Я в тупике:(

sadman41
Offline
Зарегистрирован: 19.10.2016

Вот что интересно - вроде как MCP должен CRC генерировать и проверять. Отчего тогда он шум как данные принимает?

Maxboxr
Offline
Зарегистрирован: 28.02.2017

Canhacker эти помехи не видит. Только Can read

Maxboxr
Offline
Зарегистрирован: 28.02.2017

У меня две NANO пробовал на обеих безрезультатно

Maxboxr
Offline
Зарегистрирован: 28.02.2017

Друзья ,скажите пожалуйста две Nano c MCP между собой по CAN. Там какой то джампер надо ставить, обязательно?

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Джампер терминатора нужен. Если расстояние небольшое, то и с одной стороны хватит.

Maxboxr
Offline
Зарегистрирован: 28.02.2017

Простите за глупый вопрос . А куда его ставить

Cho1s
Offline
Зарегистрирован: 26.07.2017

посмотрите на плате с мцп желтые штырьки, а вообще устанавливается между canHigh и canLow

sadman41
Offline
Зарегистрирован: 19.10.2016

Терминатор джампером сбоку платы модуля активируется, а около разъема для витухи - дублирующие его (разъем) контакты. Их замыкать не стоит.

Maxboxr
Offline
Зарегистрирован: 28.02.2017

Тоесть штырьки под названием J1 соединить друг с другом.

Maxboxr
Offline
Зарегистрирован: 28.02.2017

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

Andriyovuch
Offline
Зарегистрирован: 05.01.2020

мда уж...желающих помочь аж с верхом я вижу. ну спасибо и на том 

sadman41
Offline
Зарегистрирован: 19.10.2016

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

-NMi-
Offline
Зарегистрирован: 20.08.2018

У него-ж ДДДпринтер, мож чо нам напечатат, а?  Тебе вот чо нужно напечатать? А мне бы корпус под контроллер, да пагламуррнее)))

Andriyovuch
Offline
Зарегистрирован: 05.01.2020

я же сразу написал, что если не там пишу, подскажите куда надо и извинился сразу. и нет у меня еще принтера ддд, только планирую создать. так можна уно и рампс 1.5 соединить, прошить чтоб работало?

Maxboxr
Offline
Зарегистрирован: 28.02.2017

Друзья . Докладываю о результатах моих танцев с бубном . Мои MCPшки снюхались по CAN. Но только по CAN WRITE и CAN READ. С canhacker неполучается. Comport видит connect 125 конект есть а пакетов НЕТ!
Да к стати джампер надо ставить только на передатчик

Maxboxr
Offline
Зарегистрирован: 28.02.2017

Здравствуйте. У меня вопрос? Две NANO и две MCP общаются между собой на столе через CANHACKER. В автомобиле подключаю и тишина. Куда копать подскажите?

sadman41
Offline
Зарегистрирован: 19.10.2016

А вот такой вопрос - кто-нибудь проверяет состояние MCP2515?

Допустим, если он отлетел по SPI или ещё как-нить там коротнул интерфейс - надо же опознать эту ситуацию. ID я у него не вижу, CAN STATUS REGISTER (ADDRESS: XEh) читать бесполезно вроде как - он 0x00 отдаёт в нормальном состоянии, т.е. если даже MCP перестанет отвечать, то по SPI прилетит 0x00 или 0xFF...

 

Cho1s
Offline
Зарегистрирован: 26.07.2017

Maxboxr пишет:
Здравствуйте. У меня вопрос? Две NANO и две MCP общаются между собой на столе через CANHACKER. В автомобиле подключаю и тишина. Куда копать подскажите?

проверьте соответствие кварца к библиотеке. у меня был такой косяк увеличил (или уменьшил, не помню)скорость в два раза и все норм

Maxboxr
Offline
Зарегистрирован: 28.02.2017

У меня машина 29 bit. ЭТО ВИЛЫ (

son32
Offline
Зарегистрирован: 04.12.2017

Maxboxr пишет:
У меня машина 29 bit. ЭТО ВИЛЫ (

А что за модель авто? Если не секрет))

son32
Offline
Зарегистрирован: 04.12.2017

Maxboxr пишет:
У меня машина 29 bit. ЭТО ВИЛЫ (

А что за модель авто? Если не секрет))

Maxboxr
Offline
Зарегистрирован: 28.02.2017

Это VOLVO блин

Maxboxr
Offline
Зарегистрирован: 28.02.2017

С CANhAker , только на столе работает между ардуинами. На авто ловит 5-10 пакетов и виснет. Мощи не хватает наверно. 

Приборную панель снял, принес домой с ней пробую. В Canread все работает . В canhacker 5-10 пакетов и все.

Короче не будет он на 29bit работать

son32
Offline
Зарегистрирован: 04.12.2017

Maxboxr пишет:

С CANhAker , только на столе работает между ардуинами. На авто ловит 5-10 пакетов и виснет. Мощи не хватает наверно. 

Приборную панель снял, принес домой с ней пробую. В Canread все работает . В canhacker 5-10 пакетов и все.

Короче не будет он на 29bit работать


Учти что если отдельно от авто будешь делать, то приборке нужен будет пакет который даёт ей статут включенного зажигания. Но по идеи можно любое сообщение кинуть в кан, приборка временно должна в ответ что нить отправить, при этом по факту сама приборка не оживет. Не знаю как на Volvo, на мерсах так работает.
Вообще реально если на MCP стоит кварц на 8 поменяй его на 16, мне это помогло, но это было при скорости 83,3.
Уверен ли ты что у тебя щиток работает на скорости 125? Попробуй другие скорости.
Скетч и библиотеки заливаешь с третьего сообщения данной ветки? Покажи скетч который заливаешь для программы кан хакер.
И ещё на столе между MCP ты ставишь джампер терминатора, в машине возможно его нужно убрать(был такой опыт на мерсах)

Maxboxr
Offline
Зарегистрирован: 28.02.2017

son32 спасибо за совет. 

Я подключаю приборку она выдает 4 пакета (что то просит наверно) в ответ ничего не получает и через 10 сек засыпает.

По поводу скорости . Да я уверен что 125 потому ,что только на ней работает. 

в CAN_RECEIVE поменял MCP_ANY на MCP_STDEXT и поставил MCP_8MHZ.

После этого 29bit читаются на машине. Но только в CAN_READ.

Библиотеки все отсюда с форума.

Для чтения моего авто нужно что то посерьезней. Может для передачи в  CAN и подойдет. Я в первый раз увидел ARDUINO две недели назад. перечитал кучу информации а на выходе ноль. Жаль потраченного времени

son32
Offline
Зарегистрирован: 04.12.2017

Maxboxr, попробуй перечитай сообщения номер 3 и 4 в данной ветке, может в этом дело)) я этим кан хакером спокойно читал шины кан в свежих мерсах, не думаю что Volvo на столько круче))

Maxboxr
Offline
Зарегистрирован: 28.02.2017

Я так понимаю. 11bit эта связка NANO и MCP2115 спокойно читает а на 29 bit не хватает производительности.
На столе между двумя NANO и MCP всё работает, и canhacker тоже . А на машине примерно 10 пакетов за 1 милисекунду.
Заказал я canhacker за 2850р .на неделе придёт напишу что да как

son32
Offline
Зарегистрирован: 04.12.2017

Я уже давно использую канхакер с сайта http://canhacker.ru с ним возможностей больше, плюс у них анализатор лучше чем старый добрый софт канхакера, ещё и с лин шиной работает.

Maxboxr
Offline
Зарегистрирован: 28.02.2017

согласен

son32
Offline
Зарегистрирован: 04.12.2017

Maxboxr пишет:

согласен

попробуй все таки этот скетч. если не ошибаюсь то с ним у меня все работало исправно.

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

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

#include <SPI.h>
#include <SoftwareSerial.h>

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

const int SS_RX_PIN = 3;
const int SS_TX_PIN = 4;

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

SoftwareSerial softwareSerial(SS_RX_PIN, SS_TX_PIN);

void setup() {
    Serial.begin(115200);
    while (!Serial);
    SPI.begin();
    softwareSerial.begin(115200);

    Stream *interfaceStream = &Serial;
    Stream *debugStream = &softwareSerial;
    
    
    canHacker = new CanHacker(interfaceStream, debugStream, SPI_CS_PIN);
    //canHacker->enableLoopback(); // uncomment this for loopback
    lineReader = new CanHackerLineReader(canHacker);
    
    pinMode(INT_PIN, INPUT);
}

void loop() {
    CanHacker::ERROR error;
  
    if (digitalRead(INT_PIN) == LOW) {
        error = canHacker->processInterrupt();
        handleError(error);
    }

    error = lineReader->process();
    handleError(error);
}

void handleError(const CanHacker::ERROR error) {

    switch (error) {
        case CanHacker::ERROR_OK:
        case CanHacker::ERROR_UNKNOWN_COMMAND:
        case CanHacker::ERROR_NOT_CONNECTED:
        case CanHacker::ERROR_MCP2515_ERRIF:
        case CanHacker::ERROR_INVALID_COMMAND:
            return;

        default:
            break;
    }
  
    softwareSerial.print("Failure (code ");
    softwareSerial.print((int)error);
    softwareSerial.println(")");

    digitalWrite(SPI_CS_PIN, HIGH);
    pinMode(LED_BUILTIN, OUTPUT);
  
    while (1) {
        int c = (int)error;
        for (int i=0; i<c; i++) {
            digitalWrite(LED_BUILTIN, HIGH);
            delay(500);
            digitalWrite(LED_BUILTIN, LOW);
            delay(500);
        }
        
        delay(2000);
    } ;
}

конечно могу ошибаться))

Maxboxr
Offline
Зарегистрирован: 28.02.2017

Сегодня провёл эксперимент, подключил две ардуины между собой включил два CANHACKER , от балды написал 13 пакетов в 29 bit и послализ одного в другой с периудом 30 мил.сек .Пакеты принемаются. Ставлю 14 пакетов 2-3 сек работает и CANHACKER приёмник зависает.
Машина у меня при включении бомбит пакетами больше 13шт поэтому c.h зависает. Что тормозит? Незнаю. Посоветуйте что нибудь