> > From: Chris Albertson <albertson.ch...@gmail.com> > Yes. It can if done wrong. > > The "correct" way to use USB is to make your USB device "class > compliant" for some class. Then most OSes (and with recent releases > even MS Windows) will have built-in drivers for each class of USB > device. Never buy or design a USB device that requires the user to > instal device drivers. > > The worlds has enough poorly designed USB devices that only have > drivers for old versions of Windows. We don't need more of those >
You are right: if correctly developed an USB device can not require any driver at all to work. I'm an HW/FW developer and I have done it for several years. Luckily today almost any OS (Windows/OS X/Linux) supports the most part of the typical USB classes (like Mass Storage/network/CDC(serial)/...) > Still. If I were designing a counter I'd just have to talk to a local > bus using SPI, "2 wire", I2C or whatever and then have a secon module > that converts "whatever" to USB, rs232, or just a pannel with nixi > tubes and toggle switches > If my project is not money constrained, I prefer to split my device in 2 parts: - the hardcore one which require to be fast and precise (maybe using an FPGA/Pictic/...) - the "user interface" which manage the display/communications/user interaction/... On the first one I have not so a great experience (I'm not a so great time-nut!), on the second part maybe I have some more. Just as an example, selecting an ARM Cortex M3 core (price: about 10-15USD/piece), one can very easily have the following interfaces in one single chip (512kB Flash / 64kB RAM) 1) 1xUSB port and/or 1xUSB Host/OTG 2) up to 6 serial ports (RS232/iRDA) 3) Ethernet interface 4) SD card interface 5) CAN interface 6) several SPI and I2C interfaces 7) integrated 12bit A/D and D/A 8) good DMA implementation 9) ... note to previous points: 1) on most of the ARM devices, there can be 1 o more USB interfaces: they can be set as "device" or "host/OTG", so they can support even USB memory stick 1a) if your USB device is CDC compliant, it can be seen as a fast serial interface by almost any OS: no need of cumbersome USB/serial adapters... 2) there are at least 4/6 serial ports in every chip: I think they can be enough for the typical usage... 3) You can put your SMALL web server on your interface 6) in general they have 2 or 3 SPI interfaces and 1 or 2 I2C interfaces. Even I2S, so you can drive your HiRes DAC 8) almost any peripheral (even standard I/O) can be driven by DMA, thus offloading the CPU from the burden of moving data. - - - - - - Just as an example, in my spare time I'm trying to port the great Lady Heather to the "mini STM32": < http://www.micro4you.com/store/Mini-STM32-STM32F103-TFT-LCD-Board/prod_129.html> so my thunderbolts will not be more depending on an always turned-on PC. The firmware will poll the Thunderbolt(s) and will store the log on a SD card. The color touch screen display (320x240) will permit me to show the most interesting data and interact with them without using any keyboard/push button. The price of this device was not very steep: I bought it for about 20 Euros (on TaoBao). It only requires a +5V power supply, but I have already the thunderbolt power supply, so... There are some similar HW which have more I/Os and capabilities (touch screen/network/...) which cost not much more and can do LOTS of of things (just to start I will suggest you something like the LPCXpresso LPC1768 board). The development tools can be get for FREE (GCC) and there are LOTS of ready made libraries (from the chip makers) which will ease the FW development. . best regards _ Elio. _______________________________________________ time-nuts mailing list -- time-nuts@febo.com To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts and follow the instructions there.