??? 07/04/09 12:41 Read: times |
#166730 - Bit-banging can be extremely slow Responding to: ???'s previous message |
Michael said:
A good specific example is to take a look at a modern PC and see that 10 or 12 motherboard hosted USB2.0 high speed ports will likely not sustain any where near the 480Mbit data transfer rate on a single port when multiple devices are connected and in parallel usage. I think you can write that as: "12 of 12 motherboards will not sustain anywhere near 480Mbit transfer rates even with a single port used and no other PCI communication." Anyone with an external disk enclosure with both 480MBit USB and 400MBit FireWire have proably already have noticed that the FW interface will be faster - unless there is something wrong with the FW implementation on the motherboard or the disk enclosure. But I wasn't really talking about the maximum bandwidth of the PCI bus, but the problem that some combinations of cards can result in big latency problems. If you implement a chip programmer that is using the PC processor to toggle I/O pins, then the latencies can severely slow down the interface unless the user has made sure that the other connected PCI devices have reasonable latency timer settings. Let's say that you manage one pin toggle for each PCI transfer. And let's say that you do copy a DVD movie between two PC using a gbit NIC. If the NIC and disk controller has the maximum latency timer settings, your PC will be limited to max 8k pin changes/second. With the latency timers reduced to 64, you may manage 32k toggles. With the disk and NIC having latency timers of 8, you may manage over 100k pin changes (but at the same time lose a lot of bandwidth for the transfer). And the above is still only valid if the driver is able to make use of each time slot it gets allocated. In the end, the PCI bus is designed for intelligent devices. Using it for toggling pins on a serial or parallel port for a low-cost programmer can be extremely slow. That is why people really should look at USB-connected programmers with a buffering processor on the outside. Even with the latencies and inefficiencies of the PCI bus and the USB controller, an intelligent USB programmer can manage several orders of magnitude faster transfers when programming chips. And a modern chip with 1MB of flash can normally be programmed very quickly, if you just manage good transfer rates. A chip that programs 8kB sectors in 50ms requires a minimum transfer rate of 160kB/s or about 1.6Mbit/s if using RS232. The chip I normally work with needs 400ms for a full erase and can then be programmed at 256kB/s. In the end, people should seriously consider replacing their old programmers. Or if they really do need them (for supporting legacy products), they should consider picking up legacy PC hardware. |
Topic | Author | Date |
ISP-flash programmer | 01/01/70 00:00 | |
Re: ISP-flash programmer | 01/01/70 00:00 | |
USB-DB25 converters are not reliable | 01/01/70 00:00 | |
RE: USB-Serial / Parallel converters | 01/01/70 00:00 | |
Not parallel port converters? | 01/01/70 00:00 | |
USB To "Parallel" Adapters | 01/01/70 00:00 | |
PCI latency? | 01/01/70 00:00 | |
PCI Latency....Least of Problem... | 01/01/70 00:00 | |
PCI latency can be a significant problem | 01/01/70 00:00 | |
PCI Speed | 01/01/70 00:00 | |
Bit-banging can be extremely slow | 01/01/70 00:00 | |
Other Bit Banging | 01/01/70 00:00 | |
Slave processor a need for modern PC![]() | 01/01/70 00:00 | |
ISP Flash Programmer with USB | 01/01/70 00:00 |