I was using TPIC1021 in receive mode, and getting lots of data corruption.
To investigate I looked at the bus signal and the RXD signal on the scope and saw nothing unusual - nice slew-rate limited signal with no ringing on the bus, nice square edges on RXD.
I moved the connection from the UART to a capture input of my MCU, and found lots of pulses at 10µs intervals, whereas they should be 104µs for the 9600 baud test signal I was using.
I removed the TPIC1021 and replaced it with two resistors (27k. 10k) to divide the bus voltage from 12V to 3.3V, and it now works perfectly.
I can only think that the TPIC1021 is taking some power supply noise and amplifying it to make valid signals that are too short to see on a 20MHz digital scope.
Any thoughts/suggestions?
If not, I'll stick with the two resistor design - cheaper than a TPIC1021!