Debugging guide for serial interfaces
=====================================

The aim of this chapter is to give some pointers on what to check if some issues 
are seen when using the UART, SPI, or I2C interfaces. 

Note: TI only supports how to use the serial interface modules and the TI 
supplied drivers for these interfaces. TI are not able to help on the usage of a 
non-TI device connected to I2C, SPI or UART.    

I2C
---

- The I2C interface needs an external pull-up resistor. On the LauchPad these 
  are 3.3 kOhm. 
- Measure the waveform on the I2C interface with an oscilloscope to verify the 
  SCL and  SDA levels
- Monitor the interface with a logic analyzer. Check that data on the bus is the
  same as the wanted data.
- Check the interface by reading out the device ID of the sensor. 
- Check the slave address. The I2C module uses a 7-bit address. The last 8th bit 
  is the data direction bit. This last bit is appended automatically by the 
  driver/HW. The Slave address given to the driver has therefore to be 7-bit.  
- Ensure that the readCount and writeCount is according to the register size 
  used. If the result register in the sensor is 16-bit, the readCount has to be 
  set to 2. 

SPI
---
- Monitor the interface with a logic analyzer. Compare the waveform with the 
  waveform given in the datasheet for the device you are communicating with.
- Check that the CSn is set correctly. 
- Check that the frame format is set correctly. Check if the device you are 
  communicating with uses SPO = 1 or 0 and SPH = 1 or 0. 

UART
----

- Make sure to connect the TX pin of one device to the RX pin of the other 
  device, and vice versa.  If flow control is enabled, then the same applies 
  towards the CTS and RTS pins.
- Verify all communication settings between devices, including baud rate, 
  data length, stop/parity bits and flow control.
- Evaluate the interface with a logic analyzer or oscilloscope, using an 
  analyzer tool if possible to convert the waveforms into their numerical 
  counterpart.
