The purpose of this project was two fold: first to check the MCP2200 USB to UART converter chip and to test a strange (for me) behavior of Hyper Terminal program for Windows.
The chip works just fine. I followed the recommendations in MCP2200 data-sheet for the components. The PCB is designed for capacitors, resistors, and LEDs all in 0402 packages. If necessary, one can solder parts in larger 0603 packages on the same pads. Fixing a design flaw I added another pin to the PCB that leads +5V source outside. This would eliminate a need in the wire jumper on the middle photo.
Schematic | Proto-board | PCB layout | ||
Concerning Hyper Terminal, I needed to send binary files to the PIC. The PIC test program converts every received byte in a 2-digit HEX representation and transmits it back to the Hyper Terminal. By some reason Hyper Terminal program does not offer an option to send a binary file through. There is only option for sending text files. However, it works almost fine with binary files as well up to the following quirk: whenever a byte 0x0D is sent immediately following by a series of one or several 0x0A bytes, then all the 0x0A bytes in series are not sent (!?) The help files do not address this issue at all.
As far as I could find, this is the only combination of bytes that does not go through. Well, I know that to eliminate this problem, one should convert every byte into, say, 2-hex digit representation before sending it, but this makes the file to send twice larger. My intention was to send uncompressed audio PCM files through, and I resolved the issue by replacing every occurrence of 0x0A byte in the data that immediately follows 0x0D byte with 0x0B before sending it. This, of course, modifies the soundtrack. However, for audio applications the difference is not noticeable but reduces the file length and download time in a factor of 2.
Last modified:Mon, Jan 23, 2023.