Shop OBEX P1 Docs P2 Docs Learn Events
On-PCB FTDI problems — Parallax Forums

On-PCB FTDI problems

Bobb FwedBobb Fwed Posts: 1,119
edited 2010-06-14 20:04 in Propeller 1
So I have put the FTDI circuit on my PCB and I am having an issue with it.

The rest of my project works great (the FTDI is on a removable board, along with some other components -- pictured). So i am able to program and test the propeller separate from the FTDI chip. I programmed the propeller to output some information.

As for the problem:
The USB connects to FTDI chip just fine (it installs drivers). But the propeller won't program. The information (previously programed) outputs just fine to PST (through the USB). On the reset pin, the correct reset spike can be seen when I try to program (or detect). The RX line (P31) seems a little fuzzy on the oscilloscope, but the TX pin (P30) appears to reply with data (if I apply a pull-up resistor on the line -- if not is stays at 0V). But still "no propeller chip found".

When I try to bypass the FTDI using the IO1 port (on right of schematic) the RX pin (P31) seems to try to send data, but it never goes above 1/2 Vdd, thus nothing is actually sent, and a pull-up resistor does nothing to help that. The highest it goes is about 1/3 Vdd.

Any ideas?

Information about the attachments:
IMG00019-20100525-1644 -- a photo of the board itself. There's not a whole lot that can be figured from that.
FTDI-schematic -- the schematic I used. Note that it is only the FTDI circuit; note the addition of the SN74LVC2G07DBVR component to prevent the propeller being reset while the USB is unplugged -- this was suggested in an old post, I will try to find it.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
April, 2008: when I discovered the answers to all my micro-computational-botherations!

Some of my objects:
MCP3X0X ADC Driver - Programmable Schmitt inputs, frequency reading, and more!
Simple Propeller-based Database - Making life easier and more readable for all your EEPROM storage needs.
String Manipulation Library - Don't allow strings to be the bane of the Propeller, bend them to your will!
Fast Inter-Propeller Comm - Fast communication between two propellers (1.37MB/s @100MHz)!
2048 x 1536 - 749K
1058 x 692 - 410K
«1

