iso7816_4.c: Moved around lines, only sniffer works
diff --git a/firmware/src_board/iso7816_4.c b/firmware/src_board/iso7816_4.c
index 59598ca..0f27657 100644
--- a/firmware/src_board/iso7816_4.c
+++ b/firmware/src_board/iso7816_4.c
@@ -137,7 +137,16 @@
     }
 
     /* Wait USART ready for transmit */
-    while((us_base->US_CSR & US_CSR_TXRDY) == 0)  {}
+    int i = 0;
+    while((us_base->US_CSR & (US_CSR_TXRDY)) == 0)  {
+        i++;
+        if (!(i%1000000)) {
+            printf("s: %x\n", us_base->US_CSR);
+              printf("s: %x\n", us_base->US_RHR & 0xFF);
+            us_base->US_CR = US_CR_RSTTX;
+            us_base->US_CR = US_CR_RSTRX;
+      }
+    }
     /* There is no character in the US_THR */
 
     /* Transmit a char */
@@ -148,12 +157,12 @@
                                       (1<<10)));
 
     if (status != 0 ) {
-        TRACE_DEBUG("******* status: 0x%" PRIX32 " (Overrun: %" PRIX32
+        TRACE_INFO("******* status: 0x%" PRIX32 " (Overrun: %" PRIX32
                     ", NACK: %" PRIX32 ", Timeout: %" PRIX32 ", underrun: %" PRIX32 ")\n\r",
                     status, ((status & US_CSR_OVRE)>> 5), ((status & US_CSR_NACK) >> 13),
                     ((status & US_CSR_TIMEOUT) >> 8), ((status & (1 << 10)) >> 10));
-        TRACE_DEBUG("E (USART CSR reg):0x%" PRIX32 "\n\r", us_base->US_CSR);
-        TRACE_DEBUG("Nb (Number of errors):0x%" PRIX32 "\n\r", us_base->US_NER );
+        TRACE_INFO("E (USART CSR reg):0x%" PRIX32 "\n\r", us_base->US_CSR);
+        TRACE_INFO("Nb (Number of errors):0x%" PRIX32 "\n\r", us_base->US_NER );
         us_base->US_CR = US_CR_RSTSTA;
     }
 
@@ -640,6 +649,11 @@
     Usart *us_base = usart->base;
     uint32_t us_id = usart->id;
 
+    us_base->US_CR = US_CR_RSTRX
+                | US_CR_RSTTX
+                | US_CR_RXDIS
+                | US_CR_TXDIS;
+
     if (master_clock == true) {
         clk = US_MR_USCLKS_MCK;
     } else {
@@ -653,28 +667,33 @@
                      | US_MR_PAR_EVEN
                      | US_MR_CHRL_8_BIT
                      | US_MR_CLKO
-                     | (0<<24), /* MAX_ITERATION */
+                     | US_MR_INACK  /* Inhibit errors */
+                     | (3<<24), /* MAX_ITERATION */
                      1,
                      0);
 
-    /* Configure USART */
-    PMC_EnablePeripheral(us_id);
     /* Disable interrupts */
     us_base->US_IDR = (uint32_t) -1;
 
+    /* Configure USART */
+    PMC_EnablePeripheral(us_id);
+
     us_base->US_FIDI = 372;  /* by default */
     /* Define the baud rate divisor register */
     /* CD  = MCK / SCK */
     /* SCK = FIDI x BAUD = 372 x 9600 */
     /* BOARD_MCK */
     /* CD = MCK/(FIDI x BAUD) = 48000000 / (372x9600) = 13 */
-    us_base->US_BRGR = BOARD_MCK / (372*9600);
+    us_base->US_BRGR = US_BRGR_CD(1);
+//    us_base->US_BRGR = BOARD_MCK / (372*9150);
 
     /* Write the Timeguard Register */
+//    us_base->US_RTOR = 0;
     us_base->US_TTGR = 5;
 
     USART_SetTransmitterEnabled(us_base, 1);
     USART_SetReceiverEnabled(us_base, 1);
 
+    us_base->US_RHR;
 }