??? 03/15/10 00:32 Read: times |
#174136 - There are many things for which USB is unsuited Responding to: ???'s previous message |
That was my point. So what's happened is that the industry, in their infinite wisdom has opted to replace several interfaces that worked very well with one that doesn't work very well for many things.
As a consequence, we have no reliable serial ports, no reliable parallel ports, and quite dodgy "other things" that cause problems. Printers via USB aren't reliable, nor are they particularly useable outside the PC environment, though keyboards and mice interfaced with USB haven't messed me up yet in the PC environment. The widespread use of USB has allowed printer manufacturers to steal bandwidth from the PC in order to reduce their cost. Unfortunately, the result is that you nearly can't buy a printer to use with your MCU. What was the last serially or parallel interfaced printer that you could buy for use with a simple MCU? What did it cost? Those $90 PC printers won't work with your 805x, and, unless you spend quite a little time, effort, and money, you won't be able to use one with the typical MCU of any flavor. You're stuck with a USB-host-capable MCU and a HUGE task of coding for that printer. Try it sometime. Per Westermark said:
A UART does work for fixed-data rate asynchronous data.
A USART does work for fixed-data rate synchronous data. No difference - just a back-end bus with enough bandwidth, and a FIFO to let the PC burst the data. And that was my other point. That 2-second, and sometimes 2-minute timeout that the PC imposes on your traffic requires a very, Very large FIFO. Where would you get such a FIFO? Methinks you'd have to build it yourself. Now ... Where will you get a USART of any sort these days? It's hard enough getting a UART. Philips used to build a nice 24-pin UART with a built-in baud rate generator. They don't offer it any longer. The ones in the old PC's aren't adequate to the task, but even if they were, how would you hook one up to today's USB-interfaced serial adapters, most of which don't even work with the ISP software from various '52 makers. When discussing USB-to-serial or USB-to parallel you really have to separate issues with USB from your issues with a PC. Remember that USB has a 1ms cycle time, so it will not be able to match the reaction times of the handshake lines of a native serial port. That is a limitation of the USB bus, and not of the PC it is connected to. Use a PCI-connected serial port if you want lower latency. ... and how do you do that with a USB-provisioned notebook? And same thing with a USB-to-parallel interface. It is not an adapter that gives a compatible Centronics interface. It is a USB-to-printer interface, and it only works with standard drivers and standard printers. Programs expecting direct access to the signals will fail since the interface just can't transfer the commands with zero lag. True, in that you've stated the problem. There's no solution, though. But while a USB-connected interface does suffer from latencies because of the design of the USB protocol, it can still manage quite high synchronous data rates with a bit of buffering in the USB device. The PC can't guarantee us reaction times to everything that happens, but stepping back into the ms range, it can do very well. And it doesn't take much memory for a FIFO to span milliseconds.
I can stream bluray HD video continuously without any problems. 30GB of data to be played in 2 hours is 4MB/S OR 32Mbit/s. The peak requirements are higher. By the way: if you do want 45Mbit/s - don't use 12Mbit/s USB. 480Mbit/s does have the bandwidth to keep a FIFO filled with capacity to spare. Windows manages to push > 30MB/s continuously. 40MB/s if switching from USB to 400Mbit/s FW. I believe I've already explained why that isn't true ... RE |