I am developing a device based around two FTDI FT4232H quad USB-to-Serial converters plugged into a Texas Instruments TUSB2046 USB hub controller. The serial outputs of each FT4232H channel goes to a Texas Instruments SN65HVD72 RS-485 transceiver, thus creating a dual-quad USB-to-RS485 converter. See Section 4.3.3 (page 20) of the FT4232H datasheet for a diagram of what I am doing for each FT4232H (though using all four channels rather than just two). The FT4232H multiplexes the functions of Ring Indicator and Transmit Data Enable on a single pin, called RI#/TXDEN, and the default is RI#. If I am reading the datasheet correctly, in order to use this pin as TXDEN to drive the DE pin of the RS-485 transceivers, I need to configure it to use this function in the FT4232H's EEPROM. For this I use the FT_PROG utility from FTDI.

When I first plug in my board containing the hub, USB-to-serial converters, and the RS-485 transceivers to my USB port, all 8 COM ports enumerate as they should. The next thing I do is open up FT_PROG and run the "Scan & Parse" command. Once completed, both FT4232H USB-to-serial converters appear, and they show up as "Blank Devices":

enter image description here

My next step is to go into each channel and check the box next to "RI as RS485 Enable", as shown in the following image:

enter image description here

I repeat this process for all ports, A-D, on both devices. Next I click the "Program" icon on the top menu bar, and on the confirmation window I check that both devices are checked and I click "Program". Once done, I see "Finished Programming" appear at the bottom of the window.

enter image description here enter image description here

Everything appears to work, and after clicking "Cycle Ports" I confirm that data does appear to have been written to the internal memory. After that I click "Scan & Parse" once more:

enter image description here enter image description here

After running the "Scan & Parse" command, however, the devices appear blank once again and none of my changes "stuck". The "RI as RS485 Enable" setting is unchecked again.

I thought perhaps that "Scan & Parse" might delete some settings of the chips (Think I found this in the datasheet or an app note somewhere, that this setting was cleared on reset), and even though that doesn't make any sense to me I decided to give it a try without re-scanning. Unfortunately I was not able to communicate with my RS-485 device - my terminal program was unable to even detect the presence of any devices on the RS-485 bus. This is my first time ever using FT_PROG, as well as these particular FTDI chips, so perhaps I am missing a step in the process? I am hoping someone might be able to determine the reason why my changes don't "stick" and why I am unable to communicate with my RS-485 device after connecting to the respective COM port.

For the record, I tried all COM ports which were enumerated when I plugged in my USB cable, so unfortunately it's not as simple as me just not looking at the right bus.

  • \$\begingroup\$ Sounds like DE is not being selected. Can you monitor those signals? \$\endgroup\$ – Tony Stewart EE75 May 28 '20 at 0:29
  • \$\begingroup\$ That was my instinct as well, though that would not explain why the settings weren't sticking in the FT4232H EEPROM. I will have to finagle the board a bit in order to probe those pins, but I wanted to check and make sure I wasn't doing something stupid in the software first. \$\endgroup\$ – DerStrom8 May 28 '20 at 0:33
  • \$\begingroup\$ Use resistor wires to test pins. With gnd pins too. Not familiar with the rest \$\endgroup\$ – Tony Stewart EE75 May 28 '20 at 0:38
  • \$\begingroup\$ I assume you meet the criteria for dot NET4 \$\endgroup\$ – Tony Stewart EE75 May 28 '20 at 0:44
  • \$\begingroup\$ @TonyStewartSunnyskyguyEE75 Yes, I believe so. I can confirm tomorrow. \$\endgroup\$ – DerStrom8 May 28 '20 at 0:51

The answer is right there in the very first screenshot - last Entry:

EEPROM Type: No EEPROM detected

So it seems your design either has no EEPROM connected to the FT4232H or they are not correctly connected or compatible. If they are missing you can glue one on top of the FT4232H and use flying wires to connect them - had to do this myself once because I thought I would not need the EEPROM for my design but I was wrong. So I had to add one afterwards.

  • \$\begingroup\$ The FT4232 has built-in memory for these settings, at least that is my understanding from reading the manual and datasheet. \$\endgroup\$ – DerStrom8 May 28 '20 at 11:57
  • \$\begingroup\$ I will acquire an external EEPROM to see if it changes anything. It is possible I misunderstood \$\endgroup\$ – DerStrom8 May 28 '20 at 12:07
  • \$\begingroup\$ ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT4232H.pdf Section 7 especially Table 7.1 Default Configurationwith a blank/no EEPROM. I do not know why FTDI refrain from using an internal flash but all x232 devices I encountered so far rely on the external EEPROM to store non default settings. \$\endgroup\$ – Christian B. May 28 '20 at 12:31
  • \$\begingroup\$ You know what, I think you're right. It says right at the beginning of Section 7: "Adding an external EEPROM allows selecting the TXDEN for RS485 mode when asynchronous serial interface has been selected." \$\endgroup\$ – DerStrom8 May 28 '20 at 12:48
  • \$\begingroup\$ @DerStrom8 and? Did adding an EEPROM solve your problem? \$\endgroup\$ – Christian B. Jun 16 '20 at 16:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.