13 Replies Latest reply on Nov 8, 2017 3:23 PM by chwac_1573706

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

    joMa_1809706

      I have installed the drivers for WIN7

      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

        • 2. Re: JTAG programming with Olimex arm-usb-tiny-h not working
          joMa_1809706

          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?

          • 3. Re: JTAG programming with Olimex arm-usb-tiny-h not working
            SeyhanA_31

            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

             

             

            1 of 1 people found this helpful
            • 4. Re: JTAG programming with Olimex arm-usb-tiny-h not working
              joMa_1809706

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

              • 5. Re: JTAG programming with Olimex arm-usb-tiny-h not working
                SeyhanA_31

                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.

                 

                 

                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.

                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

                • 6. Re: JTAG programming with Olimex arm-usb-tiny-h not working
                  joMa_1809706

                  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

                  • 7. Re: JTAG programming with Olimex arm-usb-tiny-h not working
                    SeyhanA_31

                    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

                    • 8. Re: JTAG programming with Olimex arm-usb-tiny-h not working
                      SeyhanA_31

                      Hi,

                       

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

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

                       

                      Seyhan

                      • 9. Re: JTAG programming with Olimex arm-usb-tiny-h not working
                        joMa_1809706

                        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. 

                         

                         

                         

                         

                        • 10. Re: JTAG programming with Olimex arm-usb-tiny-h not working
                          joMa_1809706

                          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?

                           

                           

                          • 11. Re: JTAG programming with Olimex arm-usb-tiny-h not working
                            SeyhanA_31

                            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

                            • 12. Re: JTAG programming with Olimex arm-usb-tiny-h not working
                              joMa_1809706

                              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.
                              • 13. Re: JTAG programming with Olimex arm-usb-tiny-h not working

                                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.