JTAG programming with Olimex arm-usb-tiny-h not working

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
joMa_1809706
Level 4
Level 4
10 likes received First like received First like given

I have installed the drivers for WIN7

pastedImage_0.png

I plug the tiny h into a BCM4343W_AVN sdk board with the JTAG connector added to the main board or into our custom board.

I run "valve-BCM94343W_AVN JTAG=Olimex_ARM-USB-TINY-H download download_apps run" for our custom software.

Downloading Bootloader ...

Building apps lookup table

"**** OpenOCD failed - ensure you have installed the driver from the drivers directory, and that the debugger is not running **** In Linux this may be due to USB access permissions. In a virtual machine it may be due to USB passthrough settings. Check in the task list that another OpenOCD process is not running. Check that you have the correct target and JTAG device plugged in. ****"

Downloading DCT ...

"**** OpenOCD failed - ensure you have installed the driver from the drivers directory, and that the debugger is not running **** In Linux this may be due to USB access permissions. In a virtual machine it may be due to USB passthrough settings. Check in the task list that another OpenOCD process is not running. Check that you have the correct target and JTAG device plugged in. ****"

Downloading Application ...

"**** OpenOCD failed - ensure you have installed the driver from the drivers directory, and that the debugger is not running **** In Linux this may be due to USB access permissions. In a virtual machine it may be due to USB passthrough settings. Check in the task list that another OpenOCD process is not running. Check that you have the correct target and JTAG device plugged in. ****"

Downloading WIFI_FIRMWARE ... at sector 1  size 88...

tools/makefiles/wiced_apps.mk:245: recipe for target 'WIFI_FIRMWARE_DOWNLOAD' failed

make.exe[1]: *** [WIFI_FIRMWARE_DOWNLOAD] Error 1

make.exe[1]: *** Waiting for unfinished jobs....

Makefile:220: recipe for target 'main_app' failed

make: *** [main_app] Error 2

0 Likes
13 Replies
MichaelF_56
Moderator
Moderator
Moderator
250 sign-ins 25 comments on blog 10 comments on blog

Adding seyhan​ and aky​ from the Wi-Fi apps team.

0 Likes

the openocd site indicates the ver .08 and above should use WINUSB drivers instead of the libusb ones. SDK 3.52 and 3.70 use openocd .09 and .10 yet seem to ship with the libusb drivers in the install package and don't actually install when using the olimex usb tiny h programmer which was recommended in a previous Broadcom post.

What is the correct install process to get the divers installed for the tiny h and sdk 3.7.0?

Hi,

How do you connect Olimex JTAG programmer to BCM4343W_AVN evaluation board?

Keep in mind that the J8 header is marked as "WiFi JTAG Header" is connected to the WLAN chip (4343W) JTAG lines.

Signals routed to the FT232H, USB_JTAG_TMS_*, are connected to the STM32F411 JTAG pins.

If you are connecting the Olimex JTAG programmer to the J8 header, Wiced-SDK download and debugging would not work because this header is connected to WLAN chip instead of STM32F411.

On BCM4343W_AVN evaluation board, if you want to use the Olimex JTAG programmer instead of on board FTDI supported OpenOCD connection, hardware modifications are needed.

Thanks,

Seyhan

so other than the addition of J8 what hardware changes are needed?

0 Likes

Hi,

If you just add header on J8 it will not work because the J8 connected to the WLAN chip JTAG port instead of STM32F411 host MCU.

1.

One option is to remove the FTDI chip and route USB_JTAG_xxx signals to a header where Olimex JTAG programmer will connect. Since the signals have pull-up resistors could be directly connected to the new JTAG header.

pastedImage_4.png

After removing FTDI chip, the serial terminal (Debug) connection would be lost UART_TX, and UART_RX. For serial terminal communication Arduino headers could be used with TTL to USB serial port cable.

pastedImage_1.png

2.

Second option is to disconnect USB_JTAG_TCK, USB_JTAG_TMS, USB_JTAG_TDI, and USB_JTAG_TRST_L from the FTDI chip and connect them to the new JTAG header along with USB_JTAG_TDO. With this the JTAG via FTDI will be disabled and Olimex JTAG would work. In this case the serial terminal (debug) interface would work via existing usb connector.

Hope it helps,

Seyhan

0 Likes
lock attach
Attachments are accessible only for community members.

I’ve tried 2 different ways to get this to work

1. I have moved the 4343W_AVN module from the dev kit to a custom board with the custom board connected with the USBJTAG pins wired to a JTAG connector. This connector then connects to J8 on the SDK board the connections across the now empty radio spot to connect the USBJTAG pins to the pins of J8 which connect to the USBJTAG pins of the radio. SDK USBJTAG -> J8 -> JTAG on custom -> USB*JTAG radio.

The 4 FTDI UART_* pins were not brought across to the radio (do they need to be?). Then used same build command as used when radio attached to dev kit.

valve-BCM94343W_AVN download download_apps run

Gives driver errors.

"**** OpenOCD failed - ensure you have installed the driver from the drivers directory, and that the debugger is not running **** In Linux this may be due to USB access permissions. In a virtual machine it may be due to USB passthrough settings. Check in the task list that another OpenOCD process is not running. Check that you have the correct target and JTAG device plugged in. ****"

2. I have moved the 4343W_AVN module from the dev kit to a custom board with the custom board connected with the WL*JTAG pins wired to a JTAG connector. This connector is then connected to an Olimex usb-tiny-h. Olimex driver is winusb 1.2.6.0

Same as above schematic except with the WLJTAG going to the radio WLJTAG pin instead of MICRO*.

Build: valve-BCM94343W_AVN JTAG=Olimex_ARM-USB-TINY-H download download_apps run

