First, thanks SparkFun for the excellent shifter and fast service/delivery. You guys got a great site going for the hobbiests/students who need these types of services (which I am sure you know already).
OK, I see alot of posts from people who know a heck of alot more than I do about these types of devices. I am having an issue with the [RS232 Shifter SMD - it could be software related but I am not very certain and would like to rule out the shifter; if I can get some opinions from here to do so it would be of tremendous help.
Here it goes; the shifter is hooked up to a PSP (sony playstation portable) headphone jack on one end and a AMD based winXP machine on the other, which means
2.50V (measured this) VCC and ground are hooked to the PSP.
I am able to receive from the PSP accurately at 115200bps, but I must reduce the rate to 9600bps to be able to send and receive. Intermediate speeds (19600, 56k etc) seem to produce gibberish in both directions.
Also, just looking at it: when I send data at the high speed, both LED’s blip (not bright like it does when I send at 9600 or receive at high speed)
Others using different boards (max 3232/232 based) dont seem to be having any issues with the software, and as you may have guessed my skill/intuition when dealing with these protocols is far from being able to see any simple solution to my problem.
Thanks Leon, as far as I can see it uses a transistor array “trick” (“little IC for level translation and logic inversion on the SMD Shifter board”) instead of a MAX based solution.
The Rx/Tx on the PSP kinda has to run at 2.5V, putting it any higher could be a very bad/costly thing, although I’d love to try a higher voltage it would be cheaper/simpler to build a different converter in the end - although if the problem turned out to be something simple on the PC end of the wire then it would be a waste of time trying to build something else.
Here is their product description:
The smallest and easiest to use serial conversion circuit on the market! This board has one purpose in life - to convert RS232 to TTL and vice versa (TX and RX). This will allow a microcontroller to communicate with a computer. Shifter SMD is powered from the target application and can run at any voltage! That’s right - power the board at 5V and the unit will convert RS232 to 5V TTL. Power the board at 2.8V and the Shifter board will convert RS232 to 2.8V CMOS TTL. Includes two indicator LEDs for TX and RX. Runs from 300bps up to 115200bps.
Whether its only supposed to work at 5V and 2.8V exclusively (TTL, CMOS TTL) is beyond me though it infers it shouldnt be an issue. My issue stems from the fact that stuff I send from the PC is never recognized at higher than 9600bps, but stuff sent back from the application has no problems at the highest speed.
Sorry about that. The SMD Shifter is just a trick to get TTL level logic to talk to RS232 com ports on a computer. I never thought it would work above 57600bps, but the Shifter preforms wonderfully up to 115200bps using 5V and 3.3V circuits.
Now you’re really pushing it to the limits at max speed (115200) at a pretty low voltage (2.5V). I’ve never worked that low so I’ve never tested the shifter that low. Sounds like it doesn’t work. Let me know if you need to return it.
Leon: if I had standard RS-232 levels coming out of the unit I wouldnt need a chip at all… (unless I’m totally missing what you just said)
Actually 9600 should be bearable when I need 2 way comms off it, I also have other options like on device USB and wLAN for the things that really need hi-speed 2way. I simply wanted to be absolutely certain it was the hardware instead of delving into the software that someone else wrote.
As I said, since I am able to receive very well at 115200 it works out fine when I need it to only log messages from the PSP.
Thanks for you generous offer Nathan, although I wont be taking you up on it. Could you recommend any other simple (ie: premade or easy to assemble without going crazy looking for parts) type solutions that might fit this application? As much as I enjoy fiddling I have never had much luck building Parallel or Serial interface projects so they actually work in the end…
These are the current solutions that others are/have been using: (and also why I took the $9 ready built instead of building it myself!)
(Im pretty certain I have a 3232 here already, perhaps I should track it down and find a perf board and some caps… and hope I am given luck on the day I build it too)
Looking at the schematic, I would think you would have more problems sending data to the PC because of the charging and discharging of the capacitor. However, you are getting good data to the PC at 115kbs. Going from PC to PSP, the PC is just driving the board’s transistor to saturation. I would expect that it should work even better than the PSP to PC direction.
I take it that both LEDs DO NOT light when the PSP is sending data to the PC but DO light when the PC is sending data to the PSP. That probably means that the PSP is echoing the data back to the PC. Maybe you should disconnect the PSP’s TX and RX lines, connect the TX and RX lines of the board together (loopback mode), and send data from the PC at 115kbs to make sure that the board will work at that speed.
Looks like all I have handy is the MAX232A and MAX233A (and 3322/3323) - looking at the [specs it appears these are only good for 5V applications (and at least one of them is probably shot due to previously mentioned luck with these types of projects) although as you say they should be adaptable (after some reading at any rate).
If you could do me a huge favor and let me know if the 232A will suffice as a replacement for the 3232 in this circuit:
when I send to the PSP, both lights blip very dimly; when I receive from the PSP the RX actually lights nice and bright. Ill give this loopback a go in a second.
OK, hooked to the PSP as the power source I removed and shorted Rx/Tx here is the results:
-at 9600, the lights both ligh nice and bright, and the termial app (teraterm) which is not set to echo puts the characters I type on the screen
-at 57kbps, the lights both light, about 1/2 of the brightness (assuming it hits the same voltage but much faster off/on/off) and echo is fine
-at 115kb, the lights both light about 1/4, echo is fine.
-removed the short, only the Tx lights when I type in teraterm (of course, no echo)
The PC can talk to itself at all speeds properly at 2.5V, still the PSP is not receiving anything in any setting other than 9600… looks like it may be to my benefit to double check the code JiC
Your testing indicates that the level converter does work well at 115kbs at 2.5v. That was my main concern. Seeing that the PC to PSP conversion is so straight forward, I doubt replacing the unit with one based on a MAXxxx would make any difference as the PSP is looking for 0/2.5v transistions. That is exactly what you’re getting with the transistor being driven by the PC.
I put the question to the PSPLink thread over there (this is the program I am trying to communicate with) to see if it is an issue they hadnt resolved. Perhaps there is a way I can set up the term program they have to send slower but receive fast (not sure if async is all that do-able on serial, though I dont really see why not)
Thanks for pointing that out riden, makes sense and reinforces the thought that I should be looking to the code.