AnsweredAssumed Answered

AMI External Port not packing 16-bit Data

Question asked by AstroMedGlen on Mar 9, 2010
Latest reply on Mar 23, 2010 by AstroMedGlen



    I am experiencing some trouble with Data Packing and reading data from the External Port. My SHARC 21369 is connected more or less directly to the a Cypress USB controller. The data bus on the controller is 16-bits wide. I have setup AMI 1 with the following:


.var _Non_DMA_Settings_AMICTL1 = (BW16 | WS17 | AMIEN | HC2 | RHC2 | MSWF);


ustat4 = (BW16 | WS17 | AMIEN | HC2 | RHC2 | MSWF);
dm(AMICTL1)= ustat4;


I have verified with a USB analyzer that I am sending the following 10 bytes:

32 00,   00 00,   00 00,   96 00,   58 02     ( 5 16-bit words, little endian)


I read in the data via core reads and the result is:

00320000    00000000

00000000    00960000



But what I really want to see is:

00320000    00000096



I have tried bother core reads and DMA with the same result. My understanding is the only requirement that needs to be met for Data Packing is to not include the PKDIS bit and to have a BW of something other than 32. I have done both of these things. Is there some other lesser known requirement? Does data packing not work with some hardware? I do not see what it could be.


Thanks in advance,