My setup is Teensy 4.1 (same CPU as 4.0),
2x chinese VD230 CAN and breadboard setup with twisted pairs.
Everything is powered up from Teensy so first I will try to change power supply, than I will try shorten twisted pairs which are currently about 30cm long and If it not help I will try to remove both onboard 120ohm resistors. However my problem is that sampling is loo long. I have only 20pins/s. Is that OK? Everyone has more than 1000pins/s Also I cant autodetect CEM PN and if I dissable autodetection I am getting random CEM PN so If I want to start sampling I need to bypass PN check by hardcoding PN inside sourcecode. My CEM PN is 30728542. I expect that this is noise/power/chineseIC related issue so I will try to fix that things first. However someone facing similar problem should find my post helpful. I cant find any evidence about slow sampling...
Unable to find PN with unmodiffied sourcecode:
Code: Select all
CPU Maximum Frequency: 600000000
CPU Frequency: 600000000
Execution Rate: 600 cycles/us
PIN bytes to measure: 3
Number of samples: 2
CAN low-speed init done.
Reading part number from ECU 0x40 on CAN_LS
CAN_LS ---> ID=000ffffe data=cb 40 b9 f0 00 00 00 00
CAN_LS ---> ID=000ffffe data=cb 40 b9 f0 00 00 00 00
CAN_LS <--- ID=03600028 data=00 08 f0 64 30 00 01 00
CAN_LS <--- ID=00e01008 data=03 e5 98 00 00 85 4c 00
CAN_LS <--- ID=01601422 data=00 00 00 01 34 90 02 b3
CAN_LS ---> ID=000ffffe data=cb 40 b9 f0 00 00 00 00
CAN_LS <--- ID=02202262 data=00 00 03 80 58 00 40 00
CAN_LS ---> ID=000ffffe data=cb 40 b9 f0 00 00 00 00
CAN_LS <--- ID=00c00402 data=83 10 00 00 00 00 00 16
CAN_LS <--- ID=0131726c data=00 8c d4 d2 80 00 00 3f
CAN_LS ---> ID=000ffffe data=cb 40 b9 f0 00 00 00 00
CAN_LS <--- ID=02c1302a data=01 84 00 b3 13 08 80 b7
CAN_LS ---> ID=000ffffe data=cb 40 b9 f0 00 00 00 00
CAN_LS <--- ID=01a0600a data=80 00 00 00 00 1e 40 00
CAN_LS <--- ID=01a0600a data=00 00 00 00 00 1e 40 00
CAN_LS ---> ID=000ffffe data=cb 40 b9 f0 00 00 00 00
CAN_LS <--- ID=01601422 data=00 00 00 01 34 90 02 b3
CAN_LS <--- ID=01a0600a data=80 00 00 00 00 1e 40 00
CAN_LS <--- ID=01e0162a data=40 01 00 00 06 00 00 30
CAN_LS ---> ID=000ffffe data=cb 40 b9 f0 00 00 00 00
CAN_LS ---> ID=000ffffe data=cb 40 b9 f0 00 00 00 00
CAN_LS ---> ID=000ffffe data=cb 40 b9 f0 00 00 00 00
CAN_LS <--- ID=0131726c data=00 8c d1 d2 80 00 00 3f
CAN_LS <--- ID=01e0162a data=c0 01 00 00 06 00 80 30
CAN_LS <--- ID=02202262 data=00 00 03 80 58 00 40 00
CAN_LS ---> ID=000ffffe data=cb 40 b9 f0 00 00 00 00
Can't find part number on CAN-LS, trying CAN-HS at 500 Kbps
CAN high-speed init done.
Reading part number from ECU 0x50 on CAN_HS
CAN_HS ---> ID=000ffffe data=cb 50 b9 f0 00 00 00 00
CAN_HS <--- ID=0042406c data=80 a8 00 00 e0 00 c0 0f
CAN_HS <--- ID=0042406c data=c0 88 00 00 e0 00 c0 0f
CAN_HS <--- ID=0062401e data=02 48 64 8b e1 ec 24 00
CAN_HS <--- ID=00224024 data=3b f8 00 00 13 ff d0 00
CAN_HS ---> ID=000ffffe data=cb 50 b9 f0 00 00 00 00
CAN_HS <--- ID=01600012 data=40 11 84 ba 2d 28 cb 9e
CAN_HS <--- ID=00c0402a data=1e e4 00 00 07 4a c7 ff
CAN_HS ---> ID=000ffffe data=cb 50 b9 f0 00 00 00 00
CAN_HS <--- ID=00c0402a data=1e e4 00 00 07 4a c7 ff
CAN_HS <--- ID=0042406c data=c0 8a 40 00 e0 00 c0 0f
CAN_HS <--- ID=11600002 data=d6 48 20 00 00 00 00 00
CAN_HS <--- ID=01a2402a data=00 6d 92 06 80 00 80 00
CAN_HS <--- ID=00c0402a data=1e e4 00 00 07 4a c7 ff
CAN_HS <--- ID=11600002 data=e6 48 20 00 00 00 00 00
CAN_HS <--- ID=0042406c data=c0 88 00 00 e0 00 c0 0f
CAN_HS ---> ID=000ffffe data=cb 50 b9 f0 00 00 00 00
CAN_HS <--- ID=00224024 data=3f f8 00 00 13 ff d0 00
CAN_HS <--- ID=00224024 data=3f f8 00 00 13 ff d0 00
CAN_HS <--- ID=10800006 data=00 77 00 6f 00 00 00 00
CAN_HS <--- ID=00e24026 data=00 01 60 e0 9f 00 00 00
CAN_HS ---> ID=000ffffe data=cb 50 b9 f0 00 00 00 00
CAN_HS <--- ID=11420006 data=00 00 00 1f 00 00 d2 00
CAN_HS ---> ID=000ffffe data=cb 50 b9 f0 00 00 00 00
CAN_HS <--- ID=0042406c data=80 e8 40 00 e0 00 c0 0f
CAN_HS <--- ID=00224024 data=3f f8 00 00 13 ff d0 00
CAN_HS <--- ID=00224024 data=3b f8 00 00 13 ff d0 00
CAN_HS <--- ID=00c0402a data=1e e4 00 00 07 4a c7 ff
CAN_HS ---> ID=000ffffe data=cb 50 b9 f0 00 00 00 00
CAN_HS <--- ID=00224024 data=3b f8 00 00 13 ff d0 00
CAN_HS <--- ID=00c0402a data=1e e4 00 00 07 4a c7 ff
CAN_HS <--- ID=0042406c data=c0 88 00 00 e0 00 c0 0f
CAN_HS ---> ID=000ffffe data=cb 50 b9 f0 00 00 00 00
CAN_HS <--- ID=0042406c data=40 88 00 00 e0 00 c0 0f
CAN_HS <--- ID=00224024 data=3f f8 00 00 13 ff d0 00
CAN_HS <--- ID=01a2402a data=00 9d 62 06 80 00 80 00
CAN_HS ---> ID=000ffffe data=cb 50 b9 f0 00 00 00 00
CAN_HS <--- ID=00c0402a data=1e e4 00 00 07 4a c7 ff
CAN_HS <--- ID=00224024 data=3f f8 00 00 13 ff d0 00
CAN_HS <--- ID=0042406c data=00 2a 00 00 e0 00 c0 0f
CAN_HS <--- ID=0042406c data=40 c8 00 00 e0 00 c0 0f
CAN_HS <--- ID=00e24026 data=00 01 60 e0 9f 00 00 00
CAN_HS ---> ID=000ffffe data=cb 50 b9 f0 00 00 00 00
CAN_HS <--- ID=01600012 data=80 11 94 ba 2d 28 cb 9e
CAN_HS ---> ID=000ffffe data=cb 50 b9 f0 00 00 00 00
Unknown CEM part number 0. Don't know what to do.
Resetting all ECUs.Code: Select all
CPU Maximum Frequency: 600000000
CPU Frequency: 600000000
Execution Rate: 600 cycles/us
PIN bytes to measure: 3
Number of samples: 100
CAN low-speed init done.
CAN high-speed init done.
Putting all ECUs into programming mode.
CAN_HS ---> ID=000ffffe data=ff 86 00 00 00 00 00 00
CAN_LS ---> ID=000ffffe data=ff 86 00 00 00 00 00 00
Reading part number from ECU 0x50 on CAN_HS
CAN_HS ---> ID=000ffffe data=50 88 00 00 00 00 00 00
CAN_HS <--- ID=00e24026 data=00 01 60 e0 9f 00 00 00
Part Number: 4219643968
Searching P/N 4219643968 in 54 known CEMs
Unknown CEM part number 4219643968. Don't know what to do.
Resetting all ECUs.
CAN_HS ---> ID=000ffffe data=ff c8 00 00 00 00 00 00
CAN_LS ---> ID=000ffffe data=ff c8 00 00 00 00 00 00
Code: Select all
CPU Maximum Frequency: 600000000
CPU Frequency: 600000000
Execution Rate: 600 cycles/us
PIN bytes to measure: 3
Number of samples: 100
CAN low-speed init done.
CAN high-speed init done.
Putting all ECUs into programming mode.
CAN_HS ---> ID=000ffffe data=ff 86 00 00 00 00 00 00
CAN_LS ---> ID=000ffffe data=ff 86 00 00 00 00 00 00
Reading part number from ECU 0x50 on CAN_HS
CAN_HS ---> ID=000ffffe data=50 88 00 00 00 00 00 00
CAN_HS <--- ID=00c0402a data=1e e4 00 00 07 4a c7 ff
Part Number: 7512865
Searching P/N 7512865 in 54 known CEMs
Unknown CEM part number 7512865. Don't know what to do.
Resetting all ECUs.
CAN_HS ---> ID=000ffffe data=ff c8 00 00 00 00 00 00
CAN_LS ---> ID=000ffffe data=ff c8 00 00 00 00 00 00
Code: Select all
pn = 30728542;
//pn = ecu_read_part_number_prog(CAN_HS, CEM_HS_ECU_ID);
Code: Select all
CPU Maximum Frequency: 600000000
CPU Frequency: 600000000
Execution Rate: 600 cycles/us
PIN bytes to measure: 3
Number of samples: 2
CAN low-speed init done.
CAN high-speed init done.
Putting all ECUs into programming mode.
CAN_HS ---> ID=000ffffe data=ff 86 00 00 00 00 00 00
CAN_LS ---> ID=000ffffe data=ff 86 00 00 00 00 00 00
Searching P/N 30728542 in 54 known CEMs
CAN HS baud rate: 500000
PIN shuffle order: 3 1 5 0 2 4
Initialization done.
Calculating bytes 0-2
1000 pins in 46254 ms, 21 pins/s, average response: 172 us, histogram 86 to 258 us
us: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183
[ 00 -- -- -- -- -- ]: 0 0 0 4 0 2 0 0 0 0 0 1 2 0 0 2 0 1 0 3 : latency 430369; std 606.98
[ 01 -- -- -- -- -- ]: 1 0 1 10 0 2 2 1 2 0 0 1 1 2 1 1 0 2 1 1 : latency 527620; std 584.61
[ 02 -- -- -- -- -- ]: 1 0 0 4 0 1 0 4 0 3 0 0 0 2 0 2 0 0 0 0 : latency 462291; std 595.59
[ 03 -- -- -- -- -- ]: 0 2 4 2 0 0 0 2 1 1 0 0 3 1 0 0 2 0 0 1 : latency 473535; std 583.28
[ 04 -- -- -- -- -- ]: 0 0 3 1 1 2 2 0 0 1 0 0 3 3 1 0 3 1 1 2 : latency 469260; std 585.81
[ 05 -- -- -- -- -- ]:






