Hello! I'm working on a custom board with two TCAN4550 connected to the same SPI bus of nRF52832, but can't read any register. I've tried all the lowest registers 0x0000, 0x0004, 0x0008 and 0x000C which should work even with crystal problems, but i'm always getting 88000000 as response. I tried everything from 500kHz to 18MHz bus speed,CPOL=0 and CPHA=0 (but for troubleshooting I've tried all SPI modes).
I see that the correct bytes are sent from the nRF52832 with my logic analyzer (saleae pro 8), but the response is almost always 88000000 (sometimes 00000000). If I disconnect the 12V, I'm getting FFFFFFFF, so I'm suspecting the TCAN is responding to something. Is this an error code? Since the messages are sent in 4 bursts of 8 bits, the 88000000 response mean bits 31 and 27 are set? What errors does that indicate?
Some output from the analyzer:
0x61/0x00 0x00/0x00 0x0C/0x00 0x01/0x00 0xFF/0x00 0xFF/0x00 0xFF/0x00 0xFF/0x00
0x41/0x00 0x00/0x00 0x0C/0x00 0x01/0x00 0xFF/0x00
0x41/0x00 0x00/0x00 0x00/0x00 0x01/0x00 0xFF/0x00
0x41/0x00 0x00/0x00 0x04/0x00 0x01/0x00 0xFF/0x00
0x61/0x00 0x08/0x00 0x08/0x00 0x01/0x00 0x12/0x00 0xEF/0x00 0xCD/0x00 0xAB/0x00
0x41/0x00 0x08/0x00 0x08/0x00 0x01/0x00 0xFF/0x00
0x41/0x00 0x08/0x00 0x20/0x00 0x01/0x00 0xFF/0x00
0x41/0x00 0x00/0x00 0x00/0x00 0x02/0x00
0x61/0x00 0x00/0x00 0x0C/0x00 0x01/0x00 0xFF/0x00 0xFF/0x00 0xFF/0x00 0xFF/0x00
0x61/0x00 0x08/0x00 0x30/0x00 0x01/0x00 0x00/0x00 0x00/0x00 0x00/0x00 0x00/0x00 0x41/0x00 0x08/0x00 0x30/0x00 0x01/0x00 0xFF/0x00
0x41/0x00 0x08/0x00 0x20/0x00 0x01/0x00 0xFF/0x00
0x61/0x00 0x08/0x00 0x20/0x00 0x01/0x00 0x00/0x00 0x00/0x00 0x00/0x00 0x00/0x00
0x41/0x00 0x10/0x00 0x18/0x00 0x01/0x00 0xFF/0x00
I ported your official driver to Zephyr RTOS, but after failing to read even the lowest registers, I focused on simple write/read commands to figure out if it was hardware or software. But now I'm stuck.
We had a few hardware problems in the beginning. We first assembled with a 40MHz resonator (OT201640MJBA4SL) with wrong footprint instead of the crystal we intended to use (ABM11W40.0000MHZ8B1UT).
Resonator:
1 Tri-state 2 GND 3 OUTPUT 4 VDD
Footprint:
1 OSC1 2 GND 3 OSC2 4 GND
Don't think it damaged the TCAN4550?
My assembly person replaced the resonator with the proper crystal on his board, and he could see it oscillating fine. We work in different countries, and I don't have the crystals. Instead I removed the resonator and caps, soldered OSC2 to GND and use my signal gen set at 40MHz 3.2Vpp offset 1.6V to OSC1. No luck. But even with a faulty or missing oscillator, the lowest registers should be accessable anyway?
Next, the standard drive strength of nRF52832 was causing too slow rise time for SCK (measured to about 40ns). We increased it, and now it's measured to rise about 8ns (within 10ns spec). Still no improvement. I take it the rise time spec 10ns is measured between the points of 0.3*VIO (max L) and 0.7*VIO (min H)? Anyway, no luck.
I measure:
VSUP: 12.26V
VCCOUT: 5.05V (drops to 0V after 4 min, within spec)
FLTR: 1.498V (drops to 0V after 4 min, within spec)
INH: 12.26V (not connected)
STDBY: 0V
nINT: 0V
My setup is:
VIO: 3.3V with 100nF to GND.
INH: floating.
VSUP: 12V with 100nF/100nF/10uF to GND.
FLTR: 330nF to GND.
VCCOUT: 10uF to GND.
WAKE: to MCU output with 2x 10nF to GND (pin set LOW at boot in software). The functionality was misunderstood, in next revision this will be tied to GND without caps.
SCLK / SDI->MOSI / SDO->MISO: SPI of MCU (no other SPI slaves on bus).
CS: two independent inputs of MCU (no pull-ups).
GPO1: input of MCU (no pull-ups/downs).
GPO2: input of MCU (no pull-ups).
INT: input of MCU (no pull-ups).
RST: output of MCU (no pull-down)
WKRQ: input of MCU (no pull-ups).
CANH/L: 2x 60.4R tied together with 4.7nF to GND.
CANH/L: PESD1CAN tied to GND.
Crystal: ABM11W40.0000MHZ8B1UT
C: 10pF
