- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
----------------------------------------------------------------------------------------
;; Endpoint Descriptor
db DSCR_ENDPNT_LEN ;; Descriptor length
db DSCR_ENDPNT ;; Descriptor type
db 02H ;; Endpoint number, and direction
db ET_ISO ;; Endpoint type
db 00H ;; Maximum packet size (LSB)
db 02H ;; Maximum packet size (MSB)
db 01H ;; Polling interval
-------------------------------------------------------------------------------------------
TD_init():
// set the CPU clock to 48MHz
CPUCS = (((CPUCS & ~bmCLKSPD) | bmCLKSPD1)) ;
SYNCDELAY;
EP2CFG = 0x98;
SYNCDELAY;
EP4CFG = 0x00; // EP4 not valid
SYNCDELAY;
EP6CFG = 0x00;//0xEA; // EP6IN, bulk, size 512, 4x buffered
SYNCDELAY;
EP8CFG = 0x00; // EP8 not valid
SYNCDELAY;
FIFORESET = 0x80; // set NAKALL bit to NAK all transfers from host
SYNCDELAY;
FIFORESET = 0x02; // reset EP2 FIFO
SYNCDELAY;
FIFORESET = 0x02; // reset EP2 FIFO
SYNCDELAY;
FIFORESET = 0x02; // reset EP2 FIFO
SYNCDELAY;
FIFORESET = 0x02; // reset EP2 FIFO
SYNCDELAY;
FIFORESET = 0x00; // clear NAKALL bit to resume normal operation
SYNCDELAY;
EP2FIFOCFG = 0x00; // allow core to see zero to one transition of auto out bit
SYNCDELAY;
EP2FIFOCFG = 0x10; // auto out mode, disable PKTEND zero length send, word ops
SYNCDELAY;
GpifInit (); // initialize GPIF registers
SYNCDELAY;
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello
What are the settings of CyConsole for ISO transfer ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have the same problem setting for cyConsole is its default setting (has it any effect?)
I am not sure why cypress does not provide simple example for such premitive tests!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
For an Isochronous transfer, the length has to be a multiple of 8 times the packet size. For example, if the packet size is set to 128, then the length has to be minimum 1024 Bytes . It can also be 2048, 3072, 4096. Note that, in CyConsole, the maximum transfer length is 4096 Bytes.
Please check this out and see if this solves the problem.
Regards,
Gayathri
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
dear Gayathri
setting packet size to 512 and lenght to 4096 solves the fail problem.
but to reach maximum throughput I think we should put packet size to 1024 :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
db 00H ;; Maximum packet size (LSB)
db 14H ;; Maximum packet size (MSB)
db 01H ;; Polling interval
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
and and in this case
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
EP2CFG = 0x98;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
how can it be done?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I believe for meeting your throughput condition, you want packet size = 1024Bytes, no: of packets/uF = 3 (from descriptor value that you have assigned:
db 00H ;; Maximum packet size (LSB)
db 14H ;; Maximum packet size (MSB)
Also, EP2ISOINPKTS should be assigned 0x03 for ensuring 3 packets/uF. Now that you have kept it for 3packets/uF, now your packet size/uF = 3 * 1024 = 3072. So, now the length that you need to specify in CyConcole should be 8 times this value, i.e. 8 * 3072 = 24576 Bytes. Sorry for the wrong information about the maximum transfer length in CyConsole to be 4096 Bytes. That is for a differnt context, and not for Isochronous transfers.
Regards,
Gayathri
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
dear Gayathri
thanks solved