define(`TITLE', `Teensy meets "not so standard" UART configuration') define(`DATE', `2014-03-11') define(`CONTENT', ` The people at https://www.pjrc.com/teensy/index.html did a really good job with the Arduino integration Teensyduino. Thank you very much indeed. Unfortunately they missed a feature which has been integrated in the Arduino library sometimes between version 1.0.5 and 1.5.2, don'`t know when exactly: advanced UART configuration. In the documentation of `Serial.begin(...)` you see the option to give a `config` argument, where in particular you can configure the frame length, the parity and the number of stop bits. While this is certainly not a very common feature, I need it in my MeterBus projects, since communication on the MeterBus is serial communication with an even parity enabled. So far I was too lazy to put the stuff into a library, but this is required to enable even parity:

      #include <mk20dx128.h>

      // [...]

      // this is the new Arduino way of setting parity
      //Serial3.begin(2400, SERIAL_8E1);

      // this is the Teensy (Freescale K20) way:
      Serial3.begin(2400);
      UART2_C1 |= UART_C1_PE | UART_C1_M;

Find the documentation for the `UARTx_C1` register on page pp. 1055-1056, cp. 45.3.3 of the Freescale K20 manual (find that one on the Teensy homepage at https://www.pjrc.com/teensy/datasheets.html). Note: it is not enough to enable parity (setting the bit `UART_C1_PE`, you also need to increase the frame length to 9 bit by setting bit `UART_C1_M`, since the frame length seems to include the parity bit. Right, this is a hack, and maybe the Teensy people will integrate it into the library the other day, but at least for the moment it works for me. ')