I have a microcontroller (ARM Cortex M3/4) that can interface with USART/SPI/I2C devices that I need to interface with an Android phone (Lollipop >=v4.2). My idea is to send data through USB from the phone and convert that to USART. The control for these signals could be asynchronous, where messages are picked up by the microcontroller when available, or synchronous, where the microcontroller polls for messages on a regular basis. What is the setup that I will need to do this? Is there a better method for interfacing these two devices? I already have the microcontroller and the phone.
You can use an Android to serial adapter like this one: http://www.startech.com/Cards-Adapters/Serial-Cards-Adapters/micro-usb-serial-adapter-android~ICUSBANDR232 or http://www.pcables.com/
Both of these parts use FTDI's USB to serial interface.
As far as other solutions, I like using a serial to Bluetooth module (like this: https://www.adafruit.com/products/1588) and then just doing the connection wirelessly.