Odd startup issue on Propeller USB protoboard
RobotWorkshop
Posts: 2,307
I've built up two identical Propeller USB protoboards for a robot project I am working on. One of them works perfectly and starts up fine. The other board won't start running unless I plug in the USB cable from my host PC. When I do that it will start running the code I've downloaded into the EEPROM onboard. As long as the USB cable is plugged in I can use the reset button to restart the code. If I unplug the USB cable it will keep running but if I press reset it stops and won't load/run the code. It will only start with the USB connected. I haven't connected anything to the I/O pins used for the EEPROM or the onboard USB. I'm going to keep looking over my wiring in case I have some short that I haven't noticed yet.
Has anyone else had a similar startup problem? At this point I'm thinking about cutting the trace from the transistor at the output of the FTDI chip to see if that is holding reset low somehow.
Robert
Has anyone else had a similar startup problem? At this point I'm thinking about cutting the trace from the transistor at the output of the FTDI chip to see if that is holding reset low somehow.
Robert
Comments
The easiest solution is to check for INA[ 31 ] == 1 and only use the serial I/O routines on pins 30 and 31 if true.
The program that I am loading on the board now does start PST in the background and I was using it to report back to the PC some values to help verify the operation of the board and also with developing the program for it. As soon as I commented out the routine to start PST and re-loaded the code the board starts up ok. This is the first time I've run across the issue but will remember it if this comes up again.
I thought it was odd since both of these boards are identical and are the USB version of the protoboard with onboard FTDI chips.
As I understand it just check pin 31 for a high value and if it is high then start the PST. If low that means the PC isn't connected and there is no point in trying to send data back to the PC anyhow...
Do you happen to know if there are any mods to the onboard USB circuit to eliminate the "sneak" current? I certainly don't might modifying the boards so it would come up and run either way.
Robert
The simplest mod you can make is to put pullups on A30 and A31. This will keep the FT232R powered at all times, rather than intermittently when the serial object is started. It's the leading edge of A30 powering the FTDI chip that sends a pulse through DTR and resets the Prop, again and again. Parallax has since begun adding a 74LVC buffer in their new designs between the FTDI chip and the Prop to isolate the two power supplies and keep this from happening.
-Phil
-Phil
Hello Phil,
So, as I understand it the problem is that the FTDI chip is normally only powered by the USB cable from the PC (or Mac). Without that cable pluged in the FTDI chip would not have any power and basically be off. At that point when the PST object tries to send data back to the host the voltages on the RX and TX lines are enough to power up the FTDI chip which ends up causing it to trigger the DTR line and a reset to the prop starting the whole cycle over again.....
Do you have any recommendations on the value for a pullup (4.7K, 10K, 22K, etc) and if they are needed on bith A30 and A31? There seems to be several different possible solutions. If it works well with just pullups added that is an easy fix. Even breaking the RX line and adding a diode should be easy to do. I've got all the parts on hand.
Going forward since this could be an issue with some other boards as well I may just leave out the PST object all together and only use it for initial debugging of a program. It's just that it is nice to have that available and at any time plug in the USB, start up the terminal, and watch data come in from the propeller chip...
Robert