The SDCARD Data0-3 was design and impedance controlled, but i still have errors when push data into SDCARD.
how to check if PCB traces is correct 90 Ohm?
schematic is attached.
What makes you think the PCB impedance would cause issues? Are you 100% confident the SD card is ok and/or the protocol used to access it? i.e. are you loading/reading data faster than the card is capable of?
Error codes are usually 'described' by the programming code manual - what does yours say about that code? Sounds like a timing issue - maybe try a low data rate? or a delay routine?
thank you, change data rate fix those errors.
in addition, remove the TVS can fix the error even when data rate is high. i will test the TVS datasheet.
You could use your original data rate but try an SD card with a guaranteed data rate to match - just pointing out that those cards come in differing 'speeds' and you might not have the best. That said, if your software can't detect the difference between the specific card(s) being used then opting for the slowest data transfer rate is the only solution.
A TVS diode can have a rather high capacitance. This will distort your signal(s) and thus lead to unreliable communication with the SD card.
There are dedicated low-capacitance TVS diodes for high speed communication, seee e.g. here or here or do your own search for "high-speed data tvs diode"