#endif
/* terminate a transmission if we have */
inhibit();
- _delay_us(100);
+ _delay_us(200); // at least 100us
/* start bit [1] */
data_lo();
clock_hi();
- WAIT(clock_lo, 15000, 1);
+ WAIT(clock_lo, 20000, 10); // may take 15ms at most until device starts clocking
/* data [2-9] */
for (uint8_t i = 0; i < 8; i++) {
_delay_us(15);
idle();
/* wait start bit */
- wait_clock_lo(2000);
+ wait_clock_lo(25000); // command response may take 20 ms at most
data = recv_data();
inhibit();