Opecore CAN: Checking for Receiving Message

OP #3141086
Lesenswert?

Hi all,

I have sucessfully checked the initialisationand transmit operations of 
my CAN opencore (Linux PC --- > Laptop+CAN Analyser) with the following 
code:

---------MemoryMap CAN = 0x3000  -----------------------

#define CAN_CONTROL_REG 0x00
#define CAN_COMMAND_REG 0x01
#define CAN_STATUS_REG 0x02
#define CAN_INTERRUPT_REG 0x03
#define CAN_ACCEPTANCE_CODE 0x04
#define CAN_ACCEPTANCE_MASK 0x05
#define CAN_BUSTIMING_0 0x06
#define CAN_BUSTIMING_1 0x07
#define CAN_TX_IDENT_0 0x0A
#define CAN_TX_IDENT_1 0x0B
#define CAN_TX_DATA_1 0x0C
#define CAN_TX_DATA_2 0x0D
#define CAN_TX_DATA_3 0x0E
#define CAN_TX_DATA_4 0x0F
#define CAN_TX_DATA_5 0x10
#define CAN_TX_DATA_6 0x11
#define CAN_TX_DATA_7 0x12
#define CAN_TX_DATA_8 0x13
#define CAN_RX_IDENT_0 0x14
#define CAN_RX_IDENT_1 0x15
#define CAN_RX_DATA_1 0x16
#define CAN_RX_DATA_2 0x17
#define CAN_RX_DATA_3 0x18
#define CAN_RX_DATA_4 0x19
#define CAN_RX_DATA_5 0x1A
#define CAN_RX_DATA_6 0x1B
#define CAN_RX_DATA_7 0x1C
#define CAN_RX_DATA_8 0x1D
#define CAN_CLK_DIVIDER 0x1F
.......

#
# Can Initialisation from Linux PC
#
#
./regWr 0x3000 b 0x1F
./regWr 0x3004 b 0x72
./regWr 0x3005 b 0x58
./regWr 0x3006 b 0x00
./regWr 0x3007 b 0x7F
./regWr 0x301F b 0x05
./regWr 0x3000 b 0x1E
./regWr 0x3003 b 0x04
./regWr 0x3002 b 0x04

#
#
# Cand Send Message from Linux PC
#
#
./regWr 0x300A b 0x08
./regWr 0x300B b 0x48
./regWr 0x300C b 0x09
./regWr 0x300D b 0x09
./regWr 0x300E b 0x08
./regWr 0x300F b 0x08
./regWr 0x3010 b 0x07
./regWr 0x3011 b 0x07
./regWr 0x3012 b 0x06
./regWr 0x3013 b 0x06
./regWr 0x3001 b 0x01


Now my concern is to send a CAN Msg from CAN Analyser and see this on my 
Linux PC. what should I do ?
The first thing I noticed is there is no Rcv Registers (Then I though 
maybe it uses the same Tx by receiving)
So
1) am I rigth by considering that: Rx registers = Tx registers ? which 
registers should I check for a Message send from the CAN Analyser ?
2) In which sequencies should I set those registers in order to activate 
the receiving operation ?

within the CAN_REGISTERS Files there is no mentions about Receive 
registers
/* This section is for BASIC and EXTENDED mode */
wire we_acceptance_code_0       = cs & we &   reset_mode  & 
((~extended_mode) & (addr == 8'd4)  | extended_mode & (addr == 8'd16));
wire we_acceptance_mask_0       = cs & we &   reset_mode  & 
((~extended_mode) & (addr == 8'd5)  | extended_mode & (addr == 8'd20));
wire we_tx_data_0               = cs & we & (~reset_mode) & 
((~extended_mode) & (addr == 8'd10) | extended_mode & (addr == 8'd16)) & 
transmit_buffer_status;
wire we_tx_data_1               = cs & we & (~reset_mode) & 
((~extended_mode) & (addr == 8'd11) | extended_mode & (addr == 8'd17)) & 
transmit_buffer_status;
wire we_tx_data_2               = cs & we & (~reset_mode) & 
((~extended_mode) & (addr == 8'd12) | extended_mode & (addr == 8'd18)) & 
transmit_buffer_status;
wire we_tx_data_3               = cs & we & (~reset_mode) & 
((~extended_mode) & (addr == 8'd13) | extended_mode & (addr == 8'd19)) & 
transmit_buffer_status;
wire we_tx_data_4               = cs & we & (~reset_mode) & 
((~extended_mode) & (addr == 8'd14) | extended_mode & (addr == 8'd20)) & 
transmit_buffer_status;
wire we_tx_data_5               = cs & we & (~reset_mode) & 
((~extended_mode) & (addr == 8'd15) | extended_mode & (addr == 8'd21)) & 
transmit_buffer_status;
wire we_tx_data_6               = cs & we & (~reset_mode) & 
((~extended_mode) & (addr == 8'd16) | extended_mode & (addr == 8'd22)) & 
transmit_buffer_status;
wire we_tx_data_7               = cs & we & (~reset_mode) & 
((~extended_mode) & (addr == 8'd17) | extended_mode & (addr == 8'd23)) & 
transmit_buffer_status;
wire we_tx_data_8               = cs & we & (~reset_mode) & 
((~extended_mode) & (addr == 8'd18) | extended_mode & (addr == 8'd24)) & 
transmit_buffer_status;
wire we_tx_data_9               = cs & we & (~reset_mode) & 
((~extended_mode) & (addr == 8'd19) | extended_mode & (addr == 8'd25)) & 
transmit_buffer_status;

So I would appreciate any advice allowing me to move forward.

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