Author: ajcord
Posted: 12 Mar 2013 08:56:16 pm (GMT -5)
I've been spending a lot of time researching lately, and I think I finally have a better idea of how the USB will work.
First of all, the hardware. I think I will most likely use an Arduino Nano to handle the bit-banging. Many of the cheap DMX transmitters give this task to the computer since it doesn't take much processing power. However, when dealing with a 15 MHz processor, 40 packets per second is substantial (nearly 40% of the CPU time would be devoted to sending packets). Therefore, I will need to offload this task to dedicated hardware. I chose Arduino mainly for its relative ease of programming. Additionally, I will probably still need the TI transceiver mentioned above to deal with the differential signaling. Any suggestions on my hardware choices are welcome because I am completely new to this.
The software: I will be using usb8x to greatly simplify the driver (why didn't I think of that earlier?). I will worry about this more when I have the hardware decided.
However, one very hardware-relevant software issue is how to write a USB driver for the Arduino. The Arduino Nano's ATmega328 runs at 16 MHz, which is only barely faster than the 12 MHz required for USB. It would seem that doing USB on a 16 MHz processor would require highly optimized code. Yet the Z80, running at 15 MHz, seems to have no problem with USB. Clearly I'm missing something here. If someone could shed some light on this, I would very much appreciate it.
_________________
This isn't the signature you're looking for.
Posted: 12 Mar 2013 08:56:16 pm (GMT -5)
I've been spending a lot of time researching lately, and I think I finally have a better idea of how the USB will work.
First of all, the hardware. I think I will most likely use an Arduino Nano to handle the bit-banging. Many of the cheap DMX transmitters give this task to the computer since it doesn't take much processing power. However, when dealing with a 15 MHz processor, 40 packets per second is substantial (nearly 40% of the CPU time would be devoted to sending packets). Therefore, I will need to offload this task to dedicated hardware. I chose Arduino mainly for its relative ease of programming. Additionally, I will probably still need the TI transceiver mentioned above to deal with the differential signaling. Any suggestions on my hardware choices are welcome because I am completely new to this.
The software: I will be using usb8x to greatly simplify the driver (why didn't I think of that earlier?). I will worry about this more when I have the hardware decided.
However, one very hardware-relevant software issue is how to write a USB driver for the Arduino. The Arduino Nano's ATmega328 runs at 16 MHz, which is only barely faster than the 12 MHz required for USB. It would seem that doing USB on a 16 MHz processor would require highly optimized code. Yet the Z80, running at 15 MHz, seems to have no problem with USB. Clearly I'm missing something here. If someone could shed some light on this, I would very much appreciate it.
_________________
This isn't the signature you're looking for.