cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC 5, 3 & 1 MCU

Len_CONSULTRON
Honored Contributor

I'm trying to help another user and decided to try my hand at using a Bootloader/Bootloadable project for the PSoC5LP (CY8CKIT-059) based on two example projects.

After following the instructions given in the example pdfs.  I get a "successful" program of the kit.  However going to "Bootloader Host" yields no acknowledgment of the VID=04B4 and PID=B71D.  This is true even after holding SW1 (P2.1) while powering up through the USB port.

Apparently the VID=04B4 and PID=B71D are "installed" into my system (See snip of RegEdit screen)

pastedImage_2.png

However, no additional USB port shows up with this VID or PID when the USB port of the kit target is plugged in.  (I do get audio notification of insertion and removal events).  In the Device Manager no new USB device is displayed.

This is true whether I program in either Bootloader mentioned above.

I'm probably not setting something or forgetting something simple.

If I can get this to work, I can help others.

Len

Message was edited by:

Len

Update: Installed CySuiteUSB_3_4_7_B204.

Here is the "Descriptor Info" for this bootloader USB:

<HID_DEVICE>

    FriendlyName=""

    Manufacturer="Cypress Semiconductor"

    Product="PSoC3 Bootloader"

    SerialNumber="0001"

    VendorID="04 B4"

    ProductID="B7 1D"

    Class="00h"

    SubClass="00h"

    Protocol="00h"

    BcdUSB="00 00"

    Usage="00 00"

    UsagePage="00 01"

    Version="30 01"

    <INPUT>

        RptByteLen="65"

        Buttons="0"

        Values="1"

        <VALUE>

            ReportID="0"

            Usage="00 00"

            UsagePage="00 01"

            UsageMax="00 00"

            BitField="00 02"

            LinkCollection="00 01"

            LinkUsage="00 00"

            LinkUsagePage="00 01"

            IsAlias="False"

            IsRange="False"

            IsStringRange="False"

            IsDesignatorRange="False"

            IsAbsolute="True"

            HasNull="False"

            StringIndex="0"

            StringMax="0"

            DesignatorIndex="0"

            DesignatorMax="0"

            DataIndex="0"

            DataIndexMax="0"

            BitField="00 02"

            LinkCollection="00 01"

            LinkUsage="00 00"

            LinkUsagePage="00 01"

            BitSize="8"

            ReportCount="64"

            Units="0"

            UnitsExp="0"

            LogicalMin="0"

            LogicalMax="-1"

            PhysicalMin="0"

            PhysicalMax="0"

        </VALUE>

    </INPUT>

    <OUTPUT>

        RptByteLen="65"

        Buttons="0"

        Values="1"

        <VALUE>

            ReportID="0"

            Usage="00 00"

            UsagePage="00 01"

            UsageMax="00 00"

            BitField="00 02"

            LinkCollection="00 01"

            LinkUsage="00 00"

            LinkUsagePage="00 01"

            IsAlias="False"

            IsRange="False"

            IsStringRange="False"

            IsDesignatorRange="False"

            IsAbsolute="True"

            HasNull="False"

            StringIndex="0"

            StringMax="0"

            DesignatorIndex="0"

            DesignatorMax="0"

            DataIndex="0"

            DataIndexMax="0"

            BitField="00 02"

            LinkCollection="00 01"

            LinkUsage="00 00"

            LinkUsagePage="00 01"

            BitSize="8"

            ReportCount="64"

            Units="0"

            UnitsExp="0"

            LogicalMin="0"

            LogicalMax="-1"

            PhysicalMin="0"

            PhysicalMax="0"

        </VALUE>

    </OUTPUT>

</HID_DEVICE>

Hope this might clue someone to the issue.
Len
"Engineering is an Art. The Art of Compromise."
0 Likes
Reply
1 Solution
MiDa_1966691
New Contributor II

Len,
I have read your posts and I know you are a not a novice - didn't mean to come across that way.

I just wanted to let you know I tested on my end and it works with the built in example (USBFS_Bootloader)
in both PSoC Creator 4.2 and Creator 4.3 
Targeting a  Cy8CKIT-059 Board – ON MY END

So I’m not sure why it is not flashing on your end.
-Mike 

View solution in original post

0 Likes
Reply
7 Replies
Len_CONSULTRON
Honored Contributor

To all,

I've made some progress but I'm still not successful.

Since the USB Bootloader VID and PID are viewable by CyUSBSuite,

Here's my results with USBFS_Bootloader project.

I seem to remember that there was a filter setting in the Bootloader Host program.

Once I set the VID and PID into these parameters.  (Strangely the setting of the PortFilters is missing from the .pdf)

pastedImage_1.png

I made sure the .cyacd of the Bootloadable project was pointed to in "File:"  When I select "Program" I almost immediately get:

06:44:02 AM - program Started

