Tool/software:
We are trying to design a simple JTAG debugger board for our P650 MCU based on the XDS100v2 reference design as that is what is available. We are not dead set on the XDS100v2 design, but we have to do a lot of PC app development and figure the FTDI chip will allow us to get up and running very quickly.
Our connection to our MCU only has the JTCLK, JTMS, JTDI, and JTDO pins and nothing else. We will just be putting the FT2232 onto the board and not the CPLD. However, ideally we would like to use PORTA of the FTDI chip for both JTAG & UART (multiplexed) and PORTB for SPI. We can put buffers and switches onto the board controlled by PORTB to perform the multiplexing. The idea is that at time x, CCS will be able to use the JTAG on port A and at time b, our custom program configures and uses the UART of PORTA.
After reviewing the XDS100v2 reference design, I have a few questions.
- The FT2232 boots up in UART mode and sets the RTS pin as an output. It looks to me that the CPLD connects this pin also to an output. Won't this cause bus contention upon POR or is there some OE pin being manipulated to the CPLD via the GPIOL/H pins also on PORTA? The CPLD code is very simple and I could not find where any OE was being used within the code on that pin. I did look into the cool runner 2 data sheet and found it has global output enable pins to tristate its outputs, but again it looked like none of these pins were connected or manipulated by GPIOL/H.
- If we are only intending to hook up the 4 JTAG pins to our DSP, what other input pins must be manipulated on GPIOL/H for the connection to work correctly?
The FT2232 pins will ultimately go to digital isolators but we can add buffers or logic in between. In the end, I cannot see a way given the initial FT2232 pin states on POR and the connection to the CPLD how we can avoid bus contention also if we want to add analog switches to multiplex the PORTA JTAG & UART connection.
I talked to our hardware engineer and proposed we could add high valued series resistors (~800 Ohm) to the pins. We will only be operating PORTA at 1MHz. All the pins on the FT2232 and destination ICs will be Schmitt triggered and the traces will be extremely short. If we do the rise and fall time calculations, I think we can easily support 1MHz with the resistors.. after it looks like 1MHz I2C can use ~800 Ohm pullups. The resistors will defeat the bus contention and miss configuration of all the pins at different times due to them being both inputs & outputs by keeping all of the I/O pin currents on the ICs into their recommended ranges.