General-purpose I/O pins
Every industrial project needs general-purpose I/O pins. In addition, many projects need the ability to read or generate precision pulses. These are requirements that application processors can do, but not nearly as well as MCUs. Application processors only have so many pins, and by the time you add all the external interfaces, general-purpose I/O pins (GPIO) can be hard to find. Again, it’s the MCU to the rescue.
The Freescale S08JM is a full speed USB device-enabled 8-bit MCU that includes up to 51 GPIO pins, a 12-bit analog to digital converter (ADC), and eight timers. Using this device, you could be generating four PWM signals reading four PWM signals, and reading up to 12 channels of 12-bit analog signals all at the same time. Then you can preprocess the data in the MCU and send the results to application processor’s OS with the USB interface. Using the free JM boot loader available from Freescale, you could even program the JM part from the application processor. Think of the JM series of USB-enabled MCUs as I/O extensions to the i.MX family of application processors. The free USB device firmware for the S08JM includes a USB bootloader, USB HID stack, generic USB endpoint stack, and a USB CDC stack for supporting virtual serial devices. Using LibUSB you can develop HID and generic interfaces in Linux or Android to communicate with the JM from a user space application. With the CDC serial stack, any modern Linux kernel can communicate with the JM over a virtual serial port.
Fig2: S08JM family block diagram.
Fig 3: USB stack with PHDC support.