Arduino a CAN MCP2515

Sekcia určená pre Arduino nadšencov

Moderátor: Moderátori

TomasNM
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1371
Dátum registrácie: 22 Jan 2012, 19:24
Bydlisko: Nové Mesto nad Váhom
Vek: 43

Arduino a CAN MCP2515

Príspevok od používateľa TomasNM » 16 Nov 2017, 22:31

Pani,

Snazim sa o rozbehanie komunikacie medzi Arduinom a zariadenim po CANbus-e.
Priklad na odoslanie dat sa tvari funkcne,ale...
Spravu vysiela cyklicky a nie iba raz za 100ms(tak,ako by som chcel).
Navyse,sprava je konstantna a nemeni sa podla poziadavky,teda taka,ako je definovana na zaciatku pri inicializacii pola.
Viete mi poradit,kde je zrada?
Modul pouzivam tento:
https://www.ebay.com/itm/MCP2515-CAN-Bu ... 2749.l2649

Toto je moj kod:

Kód: Vybrať všetko

// demo: CAN-BUS Shield, send data
#include <mcp_can.h>
#include <SPI.h>

MCP_CAN CAN0(10);                                      // Set CS to pin 10
INT8U stmp[8] = {0, 1, 2, 3, 4, 5, 6, 7};
INT8U a=255;

void setup()
{
  Serial.begin(115200);
  // init can bus, baudrate: 500k
  if(CAN0.begin(CAN_500KBPS, MCP_8MHz) == CAN_OK) Serial.print("can init ok!!\r\n");
  else Serial.print("Can init fail!!\r\n");
}

void loop()
{
  // send data:  id = 0x00, standrad flame, data len = 8, stmp: data buf
  stmp[0]=a;a++;if(a>255)a=0;
  Serial.println(String(stmp[0])+' '+stmp[1]+' '+stmp[2]+' '+stmp[3]+' '+stmp[4]+' '+stmp[5]+' '+stmp[6]+' '+stmp[7]);
  CAN0.sendMsgBuf(0x00, 0, 8, stmp); 
  delay(100);                       // send data per 100ms
}

/*********************************************************************************************************
  END FILE
*********************************************************************************************************/
Prílohy
DS1Z_QuickPrint1.png
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Arduino a CAN MCP2515

Príspevok od používateľa peterple » 19 Nov 2017, 23:35

Nevidím tam chybu. Ak delay nerobí to čo má môže to byť preto že je zle nastavená F_CPU. Kedže delay funguje cez millis() tak to má súvis aj s nastavením čítača. Ak ten kód pre CAN prevodník použije ten istý čítač tak to tiež môže byť problém. Tu sa musí ísť do hĺbky. Tu na povrchu vyzerá všetko OK.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
MacGyver
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1434
Dátum registrácie: 01 Júl 2007, 00:00
Bydlisko: Ruzinov
Vek: 35

Re: Arduino a CAN MCP2515

Príspevok od používateľa MacGyver » 20 Nov 2017, 11:11

Ja som mal podobne problemy s can kontrolerom na rpi2, nepamatam si vsak v com bol problem, pretoze som medzi pokusmi vymenil aj harvdver. Neznamena cyklicke odosielanie spravy bus error a opatovne pokusy o zaslanie frejmu? O aky hardver sa jedna? MCP2515+MCP2551? Je to zavesene na zbernici alebo su to len testy na stole? Terminator 120ohm je pocas testu zapojeny?

Edit: pozrel som hardver, vysie napisane otazky stale platia.
0
/home sweet /home ..
Canon EOS 60D owner

TomasNM
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1371
Dátum registrácie: 22 Jan 2012, 19:24
Bydlisko: Nové Mesto nad Váhom
Vek: 43

Re: Arduino a CAN MCP2515

Príspevok od používateľa TomasNM » 20 Nov 2017, 17:50

Zatial to mam iba na stole.
Zbernica je odpojena,zaciatocny terminator tam je. Bez neho su signaly velmi nekonzistentne.
Ten bus error...to by aj mohlo byt ono,ale neviem,ako to ma fungovat.
Na jednej strane(master) je ten modul,co som dal nizsie link(MCP2515 a TJA1050) a druha strana(ktora zatial nieje) netusim co v sebe ma.
Skusim pripojit druhu stranu(slave) a uvidim potom,ako sa to sprava.
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok