I'd like to modify the following Colibri Toradex Evaluation schematic:
formatting link
Look at page 21 and 22.
If i only want to use 1 USB port, it will probably have to be one of the "Host" ports, right? Like i should delete the other ports (going to "USBC_N" and "USBC_P"), because they are "Clients", right?
Also, I noticed the Host USB ports are the flatter type, while the Clients look to be the fatter ones....why is this?
Unzip the following package. It contains the USB 2.0 standard. Open usb_20.pdf and flip to the first page of Chapter 6. There, you'll see examples of upstream and downstream connectors. Your very own computer, uses the flat connector, so you can see an example in the I/O area on the back of your computer.
formatting link
If you want to be a USB designer, then reading these may help as well.
Well, i don't really want to be a USB designer per se, i just want to be able to hook this one up correctly.
So again, it looks like if i only want to have one USB port, it will have to be a "Host" port, right? And this will be using the flat connectors, right?
Well, i don't really want to be a USB designer per se, i just want to be able to hook this one up correctly.
So again, it looks like if i only want to have one USB port, it will have to be a "Host" port, right? And this will be using the flat connectors, right?
If you want to hook usb devices to it use a host port if you want to use it as a usb device use the other. All of the different types of usb connectors are functionally identical. Some are just smaller.
The purpose of the flat connector, is to help you plug the right kind of device into the connector. If this design is intended to be connected to USB peripherals, then the flat connector seems appropriate. But you should really read the USB specification, at least the section I pointed to. You need to understand the concept of upstream and downstream, and why the connectors are, what they are.
Without wishing to denigrate your abilities, it sounds to me as if you are in way over your head. I strongly suspect you are wasting your time trying to implement whatever it is you want to accomplish. USB is _not_ a trivial thing to implement even for experienced engineers, and it seems to me that you are lacking knowledge I would expect even from a vaguely experienced end user.
The two styles of connector are for different devices. You can't say that you need one or the other based on the fact you only need one. The two ends of a USB lead are not equivalent. The one nearest to the computer is essentially the one with all the control and is functionally as well as mechanically different to the one nearest the peripheral.
The 'A' plug is the rectangular one with the contacts all on the same plane that plugs into either the computer itself or to a hub that is in turn connected to the computer (possibly through another hub). This is the 'upstream' connector as connections in that direction ultimately go in the direction of the computer. The 'B' plug is squarer, with two rows of contacts. These all point downstream, away from the computer and towards the peripherals. Again, this is not merely a mechanical difference - the two sockets reflect differences in the role each device expects to play in the USB connection, essentially whether it is acting as the computer or a peripheral.
Which connector your device needs depends on what it is doing. If it is to be plugged into a computer and work as a peripheral it needs a 'B' socket. If it is to replace a computer and control a devices, whether it be a printer, flash drive, keyboard or whatever, it needs an 'A' socket.
As I said in my opening paragraph, issues such as these suggest a complete lack of familiarity with USB. Take look at Wikipedia's page on USB. Like many Wikipedia pages, it's a mixed bag that mixes things end users should know with a few random engineering topics thrown in for no apparent reason, but you need to understand pretty much _everything_ on that page and much more besides to successfully implement USB.
I'm a total newbie on this subject, of course, but if you cannot be helpful without making yourself feel better by telling me how ignorant I am on this subject, then F*** Off!!
B.S.!
From a wiring perspective, it's only 4 wires, with 2 pull-up resistors. Can't be too difficult....
Well, I think that about wraps things up for this thread. Clearly, you know far more about USB than any of the experienced engineers in these groups. There is no point in people giving help and advice if that's all the thanks they get.
If you already know all the answers why did you bother to post in the first instance? It appears to me that you are unwilling to make what should be a simple decision, i.e. should my device be a USB host or peripheral? This does not take much reasoning, it either is or should be a simple instinctive judgement based on what the device does.
Don't think that going for On The Go as you have mentioned in another subthread simplifies things by avoiding the need to make a simple decision. It doubles complexity since your device is now both and you still have to determine which mode it should be in at any particular time. On The Go is only appropriate for a fairly narrow class of devices.
Yes, as you mentioned in your first reply to my post, it is only four wires. That does not make things simpler but more complex. It means that you don't have separate wires on which to send and recive data. You don't have a wire that says that your particular device is the one currently being addressed. You don't have an interrupt request line so that your device can request the computer's attention. These are all handled by the USB _protocol_ which is much more complex to deal with than a 100 signal bus where everything has its own line. The hardware side of USB is one thing, but that is nothing without the _software_ that makes the whole thing work and where the real complexity is.
My initial post pointed out that USB is not straightforward and politely pointed out that if you are lacking knowledge of the fundamentals then any project you attempt is unlikely to be successful, at least not without a thorough grounding in the basics first. I see that you have also apparently chosen to ignore reference to the standard and other documents that others have referred you to. This also does not bode well. Finally you hurl abuse at people who attempt to assist you simply becasue that assistance is not to your liking. This does not encourage others to help in future and further diminishes the probability of your success.
Ultimately though, it does not affect me. I can and have developed USB peripherals, and vitriol such as yours will not alter that. You are still incapable of doing so. An attitude such as you have already displayed will ensure that you do not alter that either.
If it's clear that I'm absolutely a newbie to USB, why keep telling me how ignorant i am? Oh, to boost your sagging self-image at work?
The devices are gonna be Hosts. As in, they should control peripheral devices like a mouse, keyboard, printer, memory stick. etc....
However, it would be nice to be able to transfer data from one Host to another, which appears to be impossible (no one connects one computer to another to transfer data). So maybe the OTG would be the correct choice, also because of the 480Mbps data rate.
Dude! I only want to hook up the hardware! I'm not a programmer at all!
Why are you making a simple question so difficult?
If you think i'm gonna kiss your ass just to get help, you are sorely mistaken, SmallBrain.
Try getting off your high-horse, and maybe people will be more open and receptive to your advice.....
They make "USB data transfer cables" for this very purpose; inside the cable are two USB clients that share some SRAM or similar. You're correct that it's impossible to transfer data between two USB hosts with "just a cable" -- unless both hosts support USB on-the-go, that is.
"Dude! I only want to hook up the hardware! I'm not a programmer at all!"
Good hardware designs take the software into consideration -- some of the best hardware design I've done is when I did both the software AND the hardware, because you'll think you've designed the hardware well, but as you're sitting there doing the software you'll find some really annoying behavior due to that hardware's design... but happily you've still got the "out" to go and fix it.
I wonder if anyone's collected anecdotes of hardware that -- from software's point of view -- was poorly designing; it'd probably make for entertaining reading!
The reverse also applies. Quite a few years ago I had to interface a pre-existing LAN system to my brand new embedded systems. I designed a comprehensive interface, stage by stage, with removable internal test drivers. We built the first one, and it worked fine. Then we tried to build a second one, and lay artwork. Woops
- things were too complex. Without the stage by stage assembly we just couldn't untangle the faults in finite time. So I redesigned completely, needing much more supervision from the CPU, and wrote the appropriate software. Everything worked, and we could build quite a few of them without any difficulties. The (interrupt driven) software load was trivial.
The critical thing is to have both the software and hardware under your control. Then you can select an optimum, or nearly so, set of trade-offs. It helps to be good in both fields.
--
[mail]: Chuck F (cbfalconer at maineline dot net)
[page]:
Try the download section.
Thanks for posting these. I trimmed alt.computer. I have read until saturation this weekend, so now I am full of more questions.
I have a PIC32 Starter Kit. I've exercised the LEDs and pushbuttons and want to move on. Any day now the postman should bring my PIC32 fanout board from Olimex.
My proposal is a USB 2.0 host controller expansion board. This should give me access to keyboard, later WiFi, and thence everything. Also, the PIC32 is new and this particular expansion board should be received well by the PIC32 community. Perhaps it will also have an upstream facing port with a PIC18F4550. This is a daunting project, but it seems like the one that is needed.
AfterGoogle, I went to Mouser and focused on the Host controllers that they had in stock. :-) I have done a mock up schematic and board in EAGLE using the NEC uPD720102EC-YEB. This is a straightforward reproduction of the schematics from the NEC datasheet, S17998E. By mock up I mean that I have placed "capacitors," and such, but without referring to a catalog and specific mfr and dimension information. That will be a subsequent "design for prototype" pass. At this time, I have not connected the programming ports and the PIC32. The many VDD levels, both on the PIC and the NEC are not managed. It is little more than a napkin doodle.
I read Paul's post and read once through the power delivery whitepaper. I've added 470pF across pins 1,4 on each USB receptacle. I added a 360uF across the +USB and gnd traces near the downstream facing ports.
What I don't see in reference schematics is any attention to fuses. I figure the same concerns on fuses and overcurrent exist in both Host and Hub designs, and I am looking at the ATmel AT43301 datasheet, doc1137.pdf (secured, no NDA). Figure 2.2 (Self-powered Hub) shows a switch connected to the AT43301, but no fuse. They do have a MIC2525-2 in their figure 5-2. Does the MIC2525-2 have the right stuff to be used instead of a fuse?
The white paper mentions the polycrystalline resistor/fuse. I know that Mouser had them a few years ago. I remember thinking they were interesting. Are these used in designs today?
If you happen to have EAGLE, you can view a snapshot at
formatting link
Sorry, but I haven't installed a pdf printer, and my board house doesn't require Gerbers. Perhaps someone else has both EAGLE and Acrobat.
I'd like to do this right. By that, I mean a design that is satisfying and could receive the logo. I assume the process is to make a working prototype, then job it out for "design for manufacture" I assume that the logo goes on a specific model and revision of a design. I was hoping to make a design element that was known to qualify and then just put it on the web.
Questions follow from this. I assume the cost is at least k$10 to do this before the enclosure is considered. Can anyone give an actual total cost (electrical and mechanical separated) for a 1st unit with a logo for, say, an ordinary 4 port hub?
If this is an expansion board and the power is from the mother board, what is the implication on the certification process (I haven't done my reading here) If it is an intelligent hub with the power from an upstream port, a PIC32 (MIPS processor) in the middle, the Host facing downstream, the PIC32 powered from the upstream USB but detachable, can the total assembly receive certification?
Actually, I don't see a USB logo on the PIC32 Starter Kit. Maybe this is a non issue.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.