AT90CAN: Nur 15x senden und kein Empfang

Gast #2267276
Lesenswert?

Hallo Elektronik-Begeisterte,

ich arbeite hier mit einem AT90CAN128 und der CAN-Lib von 
kreatives-chaos.com: 
http://www.kreatives-chaos.com/artikel/universelle-can-bibliothek

Ich habe nun, wie scheinbar auch ein paar andere, das Problem, dass ich 
nur 15x senden kann und überhaupt nichts empfangen.

Eine Ursache für das Problem könnte wohl ein fehlerhafte Verbindung zum 
RXCAN-Pin des AT90CAN128 sein.

Ich habe die beiden Pins am Oszi gemessen (siehe Screenshot; gelb=TXCAN, 
magenta=RXCAN) und dies scheint nicht das Problem zu sein. Ist ist ja 
auch ein ACK zu sehen.

Ich habe auch den entsprechenden Pin PD6 (PXCAN) in einemn kleinen 
Programm erfolgreich auf Zustandsänderungen getestet. Es scheint also 
auch etwas im Controller anzukommen.

Ich betreibe den Controller an 3,3 V und benutze auch einen 3,3 V 
Bustreiber.
Da das senden geht (wenn auch nur 15x), würde ich den 3,3 V Bustreiber 
erstmal als Fehlerursache ausschließen. Die Pegal zwischen AT90CAN und 
dem Bustreiber sehen ja auch gut aus?!

Hat von euch jemand eine Idee wo das Problem liegen könnte?

Gruß
Jakob
Angehängte Dateien:
Gast #2267486
Lesenswert?

1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
#include <stdlib.h>
4
#include <util/delay.h>
5
#include <avr/wdt.h>
6
#include <string.h>
7
#include "can.h"
8

9

10

11
int main (void) {
12

13

14
  can_t msg;
15
  
16
  msg.id = 0x777;
17
  msg.flags.rtr = 0;
18
  
19
  msg.length = 4;
20
  msg.data[0] = 0xde;
21
  msg.data[1] = 0xad;
22
  msg.data[2] = 0xbe;
23
  msg.data[3] = 0xef;
24

25
can_init (BITRATE_250_KBPS);
26
can_disable_filter(0xff);
27
can_set_mode(NORMAL_MODE);
28

29
do{ 
30

31
can_send_message(&msg);
32
_delay_ms(500);
33

34
} while (1); 
35

36
return 0;
37
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren