Andre D'Iorio(deleted)
|
Re: CAN on i.MX6Q SABRE Lite
|
Andre D'Iorio(deleted)
07/15/2014 8:30 AM
post111059
|
Re: CAN on i.MX6Q SABRE Lite
Hi Yaron,
Try changing the following bit rate settings in hardware/can/mx35/driver.c and adding the CSCMR2 register initialization
:
/* Bitrate table for PLL3 30 MHz, desired Sample Point at 87.5% */
#define CAN_PRESDIV_50K_PLL 0x55
#define CAN_PRESDIV_125K_PLL 0x21
#define CAN_PRESDIV_250K_PLL 0x10
#define CAN_PRESDIV_500K_PLL 0x08
...
void device_init(int argc, char *argv[])
{
int opt, hwi_can0, hwi_can1;
int numcan = 0;
char *cp;
CANDEV_HWINFO can0, can1;
+ unsigned long *ccm_cscmr2_reg_ptr;
...
hwi_can0 = hwi_can1 = -1;
hwi_can0 = get_can_hwinfo(&can0, 0);
hwi_can1 = get_can_hwinfo(&can1, 1);
+ // Set up can_clk divider to 1 for better bit rate resolution
+ ccm_cscmr2_reg_ptr = mmap_device_io(4, 0x020C4020);
+ if(ccm_cscmr2_reg_ptr == MAP_DEVICE_FAILED)
+ {
+ perror("CAN REG: Can't map CCM_CSCMR2 register");
+ exit(EXIT_FAILURE);
+ } else {
+ *ccm_cscmr2_reg_ptr = 0x02B92F02;
+ }
...
Regards,
Andre
|
|
|
Kelvin Tan(deleted)
|
Re: CAN on i.MX6Q SABRE Lite
|
Kelvin Tan(deleted)
01/23/2016 1:04 PM
post115597
|
Re: CAN on i.MX6Q SABRE Lite
Hi Yaron,
I am running into the same problem. Could you please share your fixes?
Thanks
Kelvin
|
|
|