wait for UART Tx completion before switching baud rate at PTS
diff --git a/firmware/src_simtrace/card_emu.c b/firmware/src_simtrace/card_emu.c
index cc5fb02..5044bea 100644
--- a/firmware/src_simtrace/card_emu.c
+++ b/firmware/src_simtrace/card_emu.c
@@ -454,6 +454,7 @@
 
 	switch (ch->pts.state) {
 	case PTS_S_WAIT_RESP_PCK:
+		card_emu_uart_wait_tx_idle(ch->uart_chan);
 		/* update baud rate generator with Fi/Di */
 		emu_update_fidi(ch);
 		/* Wait for the next TPDU */
diff --git a/firmware/src_simtrace/card_emu.h b/firmware/src_simtrace/card_emu.h
index 2b2d3f1..df23ce4 100644
--- a/firmware/src_simtrace/card_emu.h
+++ b/firmware/src_simtrace/card_emu.h
@@ -35,3 +35,4 @@
 int card_emu_uart_update_fidi(uint8_t uart_chan, unsigned int fidi);
 int card_emu_uart_tx(uint8_t uart_chan, uint8_t byte);
 void card_emu_uart_enable(uint8_t uart_chan, uint8_t rxtx);
+void card_emu_uart_wait_tx_idle(uint8_t uart_chan);
diff --git a/firmware/src_simtrace/mode_cardemu.c b/firmware/src_simtrace/mode_cardemu.c
index 098e0d6..0f0d7dc 100644
--- a/firmware/src_simtrace/mode_cardemu.c
+++ b/firmware/src_simtrace/mode_cardemu.c
@@ -97,6 +97,12 @@
 	}
 }
 
+void card_emu_uart_wait_tx_idle(uint8_t uart_chan)
+{
+	Usart *usart = get_usart_by_chan(uart_chan);
+	wait_tx_idle(usart);
+}
+
 /* call-back from card_emu.c to enable/disable transmit and/or receive */
 void card_emu_uart_enable(uint8_t uart_chan, uint8_t rxtx)
 {