Weird problem uploading to QuickStart
Phil Pilgrim (PhiPi)
Posts: 23,514
Maybe I haven't been paying attention and this is already on someone's radar, but I've encountered a strange issue uploading programs to the QuickStart board. I'm using Win XP (32-bit) and Prop Tool v1.3. What's happening is that I can upload successfully to the QS once. After that I get the dreaded "No Propeller chip found" message. At that point I have to unplug the USB cable and plug it back in to get another upload, which always works -- until I try to get a second one with the same USB plug-in.
-Phil
-Phil
Comments
Plugging in a different Prop board works fine on the MacBook Pro with BST.
As with you, this is a recent development. The only thing that has changed on my system, that I'm aware of, is that I recently installed FTDI's MProg program, and it installed an updated VCP driver (v2.8.24.0, 4/10/2012).
-Phil
I've also learned to restart my system when things getting really wacky. In the days since I've done that the problem hasn't returned, but I haven't done a heavy amount of coding, either.
-- Gordon
You need the magic resistor. here
Edit: stupid iPad ate the link....I'll fix it once I get my cat off my laptop!
Add the resistor, life will be good!
I plan on soldering in a permanent resistor...someday. The header addition is easy but not very fault resistant.
-Phil
I submit to thee these questions three.
1. How long does it take for the Propeller boot loader code to start after hard reset (that is before it asserts TX P30) ?
2. Can you guarantee that the non-driven propeller/buffer oscillator input node will not cause garbage on P30 from reset to bootload start?
3. Is it possible to deterministically ensure the PC's serial port receive buffer is flushed *just in time* for the loader code to assert TX P30?
Other boards that are just as sloppy as the QS don't have this problem. What makes the QS any different from, say, a Prop Demo board, which also lacks a pull-up on P30? The only thing I can think of is that buffering P30 without a pull-up creates more noise during reset float than just the P30 pin driving the FT232R. (At least they got it right on the Prop BOE, which has the pull-up and is one of the nicest, most well-designed boards that Parallax has ever done.)
-Phil
The demo board doesn't have the buffer on it, and the FT232 inputs have 200K pull-ups. I.E. No potential oscillator for 100ms from reset to bootloader start.
Referring to FT232R table 3.4 ... "When used in Input Mode, the input pins are pulled to VCCIO via internal 200kΩ resistors. These pins can be programmed to gently pull low during USB suspend (PWREN# = “1”) by setting an option in the internal EEPROM."
Thanks,
-Phil
It seems to be exacerbated by the size of the program I'm loading to it, small programs don't normally trigger it. It has to be a timing issue, because the chip does reset, it just then loses its serial connection before it can be written to
At first glance it looks like the resistor may be going from pins 35 and 38 but upon looking closer it appears that it is really between pins 33 and 38. To prevent any mistakes the pin numbers should probably be noted as well. From reading through these posts it sounds like adding a 10K to 100K resistor across these pins as a pull-up should prevent any issues. I just picked up a couple Quickstart boards and will probably install a resistor in the pads next to the 40-pin connector.
If the issue didn't really show up before and is mainly occurring on Windows system I wonder if any of the recent Windows patches or security fixes have affecting any of the timing or may be a contributing factor in why it is happening now.
Robert
The other is a work machine. Both work perfect with my protoboard and I've never seen this issue.
I'm not 100% sure how the tool works, but I think the prop tool is not waiting long enough for the prop to return the propeller chip version, which is how it will identify which com port the prop is on. If it is taking a few mS longer to pull that pin down low, or to hold it low?
@ MikeGreen .... new fetures are always welcome to the small QS board
Other than the new VCP driver, I have not upgraded WinXP in ages. (Automatic upgrades is off. If it works, don't mess with it.) Perhaps the recent spate of problems can be laid to the weather which, here at least, is a lot warmer than it's been in months. A higher ambient temperature brings changing RC clock speeds and raises the noise floor, so it could be a factor.
-Phil
QS Pull-up doesn't help?
There is a parameter in Propeller-Tool version 1.3 software for adjusting the delay from reset to load start. Have you tried that?
Also what are the specs on your CPU Frequency/Cache/#Cores?
Laptop
2.6ghz, dual core, win7 32bit, 3.25gb of usable ram, I don't know the cpu cache for this off of the top of my head
Desktop
3ghz, dual core, win7 32bit, 3.25gb of usable ram, 6144kb of L2 cache
The old magic resistor trick! Would you believe I've been seeing this for months? On both the 32K quickstart and the 64k quickstarts. I didn't narrow it down to being exclusive to the quickstart. I thought it was a bug in propforth, even though Sal assured me likelyhood was very low. It happens intermittently, usually on the big desktop rig, but has also happened on the junky old terminal PC's. Re-trying and re-plugging the USB fixes it, so the work around was liveable.
Thanks for pointing this out.
Either way, as soon as I downloaded version 1.3, the problem went away without adjusting the Post-reset Delay from the factory default setting of 90mS. Parallax must have experienced this too and added that value to their gui, so IMHO anyone that is experiencing this they should first download the prop tool version 1.3 here
http://www.parallax.com/Portals/0/Downloads/sw/propeller/Setup-Propeller-Tool-v1.3.zip
and try using that, before soldering to the board.
I have a program that was consistently giving me the "prop not found" error with the quick start board (the program is about 27000kb), and by consistently I mean 2 out of every 3 times it would fail on at least the first attempt to send data to it. I tried it 15 times and it worked the first time, each time with the prop tool version 1.3 and the default Post-reset delay setting of 90mS.
-Phil
Guess is this is a lesson in unintended consequences...
The buffer chip solves one problem, but causes another...
I'm back to thinking that 1k resistors between Prop chip and FT232 is a simpler solution than this buffer chip.
Are people using a 10k pullup resistor? Seems like 1 meg or 100k should be enough and then allow P30 and P31 to remain more general purpose.
If I'd known this was a Phil approved solution earlier, I would have encorporated it into our Merlin and Merlina plugin boards for Quickstart... This might be something that future plugin board designers might want to think about...
I'm also curious if Parallax and others never noticed this problem because they always tested with code that started a serial driver that forced P30 high and the pin capacitance kept the pin high during rebooting...
#1 - Hey, these touch buttons are funky, how do we get them to work reliably
#2 - Hey, I only have a 32KB EEProm? What's up with that??
#3 - I can't reload my Quickstart, I need to unplug it and then plug it back in before it' recognized.
#4 - What do I need to do to power Quickstarts externally without letting out the smoke???
#5 - Duane's showing of again with all the things he's making his Quickstart do!!!
Add the resistor either locally or globally!!
You make it sound like that's a reason to stop folks from asking about it. It's not like this is a company project meeting, and everyone was informed and obligated by terms of employment to keep up to date. It's the exact opposite. Also, since Phil is the OP, anyone of lesser skill, experience, or time spent on the forums is likely to have the same question.
The only stupid question is the one you didn't ask.
-Phil
Anyway, this question will continue to come up, potentially every time somebody gets a new quickstart. The more times it gets brought up, the quicker it will get answered next time, which is the intended function of the forums. This is NOT something folks are suppose to "just know". The alternative would b to modify the quick production design which would break the "not a serial port" option and add cost to a loss leader. This was a design decision, we just got to go with it. This does NOT necessarily indicate a change to the quickstart design, as multiple hardware versions in the filed has its own (potentially worse) issues. Maybe just shipping the board with a 100k resistor in header 33 and 38 or even a note suggesting the user do this would be fine.
This is actually a good thing, as it shows us the pros and cons and consequences of floating pins. My massive brain continues to grow.
-Phil