Error: JTAG scan chain interrogation failed: all ones

Error: Check JTAG interface, timings, target power, etc.

Error: Trying to use configured scan chain anyway...

Error: stm32f4xx.cpu: IR capture error; saw 0x0f not 0x01

Warn : Bypassing JTAG setup events due to errors

Warn : Invalid ACK 0x7 in JTAG-DP transaction

0 Likes

Hi,

Your changes looks fine to me. Could you please verify the Pin-38 MICRO_WKUP connection?

Since I do not have the similar board like you have made for your application. Instead of BCM94343W_AVN, I have tested with BCM94343WWCD1 (BCM9WCD9EVAL1 is the base board).

Here is the build command for scan application:

     snip.scan-BCM94343WWCD1 JTAG=Olimex_ARM-USB-TINY-H download download_apps run

It is worked as expected with WICED-SDK-3.5.2 and WICED-SDK-3.6.3 without making any changes to openocd lib.

Could you please share the .../build/openocd_log.txt log file?

Thanks,

Seyhan

0 Likes

Hi,

Schematics for BCM94343WWCD1: .../platforms/BCM94343WWCD1/schematics/BCM94343WWCD1_P104.pdf

Schematics for BCM9WCD9EVAL1: .../platforms/evaluation_boards/BCM9WCD9EVAL1/schematics/bcm9wcd9eval1_P502.pdf

Seyhan

0 Likes

With olimex and custom board is it ok to leave radio USB*j tag pins unconnected?

With custom board with radio and a cable to sdk board with radio removed. Are any other signals needed between the two beyond the micro*j tag?

0 Likes

Hi,

Yes, please leave the radio JTAG pins unconnected. On the module itself, there are resistors to switch from WLAN JTAG to GPIO settings and by default WLAN JTAG is disabled.

Beside power and ground I think only the reset and any of the peripherals you need to use on your application needs to be connected.

On your earlier snippet of schematics, MICRO_WKUP is pulled up with 47K. Try it without the pull up resistor, leave this pin floating.

BR.
Seyhan

0 Likes
lock attach
Attachments are accessible only for community members.

What resistors trigger the switch for GPIO vs WL*JTAG? Could we be in the wrong mode? I don't have a module schematic for the BCM94343W_AVN module.

Attached files for the modified sdk board, log when running the reflash bat file (aws_iot_shadow_prog.bat) from avnet. See previous schematic post for custom board JTAG and radio connections. Standard SDK EVAL board with the module attached works with this file, Modified SDK EVAL board with radio moved to custom board fails.
0 Likes

Not at my desk now. The wakeup signal is tied high. The  log file says stuck high. Verified  sp I signals with logic analyzer on olimex connector   T D O stuck high. Others cycled.  See previous post for a snip of log and build command.  Tried with 3.5.2 and 3.7.0 same problem. Tried with modified flash script same problem. Tried with original scropt and SDK board with radio moved. Auto correct keeps changing my entries. 

0 Likes
Anonymous
Not applicable

I have not been able to get my custom Avnet BCM4343W module programming with the OLIMEX ARM-USB-TINY-H with WICED 6.0.

The OpenOCD that comes with Wiced 6.0 does not include the STB32F4 BSTAPID 0x06431041 version, so I need to modify the stm32f4x.cfg file:

if { [info exists BSTAPID ] } {

   set _BSTAPID $BSTAPID

} else {

  # See STM Document RM0033

  # Section 32.6.2

  #

  # CGW set _BSTAPID 0x06413041

  set _BSTAPID 0x06431041

}

I am getting the following in the openocd_log.txt:

Open On-Chip Debugger 0.10.0-dev-00226-gdda982d-dirty (2017-08-25-12:11)

Licensed under GNU GPL v2

For bug reports, read

    http://openocd.org/doc/doxygen/bugs.html

Info : only one transport option; autoselect 'jtag'

trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst

adapter speed: 1000 kHz

adapter_nsrst_delay: 100

jtag_ntrst_delay: 100

Warn : target name is deprecated use: 'cortex_m'

jtag_init

Warn : Using DEPRECATED interface driver 'ft2232'

Info : Consider using the 'ftdi' interface driver, with configuration files in interface/ftdi/...

Info : max TCK change to: 30000 kHz

Info : clock speed 1000 kHz

Info : JTAG tap: stm32f4xx.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)

Info : JTAG tap: stm32f4xx.bs tap/device found: 0x06431041 (mfg: 0x020, part: 0x6431, ver: 0x0)

Info : stm32f4xx.cpu: hardware has 6 breakpoints, 4 watchpoints

Info : JTAG tap: stm32f4xx.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)

Info : JTAG tap: stm32f4xx.bs tap/device found: 0x06431041 (mfg: 0x020, part: 0x6431, ver: 0x0)

Error: timed out while waiting for target halted

TARGET: stm32f4xx.cpu - Not halted

in procedure 'init' called at file "./tools/OpenOCD/stm32f4x-flash-app.cfg", line 32

in procedure 'ocd_bouncer'

in procedure 'transport'

in procedure 'ocd_bouncer'

in procedure 'jtag_init' called at file "../../../WICED-OpenOCD/src/jtag/core.c", line 1576

in procedure 'reset' called at file "./tools/OpenOCD/stm32f4x.cfg", line 126

in procedure 'ocd_bouncer'

in procedure 'init' called at file "./tools/OpenOCD/stm32f4x-flash-app.cfg", line 32

in procedure 'ocd_bouncer'

I have now tried Wiced 6.0 on my Windows 7.0 machine and on our iOS development laptop running the latest MacOSX with WICED 6.0 with the same results.

0 Likes