LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Find Resources
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Usb > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: meizx@i...
    Date: Thu, 25 Jul 2002 04:07:37 -0100
    Subject: Re: [usb] dma
    Top

    Thanks,rudi,
    I am still not so clear about the second problem.For example,in output 
    operation,if the buffer1 is full,the usb core will assert an interrupt to the 
    usb function controller.Then the function controller will download the 
    data from buffer1.As you have said,only 1 buffer,buffer0,is used in DMA 
    mode,how the function deal with buffer1?
    Regards
    MeiZX
    
    ----- Original Message ----- 
    From: Rudolf Usselmann <rudi@a... > 
    To: usb@o...  
    Date: Wed, 24 Jul 2002 16:28:38 +0700 
    Subject: Re: [usb] dma 
    
    > 
    > 
    > On Wednesday 24 July 2002 03:40 pm, meizhangxiong wrote: 
    > > hi,all 
    > > I have there questions about Mr. Rudolf Usselmann's usb device 
    > core. 
    > > 1,In the document,USB Function IP Core 3.1.1,the usb core 
    > surports a 
    > > double buffering feature,and data is being retrieved/filled 
    > from/to the 
    > > buffers in a round robin fation. In this document 
    > 3.2,however,in DMA 
    > > mode,only one buffer(buffer 0)is used,buffer 1 is never used 
    > in DMA 
    > > mode.I want to know if there is any conflition between these 
    > two 
    > > representations and why. 2,In the interupt servcie routine,how 
    > do the 
    > 
    > If the CPU/micro-controller does the filling of buffers,  both 
    > buffers may 
    > be used. For DMA only one buffer is used. This are two different 
    > modes 
    > of operation. Two reasons for that: 
    > 
    > 1) CPU will be slower when filling buffers, therefore double 
    > buffering 
    > is provided. 
    > 
    > 2) To manage double buffering for DMA in hardware would have 
    > increased the size of the core and is most likely not needed as 
    > DMA will  have no problems keeping up ... 
    > 
    > > buffer0/buffer1 exchange data with usb funtion controller?By 
    > DMA mode? 
    > 
    > Not sure what you mean here. Interrupt service of the USB core, 
    > would 
    > be first through CPU intervention to set up the DMA, then second 
    > through 
    > DMA. 
    > 
    > > 3,In usbf_pe.v,the following sentence, 
    > > // New Size (to be written to register file) 
    > > always @(posedge clk) 
    > > 	new_sizeb <= #1 (out_op & dma_en) ? max_pl_sz : (in_op 
    > ? size_next : 
    > > sizu_c); Does it mean that usb core use max_pl_sz space for 
    > each output 
    > > transaction? 
    > 
    > Basically yes, but it depends on many other parameters. During an 
    > OUT transfer the host is sending a data packet to the USB function. 
    > I can not control what the host does, but, I can control what the 
    > core 
    > does in response. Some endpoint types have pre-defined packet 
    > sizes. See USB 2.0 specification for more details. 
    > 
    > rudi 
    > 
    > > Regards 
    > > 
    > >               meizhangxiong 
    > >               meizx@i...  
    > >                  2002-07-24 
    > 
    
    
    

    Follow upAuthor
    Re: [usb] dmaRudolf Usselmann

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.