Comments

  • bill190bill190 Posts: 769
    edited 2010-05-26 17:02
    Might check the DTR / Reset to be sure it is doing what it should.

    From the Propeller manual...

    "Reset (active low). When low, resets the Propeller chip: all cogs disabled and I/O pins floating. Propeller restarts 50 ms after RESn transitions from low to high."
  • RaymanRayman Posts: 14,720
    edited 2010-05-26 17:02
    Both of your 74lvc2g07 open-drain outputs need pull-up resistors...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    My Prop Info&Apps: ·http://www.rayslogic.com/propeller/propeller.htm

    My Prop Products:· http://www.rayslogic.com/Propeller/Products/Products.htm
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2010-05-26 17:16
    Ditto the pullup comment. I'm glad to see someone using the 74LVC2G07 in this context. It's much more preferable, however, to power VCCIO and the LVC buffer IC from the FT232R's 3V3 output than from the Prop side. Doing so will prevent the Prop from powering a disconnected USB chip through the pullup. Each pullup should go to the supply associated with that side's receive pin. Here's the schematic:

    attachment.php?attachmentid=57861

    -Phil

    Post Edited (Phil Pilgrim (PhiPi)) : 5/26/2010 5:21:01 PM GMT
  • bill190bill190 Posts: 769
    edited 2010-05-26 17:36
    Also just to note (Ignore this unless all else fails), serial signals (RS-232) can be "inverted" or "not inverted". That is -voltage is "on". Or +voltage is "on". Might want to double check the signals coming out of the FTDI via the data sheet to be sure they are what the Propeller is wanting to see.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2010-05-26 17:40
    The signal polarity is correct. No problems there.

    -Phil
  • T ChapT Chap Posts: 4,223
    edited 2010-05-26 17:44
    Besides the above, what you have labeled as PropRx is in reality at the Prop is P30 Tx right?
  • Bobb FwedBobb Fwed Posts: 1,119
    edited 2010-05-26 18:32
    Rayman AND Phil said...
    Both of your 74lvc2g07 open-drain outputs need pull-up resistors...

    Attached is my "Version 2" of the FTDI circuit. Is that better? I have fixed the current circuit board by placing a pull up resistor on the PropRX line. I based my original thing on the attached (white) schematic, which does not show such a resistor. I had actually almost put one, but decided whoever made the white schematic knew better than I.


    @Todd Chapman - yes, the whole thing is kind of confusing, that's why I was mentioning the pin number as well, but I guess since I say "PropRX"/"PropTX" it would make more sense if I were talking about the transmitting and receiving as the Prop sees it, so I have changed it just for you! The wiring was all correct, just the labeling was obfuscated.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    April, 2008: when I discovered the answers to all my micro-computational-botherations!

    Some of my objects:
    MCP3X0X ADC Driver - Programmable Schmitt inputs, frequency reading, and more!
    Simple Propeller-based Database - Making life easier and more readable for all your EEPROM storage needs.
    String Manipulation Library - Don't allow strings to be the bane of the Propeller, bend them to your will!
    Fast Inter-Propeller Comm - Fast communication between two propellers (1.37MB/s @100MHz)!
    936 x 700 - 283K
    787 x 540 - 9K
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2010-05-26 19:03
    Bobb,

    Your new schematic looks better. BTW, the reason my Buffered Prop Plug schematic does not show the pullup on the Prop side is that it has to be on the host board, not the Prop Plug. (The Prop Plug itself does not have access to the Prop's Vdd.)

    Also, don't count too much on the +5V from the PC being a full five volts. It could be as low as 4.3V, and that's before the drop though your Schottky diode. Strictly speaking, you should include a soft-start circuit to power any additional external circuitry from the USB port, although many people seem to get by without one.

    -Phil
  • T ChapT Chap Posts: 4,223
    edited 2010-05-26 19:18
    Bob, it would help in cases like this to post a clear image of both boards so that connections can be visually traced out.

    I assume you have already ruled out the FTDI driver version.

    Post Edited (Todd Chapman) : 5/26/2010 7:23:00 PM GMT
  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2010-05-27 02:16
    Would it help to connect the FTDI RESET# line to VCC?
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2010-05-27 02:58
    No, it's not necessary.

    -Phil
  • T ChapT Chap Posts: 4,223
    edited 2010-05-27 03:08
    Maybe connect VCC and GND and see what happens. That is probably whats missing. [noparse]:)[/noparse]

    Post Edited (Todd Chapman) : 5/27/2010 3:13:30 AM GMT
  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2010-05-27 03:55
    Dismissive or smarta** remarks not withstanding, I think it would be a good idea to do it anyway.

    From the datasheet:
    Active low reset pin. This can be used by an external device to reset the
    FT232R. If not required can be left unconnected, or pulled up to VCC.
    
  • T ChapT Chap Posts: 4,223
    edited 2010-05-27 04:00
    I was more making fun of my prior comments, if that helps. But is industry standard to leave it alone.
  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2010-05-27 04:10
    I think "industry standard" is dubious, but I'll yield on this one.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2010-05-27 05:14
    Martin,

    'Sorry if I sounded dismissive; I didn't mean to. I netted your unintentional red herring on the fly while busy with something else, and my main concern was to unhook, filet and flash-freeze it before it flopped into the OP's lap, thus adding to his anxiety. smile.gif

    -Phil
  • Bobb FwedBobb Fwed Posts: 1,119
    edited 2010-05-27 19:52
    So how'bout the soft-start circuit. Any suggestions on how to make one?

    I think the schottky may be enough. It is not my main source of power, it is an in-case-the-power-is-out supply. The schottky is only a 270mV (@30mA) forward drop, so worst case about 4V would be supplied to the LDO regulator I have. What are the chances that after the regulator at least 2.6V isn't being supplied (I won't run the device off of it, I just need to program the device with it)? A soft-start would save me all of 150mV or 200mV (but still may be worth it for more consistent programability)?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    April, 2008: when I discovered the answers to all my micro-computational-botherations!

    Some of my objects:
    MCP3X0X ADC Driver - Programmable Schmitt inputs, frequency reading, and more!
    Simple Propeller-based Database - Making life easier and more readable for all your EEPROM storage needs.
    String Manipulation Library - Don't allow strings to be the bane of the Propeller, bend them to your will!
    Fast Inter-Propeller Comm - Fast communication between two propellers (1.37MB/s @100MHz)!

    Post Edited (Bobb Fwed) : 5/27/2010 8:00:10 PM GMT
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2010-05-27 20:40
    Bobb,

    Take a look at the soft start circuit I used on the MoBoStamp-pe (#28300). The schematic is at the end of the PDF. BTW, the soft-start circuit recommended by FTDI is totally worthless. Here's a forum discussion on the topic:

    http://forums.parallax.com/showthread.php?p=699564

    -Phil
  • Bobb FwedBobb Fwed Posts: 1,119
    edited 2010-05-27 21:52
    What actually creates the soft start? I am guessing it the combination of CT, RT, C2, D1, D2, and R1? (from page 5 of [noparse][[/noparse]url]http://focus.ti.com/lit/an/slva156/slva156.pdf[noparse][[/noparse]/ur]).

    Seems like a lot of circuitry for a simple function. Wouldn't there be a simple transistor method for doing a similar thing (with a cap and a couple resistors)? --That is, to slow the sudden hunger of my 3.3V circuit, not to regulate it.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    April, 2008: when I discovered the answers to all my micro-computational-botherations!

    Some of my objects:
    MCP3X0X ADC Driver - Programmable Schmitt inputs, frequency reading, and more!
    Simple Propeller-based Database - Making life easier and more readable for all your EEPROM storage needs.
    String Manipulation Library - Don't allow strings to be the bane of the Propeller, bend them to your will!
    Fast Inter-Propeller Comm - Fast communication between two propellers (1.37MB/s @100MHz)!

    Post Edited (Bobb Fwed) : 5/27/2010 9:57:16 PM GMT
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2010-05-27 21:59
    That soft start circuit relies on using the FB pin of the TI voltage regulator. The one I used was derived from the PMOS transistor circuit on page 2.

    -Phil
  • Bobb FwedBobb Fwed Posts: 1,119
    edited 2010-05-27 22:47
    So maybe something like this (attached).

    I still need the schottky because at some point (most of the time) the 5-ishVOut will be supplied with 12V to 13V. But at least this will save the ?USB? when my 3.3V capacitors get turned loose.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    April, 2008: when I discovered the answers to all my micro-computational-botherations!

    Some of my objects:
    MCP3X0X ADC Driver - Programmable Schmitt inputs, frequency reading, and more!
    Simple Propeller-based Database - Making life easier and more readable for all your EEPROM storage needs.
    String Manipulation Library - Don't allow strings to be the bane of the Propeller, bend them to your will!
    Fast Inter-Propeller Comm - Fast communication between two propellers (1.37MB/s @100MHz)!
    898 x 849 - 104K
    ftdi.jpg 103.5K
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2010-05-27 23:05
    That's certainly an improvement over no soft-start at all. Although, it doesn't satisfy the requirement that the full load not be applied until the FTDI chip has been enumerated, it should still limit inrush current. My recommendation is to breadboard it and try it. (It helps to use a scope for stuff like this.)

    -Phil
  • Bobb FwedBobb Fwed Posts: 1,119
    edited 2010-05-28 16:15
    Another try (attached).

    The problem with trying to breadboard this stuff is that the FTDI chip is SMD-only component.

    Edit: image with component values.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    April, 2008: when I discovered the answers to all my micro-computational-botherations!

    Some of my objects:
    MCP3X0X ADC Driver - Programmable Schmitt inputs, frequency reading, and more!
    Simple Propeller-based Database - Making life easier and more readable for all your EEPROM storage needs.
    String Manipulation Library - Don't allow strings to be the bane of the Propeller, bend them to your will!
    Fast Inter-Propeller Comm - Fast communication between two propellers (1.37MB/s @100MHz)!

    Post Edited (Bobb Fwed) : 6/2/2010 10:27:28 PM GMT
    920 x 828 - 108K
    1050 x 900 - 118K
  • JackBakJackBak Posts: 45
    edited 2010-05-28 16:54
    Bobb,

    For testing purposes how about the Sparkfun FTDI break-out-board?

    www.sparkfun.com/commerce/product_info.php?products_id=718

    -Jack
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2010-05-28 16:59
    Bobb Fwed said...
    The problem with trying to breadboard this stuff is that the FTDI chip is SMD-only component.
    Tell me about it. The current MoBo is based on version Q of the proto layouts. It took that many layouts (and nearly that many proto PCBs) and hours with an o'scope to get the FTDI stuff right.

    My recommendation would be to copy the softstart circuit used on the MoBo that takes advantage of a Microchip supervisor chip to overcome the FT232R's startup glitches. It's virtually bombproof in that a dead short on the downstream side will not cause the FT232R to reset. It will just reset the supervisor and begin the softstart process over again. (You need to include the 75 ohm resistor and electrolytic cap on the FT's supply to provide some additional filtering and holdup time.) The only downside I've come across is a limitation on how much capacitance it can charge. It won't handle a 1000uF electrolytic, for example, without continuously resetting itself.

    -Phil
  • T ChapT Chap Posts: 4,223
    edited 2010-05-28 17:01
    Bob if you want I will drop you this bare board in the mail. You can hack the other parts on pretty easily. PM an address if interested.

    Post Edited (Todd Chapman) : 5/28/2010 5:09:55 PM GMT
    724 x 414 - 50K
    306 x 277 - 28K
    443 x 405 - 45K
  • Bobb FwedBobb Fwed Posts: 1,119
    edited 2010-06-10 17:19
    Are the SLEEP# and PWREN# pins I/O's, open drains, or what? If they are powered high, is that at IOVCC voltage or VCC? I am hoping they are open drain, anyone know?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    April, 2008: when I discovered the answers to all my micro-computational-botherations!

    Some of my objects:
    MCP3X0X ADC Driver - Programmable Schmitt inputs, frequency reading, and more!
    Simple Propeller-based Database - Making life easier and more readable for all your EEPROM storage needs.
    String Manipulation Library - Don't allow strings to be the bane of the Propeller, bend them to your will!
    Fast Inter-Propeller Comm - Fast communication between two propellers (1.37MB/s @100MHz)!
  • desikodesiko Posts: 18
    edited 2010-06-12 19:07
    Bobb:

    This is from a footnote in the FT232R data sheet

    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&#8221[noparse];)[/noparse] by setting an option in the internal EEPROM.


    regards,

    desiko
  • Bobb FwedBobb Fwed Posts: 1,119
    edited 2010-06-12 22:18
    I don't think they are in input mode. They appear to be outputs (by default). Am I wrong?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    April, 2008: when I discovered the answers to all my micro-computational-botherations!

    Some of my objects:
    MCP3X0X ADC Driver - Programmable Schmitt inputs, frequency reading, and more!
    Simple Propeller-based Database - Making life easier and more readable for all your EEPROM storage needs.
    String Manipulation Library - Don't allow strings to be the bane of the Propeller, bend them to your will!
    Fast Inter-Propeller Comm - Fast communication between two propellers (1.37MB/s @100MHz)!
  • desikodesiko Posts: 18
    edited 2010-06-14 13:29
    You are right. They are outputs by default.

    I am interested in this question also so I contacted FTDI.
    This is the response from an applications Engineer:

    "They act as open collector until the configuration has been read, then they drive totem pole."


    desiko
Sign In or Register to comment.