1
\$\begingroup\$

First time on this board so you will excuse me if the question has been answered before ...

Right down to the nitty-gritty

I have a board based on an FT232H chip, AD bus is used in I2c to communicate with several slaves includiing a couple of I2c/onewire gateways and all is working fine.

Now the ACBUS 0 to ACBUS 6 and ACBUS 8 to ACBUS 9 are used to check on a bunch of PowerGood lines.

the whole thing is of course operated in MPSSE mode (i2c).

Now with opcode 0x83 am able to read pins ACBUS0 to ACBUS7 but I haven't been able to gather ACBUS 8 or ACBUS 9. any suggestion?

Thanks

/Patrick

\$\endgroup\$
1
\$\begingroup\$

Per MPSSE command codes version 1.5, neither ACBUS8 nor ACBUS9 is accessible from MPSSE mode.

Per FT232H data sheet, the ACBUS8 and ACBUS9 pins default to tri-state inputs, but can be configured to support ACBUS BitBang by first connecting an EEPROM to the FT232H and using the FT_Prog utility (http://www.ftdichip.com/Support/Utilities.htm) to set IO Controls for C8 and C9 to I/O Mode. This needs to be done once, to configure the non-volatile EEPROM memory.

enter image description here

Next, at runtime, the FT232H needs to be configured for CBUS Bit Bang Mode by calling FT_SetBitmode with ucMode = 0x20. This is similar to what you're already doing to enable MPSSE mode -- obviously by entering CBUS Bit Bang Mode you are also exiting MPSSE mode. So that's inconvenient.

It's unclear to me which bit physically maps to the FT232H's ACBUS8 and ACBUS9, this could depend on how the EEPROM is configured. There's a document that describes an earlier version of ACBUS BitBang mode for FT232R, but that chip doesn't have the same ACBUS configuration and so isn't directly useful.

Just a suggestion, but if you don't need to distinguish between the individual power-good lines, you might consider using a wired-OR to develop a system-power-good signal that you can read through MPSSE mode.

Links:

FT232H data sheet: http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232H.pdf

MPSSE command codes (AN 108): http://www.ftdichip.com/Support/Documents/AppNotes/AN_108_Command_Processor_for_MPSSE_and_MCU_Host_Bus_Emulation_Modes.pdf

D2XX_Programmer's Guide(FT_000071): http://www.ftdichip.com/Support/Documents/ProgramGuides/D2XX_Programmer%27s_Guide(FT_000071).pdf

Bitbang mode for FT232R - ACBUS BitBang description: http://www.ftdichip.com/Support/Documents/AppNotes/AN_232R-01_Bit_Bang_Mode_Available_For_FT232R_and_Ft245R.pdf

\$\endgroup\$
  • \$\begingroup\$ Thanks am studying the possibility of adding an MCP23017 to the circuit which has the added advantage to leave a few pins free for future upgrades and gives me an INT line which means I do not have to parse the power good lines constantly. Could you confirm that I could use ACBUS8 and ACBUS9 as TX/Rcv LED and POWER LED by just changing them in FT_PROG and that does not involve any change in the software. Thanks in advance ;-) /Patrick \$\endgroup\$ – Patrick Regnouf Mar 13 '15 at 9:59
  • \$\begingroup\$ Yes, ACBUS8 or ACBUS9 can be programmed in EEPROM to drive TX&RXLED#, or DRIVE 0, or SLEEP#, etc. as per data sheet table 3.5. \$\endgroup\$ – MarkU Mar 14 '15 at 21:06

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.