7 Replies Latest reply on Sep 26, 2019 11:23 PM by AnjanaM_61

    external Jtag support for CYW920719Q40EVB

    kach_1524451

      Hi,

      I am using CYW920719Q40EVB-01 with revision 01. I am looking for external programmer support for this development board. In this forum, what i can found is not working for me.

      I was following the below discussion thread

      Cypress CYW920719Q40-B1 eval kit debugging

      The schematic i can get from https://www.cypress.com/documentation/development-kitsboards/cyw920719q40evb-01-evaluation-kit  is belongs to board revision 2.1, where the board i have is revision 01.

      Can anyone guide me the schematic for board revision 01?

      I am also looking for how can i perform firmware upgrade  / flash firmware using J-LINK in this board?

       

      Thank you.

      Best regards.

      kc

        • 1. Re: external Jtag support for CYW920719Q40EVB
          AnjanaM_61

          Hello,

           

          1. You should be able to do HW debug by following steps mentioned in the thread Cypress CYW920719Q40-B1 eval kit debugging 

          Could you please let us know which step you are facing issues?

           

          2. Programming via Jlink interface is not supported on 20719. Customer should use HCI UART interface for programming or upgrading the FW. Please refer to WICED-HCI-Control-Protocol.pdf in WICED Studio

           

          3. Could you please double check the board revision ? I will check internally for 1.0 files.

           

          Thanks,

          Anjana

           

          Note: 20719B2 is now available: CYW20719B2 Product Guide

          • 2. Re: external Jtag support for CYW920719Q40EVB
            kach_1524451

            Hi Anjana,

             

            thanks for your reply.

            I) I am facing issue with GDB server connection with evaluation board. please refer attached error image

            error_jtag.JPG

            2) is there any specific tool available to update firmware? we are looking for a standalone programmer for flash?

             

            3) my board revision is 1.0, we purchased this from mouser.

             

            Thank you.

            Best regards,

            kc

            • 3. Re: external Jtag support for CYW920719Q40EVB
              AnjanaM_61

              Hi KC,

               

              1.

              • Can you check in the device manager if Jlink port is enumerated and listed ( To confirm if drivers are installed correctly)?
              • Just to double confirm, did you removed PUART code and pins as mentioned in the previous thread?
              • As mentioned in that thread, if you are using Windows 10 or earlier causing driver issue , please follow the below links:

                   GoJimmyPi: Fixing J-Link "No emulators connected via USB": How to have J-Link work for both Segger Utilities and VisualG…

              https://sysprogs.com/w/forums/topic/segger-j-link-no-emulators-connected-via-usb-after-configuring-for-openocd/

               

              2. is there any specific tool available to update firmware? we are looking for a standalone programmer for flash?

              A) Please check if Cypress programmer will be helpful or not : https://www.cypress.com/products/psoc-programming-solutions

               

              Thanks,

              Anjana

              • 5. Re: external Jtag support for CYW920719Q40EVB
                kach_1524451

                Hi Anjana,

                 

                Thanks for your reply and schematic.

                I will go through this.

                Just to let you know, The issue of GDB server still there. I already checked with my computer device manager, the JTAG populated correctly. I also do not have those 4 jumpers, which are mentioned in that thread.

                What i understand is JTAG is not able to get connect with evaluation board. JTAG successfully able to connect with computer.

                If you look into the thread you mentioned, before start debugging, the GDB server should show, "wait for connection". But, i don't see that.

                 

                As i mentioned earlier, my evaluation board revision is 0.1, where in that thread, they person successfully able to connect was using board revision 2.1. the person used 2.0 was unsuccessful to get JTAG connection establish. Any clue what else i need to do?

                 

                Thank you.

                Best Regards,

                kc

                • 6. Re: external Jtag support for CYW920719Q40EVB
                  DheerajP_41

                  Hi kaushik chakraborty,

                   

                  Sorry for the delay.

                  The issue here means you have not programmed a properly enabled debug firmware. Could you please check whether you have made below changes properly in your firmware. And then could you please try your experiment once again.

                   

                  Filename: spar_utils.h

                  ------------------------------

                  1) Modify the debugging enable macros as shown below. (Or copy the below code and comment out the original macro definition)

                  NOTE: If you are using some other pin as SWDCK and SWDIO (other than P33 and P34), you will have to wire up the debug hardware accordingly to the EVAL kit.

                   

                  #include "gpiofunction.h"

                  void _tx_v7m_set_int(unsigned int posture);

                  unsigned int _tx_v7m_get_int(void);

                   

                  #ifdef DEBUG

                  /// When debugging is enabled, sets up the HW for debugging.

                  #define SETUP_APP_FOR_DEBUG_IF_DEBUG_ENABLED()  do{        \

                          wiced_hal_gpio_select_function(WICED_P33, WICED_SWDCK); \

                          wiced_hal_gpio_select_function(WICED_P34, WICED_SWDIO); \

                          wiced_hal_wdog_disable(); \

                      }while(0)

                   

                  /// Optionally waits in a pseudo while(1) until the user allows the CPU to continue

                  #define BUSY_WAIT_TILL_MANUAL_CONTINUE_IF_DEBUG_ENABLED()    do{  \

                          volatile UINT8 spar_debug_continue = 0;                    \

                          unsigned int interrupt_save = _tx_v7m_get_int();\

                          while(!spar_debug_continue);                                \

                          spar_debug_continue = 0; \

                          _tx_v7m_set_int(interrupt_save);                            \

                          }while(0)

                  #else

                  #define SETUP_APP_FOR_DEBUG_IF_DEBUG_ENABLED()

                  #define BUSY_WAIT_TILL_MANUAL_CONTINUE_IF_DEBUG_ENABLED()

                  #endif

                   

                  Filename: gpiofunction.h

                  ---------------------------------

                  1) Replace  #include "gpiodriver.h" with  #include "wiced_hal_gpio.h".

                  //#include "gpiodriver.h"

                  #include "wiced_hal_gpio.h"

                   

                  2) Remove/comment out below code.

                  //typedef enum GPIO_STATUS_e

                  //{

                  //    GPIO_FAILURE,

                  //    GPIO_SUCCESS,

                  //    GPIO_REMAPPED,

                  //    GPIO_MOVED

                  //} GPIO_status_t;

                   

                  3) Replace all gpio_numbers_t with wiced_bt_gpio_numbers_t.

                  4) Replace GPIO_status_t with wiced_bt_gpio_select_status_t.

                   

                  Filename:  spp.c

                  ----------------------

                  1) Add below macros in APPLICATION_START()

                   

                  SETUP_APP_FOR_DEBUG_IF_DEBUG_ENABLED();

                  BUSY_WAIT_TILL_MANUAL_CONTINUE_IF_DEBUG_ENABLED();

                   

                  Filename: makefile.mk

                  ------------------------------

                  1) add below flag.

                  C_FLAGS+= -DDEBUG

                   

                  Filename:  maketarget string (when downloading)

                  ------------------------------------------------------------------

                  In the Eclipse “Make target”, ensure DEBUG=1 is on the command line.

                   

                   

                  Please let me know if it works for you.

                   

                  Thanks,

                  -Dheeraj