LPC1347 USB Control Transfer

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

LPC1347 USB Control Transfer

5,005 次查看
peter_furtner
NXP Employee
NXP Employee

Our customer SIGMATEK wants to implement USB Control Transfers on the LPC1347.

This works nice as long as they have a data length of less than 64 or more than 64 Bytes.

If the data length is exactly 64 Bytes (or a multiple of 64 bytes) then this does not work anymore.

What do they need to do to get this working??

Regards,

Peter

1 回复

95 次查看
dedog57501
Contributor I

Hello,
When USB data payloads equal an exact multiple of the endpoint's maximum packet size (64 bytes for Full-Speed), the receiver hangs because there is no short packet to signal the end of the transfer; to fix this on the LPC1347, SIGMATEK must check if the payload length is a non-zero multiple of 64 and, if so, manually send a Zero-Length Packet (ZLP) with a length of zero right after the main data block to flush the buffer, signal completion, and successfully terminate the transfer.

Best Regards

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-637960%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ELPC1347%20USB%20%E6%8E%A7%E5%88%B6%E4%BC%A0%E8%BE%93%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-637960%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CP%3E%E6%88%91%E4%BB%AC%E7%9A%84%E5%AE%A2%E6%88%B7%20SIGMATEK%20%E5%B8%8C%E6%9C%9B%E5%9C%A8%20LPC1347%20%E4%B8%8A%E5%AE%9E%E7%8E%B0%20USB%20%E6%8E%A7%E5%88%B6%E4%BC%A0%E8%BE%93%E3%80%82%20%3C%2FP%3E%3CP%3E%E5%8F%AA%E8%A6%81%E6%95%B0%E6%8D%AE%E9%95%BF%E5%BA%A6%E5%B0%8F%E4%BA%8E%2064%20%E5%AD%97%E8%8A%82%E6%88%96%E5%A4%A7%E4%BA%8E%2064%20%E5%AD%97%E8%8A%82%EF%BC%8C%E8%BF%99%E7%A7%8D%E6%96%B9%E6%B3%95%E5%B0%B1%E5%BE%88%E5%A5%BD%E7%94%A8%E3%80%82%3C%2FP%3E%3CP%3E%E5%A6%82%E6%9E%9C%E6%95%B0%E6%8D%AE%E9%95%BF%E5%BA%A6%E6%AD%A3%E5%A5%BD%E6%98%AF%2064%20%E5%AD%97%E8%8A%82%EF%BC%88%E6%88%96%2064%20%E5%AD%97%E8%8A%82%E7%9A%84%E5%80%8D%E6%95%B0%EF%BC%89%EF%BC%8C%E5%88%99%E6%AD%A4%E6%96%B9%E6%B3%95%E4%B8%8D%E5%86%8D%E6%9C%89%E6%95%88%E3%80%82%3C%2FP%3E%3CP%3E%E4%BB%96%E4%BB%AC%E9%9C%80%E8%A6%81%E5%81%9A%E4%BA%9B%E4%BB%80%E4%B9%88%E6%89%8D%E8%83%BD%E8%AE%A9%E8%BF%99%E4%B8%AA%E5%8A%9F%E8%83%BD%E6%AD%A3%E5%B8%B8%E8%BF%90%E8%A1%8C%EF%BC%9F%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E6%AD%A4%E8%87%B4%EF%BC%8C%3C%2FP%3E%3CP%3EPeter%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2413050%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20LPC1347%20USB%20Control%20Transfer%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2413050%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%3CBR%20%2F%3E%E5%BD%93%20USB%20%E6%95%B0%E6%8D%AE%E6%9C%89%E6%95%88%E8%BD%BD%E8%8D%B7%E6%81%B0%E5%A5%BD%E7%AD%89%E4%BA%8E%E7%AB%AF%E7%82%B9%E6%9C%80%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%8C%85%E5%A4%A7%E5%B0%8F%EF%BC%88%E5%85%A8%E9%80%9F%E4%B8%BA%2064%20%E5%AD%97%E8%8A%82%EF%BC%89%E7%9A%84%E5%80%8D%E6%95%B0%E6%97%B6%EF%BC%8C%E6%8E%A5%E6%94%B6%E5%99%A8%E4%BC%9A%E6%8C%82%E8%B5%B7%EF%BC%8C%E5%9B%A0%E4%B8%BA%E6%B2%A1%E6%9C%89%E7%9F%AD%E6%95%B0%E6%8D%AE%E5%8C%85%E6%9D%A5%E8%A1%A8%E7%A4%BA%E4%BC%A0%E8%BE%93%E7%BB%93%E6%9D%9F%EF%BC%9B%E4%B8%BA%E4%BA%86%E5%9C%A8%20LPC1347%20%E4%B8%8A%E8%A7%A3%E5%86%B3%E6%AD%A4%E9%97%AE%E9%A2%98%EF%BC%8CSIGMATEK%20%E5%BF%85%E9%A1%BB%E6%A3%80%E6%9F%A5%E6%9C%89%E6%95%88%E8%BD%BD%E8%8D%B7%E9%95%BF%E5%BA%A6%E6%98%AF%E5%90%A6%E4%B8%BA%2064%20%E7%9A%84%E9%9D%9E%E9%9B%B6%E5%80%8D%E6%95%B0%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%98%AF%EF%BC%8C%E5%88%99%E5%9C%A8%E4%B8%BB%E6%95%B0%E6%8D%AE%E5%9D%97%E4%B9%8B%E5%90%8E%E7%AB%8B%E5%8D%B3%E6%89%8B%E5%8A%A8%E5%8F%91%E9%80%81%E9%95%BF%E5%BA%A6%E4%B8%BA%E9%9B%B6%E7%9A%84%E9%9B%B6%E9%95%BF%E5%BA%A6%E6%95%B0%E6%8D%AE%E5%8C%85%20(ZLP)%EF%BC%8C%E4%BB%A5%E5%88%B7%E6%96%B0%E7%BC%93%E5%86%B2%E5%8C%BA%E3%80%81%E8%A1%A8%E7%A4%BA%E5%AE%8C%E6%88%90%E5%B9%B6%E6%88%90%E5%8A%9F%E7%BB%88%E6%AD%A2%E4%BC%A0%E8%BE%93%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%AD%A4%E8%87%B4%3C%2FP%3E%3C%2FLINGO-BODY%3E