06:44:02 AM - The flash row is not valid for the selected array.

06:44:02 AM - program failed in 28 ms.

pastedImage_2.png

I'm using "out-of-the-box" example code that theoretically should work(?).  Any clues from the forum?

Here's my results with CE95391_USB_HID_Bootloader project.

I program the Booloader from this project. I used the same port filter settings, and pointed to the Bootloadable .cyacd file for this project.

The Bootloadable project DID successfully load!

If anyone can give me some direction to look why the USBFS_Bootloader did not work, I would appreciate it.

Len

Len
"Engineering is an Art. The Art of Compromise."
0 Likes
Reply
MiDa_1966691
New Contributor II

Len,

I was able to take the Cypress  Example:

CE95391_USB_HID_Bootloader you provided in your posting.

I was able to recreate and program the USB bootloader and USB_Bootloadable’s successfully.

I’m running Creator 4.3 running on Windows 10.
The project was built for the CY8CKIT-059 DVK Board

I first compiled the bootloader:

and then in the bootladable projects I pointed to the new *.hex and *.elf files Generated.
This is done in the Bootladable component under dependencies.

I have attached two folders

– One for the bootloader – program the hex file with PSoC Programmer.

Folder name: USB_Bootloader

The other folder USB_Bootloadable  has two files - *.CYACD

If you wanted to see if you have a hardware problem.

You can try the files I have attached –

Note:

Program the CY8CKIT-059 board with Programming USB Gold Finger connected to USB Port.

After programming and using Bootloader – you need to have a USB connected to the other Side of the CY8CKIT-059 – on the USB MINI connector with a cable.

In Creator Under – Tools – Bootloader HOST – you should see the USB device enumerate as a USB bootloader device -

Files:

Dropbox - USB_Bootloader.zip - Simplify your life

Dropbox - USB_Bootloadable.zip - Simplify your life

Hope that helps

-MIke

0 Likes
Reply
Len_CONSULTRON
Honored Contributor

Mike,

Thank you for looking into this.

As I indicated in my earlier email "CE95391_USB_HID_Bootloader" did eventually work for me also.

The other USB-based bootloader program called "USBFS_Bootloader" which I got when I created a New project with the Target=CY8CKIT-059 and the example "USBFS_Bootloader" I did not get to work.  It is "out-of-the-box" code, no modifications by me (except for the Bootloadable component to point to the Bootloader hex file).

Len

Len
"Engineering is an Art. The Art of Compromise."
0 Likes
Reply
MiDa_1966691
New Contributor II

Len,

Sorry I missed that you already had CE95391_USB_HID_Bootloader – Working.

Making a new project in Both Creator 4.2 and 4.3 – USBFS_Bootloader

I was able to see the “ out of the box project “ working on a CY8CKIT-059 board.

Note:

So on my end I see project being able to load from the bootloader and executing the boot loadable -

I did notice that the example for the bootloadable -- ONLY turns on the LED –  In main.c

TURN_ON_LED3;

Witch doesn’t really tell you anything –

I changed the main.c in Bootloadable project to just blink the led a little to confirm a new bootloadable is loaded.

//Main.c

int main()

{

    /* Application does not execute any other actions. */

    for(;;)

    {

       

  CyDelay (300);

LED3_Write(1u);

CyDelay (300);

LED3_Write(0u);

            

    }

}

-Mike

0 Likes
Reply
MiDa_1966691
New Contributor II

Len,
I have read your posts and I know you are a not a novice - didn't mean to come across that way.

I just wanted to let you know I tested on my end and it works with the built in example (USBFS_Bootloader)
in both PSoC Creator 4.2 and Creator 4.3 
Targeting a  Cy8CKIT-059 Board – ON MY END

So I’m not sure why it is not flashing on your end.
-Mike 

View solution in original post

0 Likes
Reply
Len_CONSULTRON
Honored Contributor

Mike,

Thanks for all your help and concern.  We're cool!

I'm about to re-download the USBFS_Bootloader as-is from Cypress and try it again.  I'll let you know if anything changes.

The issue I'm having with it is that I can install the Bootloader.  When I go to program the Bootloadable program, the Bootloader Host fails within 10s of msecs with a "The flash row is not valid for the selected array."

The other Bootloader/Bootloadable project I got from the Cypress web site "CE95391_USB_HID_Bootloader" works both in the Bootloader and Bootloadable programming.

Len

Len
"Engineering is an Art. The Art of Compromise."
0 Likes
Reply
Len_CONSULTRON
Honored Contributor

Mike,

Good news!  I reloaded the USBFS_Bootloader example project (out-of-the-box with no mods) and it worked.  The Bootloader allowed me to program the Bootloadable project.

Humm.   I wonder what was different before when I first downloaded it?

Thanks for your help.

Len

Len
"Engineering is an Art. The Art of Compromise."
0 Likes
Reply