Forum: FPGA, VHDL & Co. OPencore CAN: empfangene Nachricht testen


von Keller T. (fabito)


Lesenswert?

Hi zusammen,
Ich habe erfolgsreich mit folgende Quelcode under Linux CAN Botschaft 
gesendet können.
Also(Linux --- > Laptop mit CAN Analyser)

---------MemoryMap CAN = 0x3000  -----------------------
1
#define CAN_CONTROL_REG 0x00
2
#define CAN_COMMAND_REG 0x01
3
#define CAN_STATUS_REG 0x02
4
#define CAN_INTERRUPT_REG 0x03
5
#define CAN_ACCEPTANCE_CODE 0x04
6
#define CAN_ACCEPTANCE_MASK 0x05
7
#define CAN_BUSTIMING_0 0x06
8
#define CAN_BUSTIMING_1 0x07
9
#define CAN_TX_IDENT_0 0x0A
10
#define CAN_TX_IDENT_1 0x0B
11
#define CAN_TX_DATA_1 0x0C
12
#define CAN_TX_DATA_2 0x0D
13
#define CAN_TX_DATA_3 0x0E
14
#define CAN_TX_DATA_4 0x0F
15
#define CAN_TX_DATA_5 0x10
16
#define CAN_TX_DATA_6 0x11
17
#define CAN_TX_DATA_7 0x12
18
#define CAN_TX_DATA_8 0x13
19
#define CAN_RX_IDENT_0 0x14
20
#define CAN_RX_IDENT_1 0x15
21
#define CAN_RX_DATA_1 0x16
22
#define CAN_RX_DATA_2 0x17
23
#define CAN_RX_DATA_3 0x18
24
#define CAN_RX_DATA_4 0x19
25
#define CAN_RX_DATA_5 0x1A
26
#define CAN_RX_DATA_6 0x1B
27
#define CAN_RX_DATA_7 0x1C
28
#define CAN_RX_DATA_8 0x1D
29
#define CAN_CLK_DIVIDER 0x1F
30
.......
31
32
#
33
# Can Initialisation from Linux PC
34
#
35
#
36
./regWr 0x3000 b 0x1F                                  
37
./regWr 0x3004 b 0x72                                   
38
./regWr 0x3005 b 0x58                                     
39
./regWr 0x3006 b 0x00                                    
40
./regWr 0x3007 b 0x7F                                  
41
./regWr 0x301F b 0x05                                     
42
./regWr 0x3000 b 0x1E                                   
43
./regWr 0x3003 b 0x04                                     
44
./regWr 0x3002 b 0x04 
45
46
#
47
#
48
# Cand Send Message from Linux PC
49
#
50
#
51
./regWr 0x300A b 0x08
52
./regWr 0x300B b 0x48
53
./regWr 0x300C b 0x09
54
./regWr 0x300D b 0x09
55
./regWr 0x300E b 0x08
56
./regWr 0x300F b 0x08
57
./regWr 0x3010 b 0x07
58
./regWr 0x3011 b 0x07
59
./regWr 0x3012 b 0x06
60
./regWr 0x3013 b 0x06
61
./regWr 0x3001 b 0x01

Nun versuche ich ohne Erfolg seit gestern von CAN Analyser gesendete 
Botschat under Linux zu sehen.

1) werden Tx Register als Rx Register zum empfangen genutz oder bin ich 
falsch ?
2) Was soll ich nach der Initialisierung machen um die gesendete CAN 
Botschaften zu sehen.


Here CAN_REGISTERS Dateien Inhalt. Sieh man keine Rx Registers Adresse
.....
1
/* This section is for BASIC and EXTENDED mode */
2
wire we_acceptance_code_0       = cs & we &   reset_mode  & ((~extended_mode) & (addr == 8'd4)  | extended_mode & (addr == 8'd16));
3
wire we_acceptance_mask_0       = cs & we &   reset_mode  & ((~extended_mode) & (addr == 8'd5)  | extended_mode & (addr == 8'd20));
4
wire we_tx_data_0               = cs & we & (~reset_mode) & ((~extended_mode) & (addr == 8'd10) | extended_mode & (addr == 8'd16)) & transmit_buffer_status;
5
wire we_tx_data_1               = cs & we & (~reset_mode) & ((~extended_mode) & (addr == 8'd11) | extended_mode & (addr == 8'd17)) & transmit_buffer_status;
6
wire we_tx_data_2               = cs & we & (~reset_mode) & ((~extended_mode) & (addr == 8'd12) | extended_mode & (addr == 8'd18)) & transmit_buffer_status;
7
wire we_tx_data_3               = cs & we & (~reset_mode) & ((~extended_mode) & (addr == 8'd13) | extended_mode & (addr == 8'd19)) & transmit_buffer_status;
8
wire we_tx_data_4               = cs & we & (~reset_mode) & ((~extended_mode) & (addr == 8'd14) | extended_mode & (addr == 8'd20)) & transmit_buffer_status;
9
wire we_tx_data_5               = cs & we & (~reset_mode) & ((~extended_mode) & (addr == 8'd15) | extended_mode & (addr == 8'd21)) & transmit_buffer_status;
10
wire we_tx_data_6               = cs & we & (~reset_mode) & ((~extended_mode) & (addr == 8'd16) | extended_mode & (addr == 8'd22)) & transmit_buffer_status;
11
wire we_tx_data_7               = cs & we & (~reset_mode) & ((~extended_mode) & (addr == 8'd17) | extended_mode & (addr == 8'd23)) & transmit_buffer_status;
12
wire we_tx_data_8               = cs & we & (~reset_mode) & ((~extended_mode) & (addr == 8'd18) | extended_mode & (addr == 8'd24)) & transmit_buffer_status;
13
wire we_tx_data_9               = cs & we & (~reset_mode) & ((~extended_mode) & (addr == 8'd19) | extended_mode & (addr == 8'd25)) & transmit_buffer_status;
14
......
auf alle Hinweise würde ich mich freuen .

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

keller thomas schrieb:
> Ich habe erfolgsreich mit folgende Quelcode under Linux CAN Botschaft
> gesendet können.
Auf welcher Hardware läuft der CAN-Core und das Linux?
Welchen CAN-Core verwendest du?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.