I'm currently working on a MCB08 module (http://www.embeddedsys.com/subpages/products/mcb08.shtml) which has a MC9S08GB60 as its core.
My application needs to use both SCI interfaces available. The simplest requirement would be to pass data received from one SCI to the other.
The MCB08 comes with one DB9 port, which I am successfully using at 230400 baudrate with SCI1. When I try to use SCI2 (RxD pin, no DB9), the data I receive seems to match the amount I <should> be receiving, but the data itself is non-sensical. The grounds are shared and the SCI2 configured properly.
I have tried this with both polled and interrupt methods. I have tried directly connecting the RxD to the other module's (not freescale) Tx pin, which uses the same voltage logic levels. I have tried using a level-shifter (MAX3232) and DB9 connection between the MCB08 and the other module. I have tried a completely different module (with all of the above variations). It is always the same. I receive characters when I should, but the characters are wrong. I've tested the functionality of the modules using my computer's serial port, and my computer receives the right data. One of the modules uses ~38000 baudrate while the other uses 9800 baudrate. I have also tried inverting Rx/Tx pins of the DB9 at every possible time.
One interesting note is data that I send out from SCI2 is similarly garbled (with my computer receiving it).
The MCB08 has jumpers that can choose which SCI port uses the onboard DB9 connector. In the above tests, the problematic SCI of course does not use this connector. What baffles me is, if I set SCI2 to use the on-board DB9 using those jumpers (without using SCI1), everything works perfectly. Whenever I try to use the pins themselves do I run into trouble.
I'm not sure where to go from here. Any help would be appreciated.