Questions about LPC55S69 USB endpoints

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Questions about LPC55S69 USB endpoints

Jump to solution
2,023 Views
scottm
Senior Contributor II

I'm continuing to port projects from the MK22FN1M0 to the LPC55S69 and I just ran into an issue I didn't think to check during part selection - while the Kinetis part supports 16 bidirectional USB endpoints, the LPC part shows 5 logical and 10 physical endpoints.

This just barely gets me what I need in this instance, with MSC taking 2 endpoints, CDC taking 2, and the control endpoint accounting for the others. I'm not sure about the physical/logical endpoint terminology - the Kinetis documentation doesn't use that.

My first question is whether there's a problem with setting both the bulk in and bulk out endpoints for the MSC interface to the same endpoint number - that's how the CDC DIC endpoints are set up. In the examples, bulk in is EP 1 and bulk out is EP 2. I've set them both to EP 1 and it seems to work, but I'd like to understand what's going on and if there was a reason they were set differently.

Next, I see that USB1 (the high-speed controller) supports 6 logical / 12 physical endpoints. That would get me a little more breathing room - other projects still to be ported also need HID and an audio device in some configurations. Is there any reason I shouldn't make USB1 the primary USB interface for these devices?

Thanks,

Scott

0 Kudos
Reply
1 Solution
1,995 Views
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi,Scott,

Regarding the endpoints, each logic endpoint has one physical input endpoint and one physical output endpoint(because there are Data0 and Data1 packet, each physical input endpoint can support two endpoints optionally,each out endpoint can support two endpoints)

The physical Endpoint is a memory pointer, with which the USB packet can be saved either for transmitter and receiver.

So 5 logic endpoint means 10 physical endpoint, in other words, 10 physical input endpoints and 10 physical output endpoints.

For detailed inf, pls refer to the section 44.4.1 USB1 software interface

xiangjun_rong_0-1673509206260.png

Hope it can help you

BR

XiangJun Rong

View solution in original post

0 Kudos
Reply
4 Replies
2,013 Views
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi,

Pls refer to the USB device example dev_composite_cdc_msc_disk_bm, in the usb_device_descriptor.h, you can see that MSC class requires two endpoints, the CDC requires 3 endpoints, 2 data endpoints and one communication input endpoint. In other words, the MSC+CDC requires 5 endpoints.

The USB1 of LPC55S69 has 12 physical (6 logical) endpoints, so it is enough.

For the MSC class, bulk in is EP 1 and bulk out is EP 2. Because the EP index is the logic endpoint index, one can only function as INPUT, another can only function as output, so you can set them both to EP 1.

Hope it can help you

BR

XiangJun Rong

 

 

xiangjun_rong_0-1673340205996.png

 

0 Kudos
Reply
2,006 Views
scottm
Senior Contributor II

OK, just to be extra sure I've got this, the Kinetis endpoints are all bidirectional and have a unique number. The LPC endpoints have logical numbers and one logical endpoint number as output refers to one physical endpoint and the same logical endpoint number as input refers to a different physical endpoint. Is that right?

It seems to be working right, anyway.

USB1 is a high-speed controller. Aside from that difference, is there anything else I need to be aware of? Any limitations relative to USB0 or additional requirements?

Thanks,

Scott

0 Kudos
Reply
1,996 Views
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi,Scott,

Regarding the endpoints, each logic endpoint has one physical input endpoint and one physical output endpoint(because there are Data0 and Data1 packet, each physical input endpoint can support two endpoints optionally,each out endpoint can support two endpoints)

The physical Endpoint is a memory pointer, with which the USB packet can be saved either for transmitter and receiver.

So 5 logic endpoint means 10 physical endpoint, in other words, 10 physical input endpoints and 10 physical output endpoints.

For detailed inf, pls refer to the section 44.4.1 USB1 software interface

xiangjun_rong_0-1673509206260.png

Hope it can help you

BR

XiangJun Rong

0 Kudos
Reply
1,992 Views
scottm
Senior Contributor II

OK, thank you.

Scott

0 Kudos
Reply