Connecting an USB host chip

Go To Last Post
21 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi,

First of all, let me start by saying that I'm not much of a hardware guy. I work mostly with software :P

Where would one connect an USB host chip to an avr32 project? To the memory bus then program the MMU to map it I suppose? If so, how should I do it? Set it up in U-Boot?

Any recommended chips? The idea is to be able to use the usb devices supported by Linux kernel such as Wifi, printers, etc.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yeah most likely you would set it up to use the EBI somehow. Best way might be to find one with a PCMCIA interface (not cardbus) if possible and hang it off the SMC. I believe hce was working on some PCMCIA drivers (or compatibility layers or something) and given that CF is now working, the PCMCIA stuff shouldn't be far off either, assuming that work continues at all! You wouldn't set it up in uboot, no, it would be an os-specific thing.

-S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The link below is actually a PCMCIA socket driver :)

http://avr32linux.org/twiki/bin/...

So the software side should be ok if you manage to find a hardware USB host which supports PCMCIA. The device must also be defined in the kernel of course, the socker driver for it self is only the transport layer.

Hans-Christian

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Sweet, there you go then :D So the CF is accessed as a PCMCIA device rather than, eg, in IDE compat mode? I guess that means IDE support is still slightly further off than I was hoping ;)

Ah well, such is life.
-S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The CF is an interesting option, but wouldn't it be better to connect a chip to the memory bus? Is it possible?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Depends what kind of interface your chip has ;) When we talk about using the CF drivers, all they're really doing is giving you a PCMCIA slot like you'd find on a laptop (though not Cardbus compatible probably so it'd have to be an old laptop).

I haven't looked in to it but I imagined getting a USB host chip with a raw memory interface might be a bit tricky, most want to interface over PCI. At a guess, getting a chip with a PCMCIA interface would be easier than one with this raw interface, but either will work. Whatever blows your hair back.

-S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I finished interfacing a phillips USB 2.0 host, plus
I've included a USB HUB as well. So my boards got 9 ports. It also has ATA/IDE (44 pin connector).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

What's the PN of the USB host and how is it connected? Linkage?

Cheers,
-S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

EBI bus, and its a Phillips ISP1760.
Its designed for embedded.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I suppose you connect it using EBI's sdram mode right? How does EBI work with Linux? Can it detect the USB chip by it's own or is it necessary to write a driver?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well, drivers/usb/host/sl811_cs.c supports a PCMCIA/CF USB host ... single full-speed port, nothing to write home about, but if you just need to hook up your stk1000 as a Linux-USB host "today", it may do.

There are other discrete USB host chips of course. There are Philips chips, which some folk like, and the isp116x chips have a Linux driver. See also www.transdimension.com ... in general, if there's no driver for your chip in the 2.6.21 kernel, expect to have some pain getting a driver to work.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

actully got the driver in source, I'll get it up and running. Its a important part of my board.
Once it finished, i'll post it, so you dont have to worry about it.

Also the board will have a IDE - 44 pin so you can have local storage.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

That would be really great :) Thanks.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Glenn,

Taking a look at the docs, it doesn't seem that the AP7000 allows for any external DMA. Specifically, DMA is never mentioned in relation to the EBI..

Does this mean you are using the ISP1760 chip in PIO mode?

If so, what are your thoughts on the performance of your USB host solution where the host ports are used for say a wifi dongle or usb mass storage device?

Thanks..

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm pretty sure you can DMA to the external world, after all, there are DMA_RQ and DMA_ACK lines brought to the outside world. I think the reason DMA isn't mentioned in relation to the EBI is that it just isn't any different whether you DMA to/from a memory address internal or external to the chip, the engine sees it all as the same thing.

I think. CMIIW.

-S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yes, I have connected up the DMA.
Also wifi bandwidth on the typically usb dongle is not "all" that much, and even reading and writing a hard drive can be quite fast. Depending on the CPU i've even written hand assembly that was faster than dma. (Espessially if you do a treak in hardware to allow fixed size blocks), it can be very fast doing pio. With a RISC cpu, you can sometimes even busy out the chip. (Had problems with a certain scsi chip driving it too hard with a RISC).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

glenn.west@aarcorp.com wrote:
EBI bus, and its a Phillips ISP1760.
Its designed for embedded.

Did you find an evaluation board for development? There is a user manual on the nxp website but I can't find any ordering information for it.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

squidgit wrote:
I'm pretty sure you can DMA to the external world, after all, there are DMA_RQ and DMA_ACK lines brought to the outside world
glenn.west@aarcorp.com wrote:
Yes, I have connected up the DMA

I'm still confused about how to connect an external device with dma.. In section 17.6.2.1 of the AT32AP7000 complete datasheet, the nDMAREQx, dma_req, and dma_ack signals are mentioned but never appear again in the whole document..

The following signals lines are mentioned in Section 2 (Signal Description) and Section 9.7 (Peripheral Multiplexing on IO lines):

PB24 - DMACA - DMARQ[0]
PB25 - DMACA - DMARQ[1]
PC05 - DMACA - DMARQ[2]
PC06 - DMACA - DMARQ[3]

I'm assuming there was just a typo and DMAREQ (mentioned above) = DMARQ, but what about the dma_req and dma_ack signals?

Glenn, it would be very helpful if you could share a more detailed picture of how you connected the ISP1760 to your board.. I may be asking for too much, but would a partial schematic be possible?

certsoft wrote:
Did you find an evaluation board for development? There is a user manual on the nxp website but I can't find any ordering information for it.

The ISP1760 is available at digikey (pn 568-1887-1-ND) in single quantities for ~$8.. There are two dev boards /reference designs on the phillips site but they are for a bsquare dev kit and the pci bus.. I'm not sure how either would useful..

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

fabuser wrote:

The ISP1760 is available at digikey (pn 568-1887-1-ND) in single quantities for ~$8.. There are two dev boards /reference designs on the phillips site but they are for a bsquare dev kit and the pci bus.. I'm not sure how either would useful..

I'm trying to find a source for the bsquare dev kit from NXP sales rep. It seems that it could be tacked on to a PCI prototype board and plugged into the PCI (but not PCI) slot on the STK1000. I just don't want to spin a PC board to do prototyping if I can avoid it.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Whatever happened to this thread? Did your solution work Glenn?
I'm thinking of bringing USB-host support to my NGW100 and I've been into the SL811 device until I read this post... Any news from this at all?
This was more than a year ago, perhaps there are other successful stories today? I would like some input from other trying to add USB-host to NGW100/linux
How do linux handle this EBI/DMA solution?

BR
Anders

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

We're interested in this also. Has someone managed to get it working? With DMA?

Justin.