E
Erik Walthinsen
Guest
I've got a microcontroller-based LED dimmer chip under development for
both my own projects and hopefully to sell at some point. The core
functionality is in place, now I'm onto building some of the more exotic
features I need as well as those that other people might want in the chip.
The basic specs so far are:
- 28-DIP, 32-TQFP, and 32-QFN packages available for this uC
- Zero external components (internal oscillator)
- I2C control over all functions, up to 400Kbps
- Up to 21 dimmable (PWM variant) channels
- 12 bits of resolution for each channel, 8- or 16-bit registers
- ~125Hz refresh rate, maybe up to 500Hz if I work some more voodoo
- Per-pin polarity control (e.g. for common-cathode vs. -anode RGBs)
- Assign any channel to any available pin (e.g. BGR instead of RGB)
The next pieces I'm going to work on are:
- 4x 256 by 12-bit transfer curves for 8-bit control with calibration
- Assign any curve to any channel, e.g. for RGBW arrays
- "Bigger" part with more flash has space for 21 unique curves
- I2C-based bootloader allows secure upgrades
- Assignable GPIO mode option for each pin, input and output
- Special function pins, assignable depending on uC pin function:
- "Refresh" output indicates when communications window is open
- "Sync" input and output to coordinate multiple chips
- "Interrupt" output for GPIO pin-change
The basic chip would probably be somewhere between $5 and $10 depending
on quantity, but that's a wild guess at this point.
Another version with pretty much all the same features is planned built
on an 8-pin chip, either 8-DIP or 20-QFN that will control up to 4 LEDs,
e.g. for a single RGB or RGBW LED. It could also drive FETs with larger
arrays or even Luxeons, etc. (as count the larger one). The code should
also scale up to some of the bigger microcontrollers, with a maximum of
64 outputs without significant resolution/refresh compromises. A
related potential project is a chip that can control Ledtronics' (and
others') 8x8 RGB LED panels at 250+Hz with an SPI interface.
The question I have is this: What other functions would you want to see
in such a chip? I thought about adding all kinds of other options like
servo control, stepper control, etc, but the reality is that driving the
LEDs at this kind of resolution makes most other timer-based options
incompatible.
Additionally, if any one has any bright ideas on where I could
market/sell this thing, I'd much appreciate it. I'm thinking that PC
case modders would be interested, but they would need more
infrastructure than just a bare I2C-controlled chip. I have some other
projects in mind that would solve that problem, but one chip design at a
time, eh? <g>
Oh, and if anyone really wants one of these things, let me know so I
have an idea of whether there's enough interest or not...
TIA,
Omega
aka Erik Walthinsen
omega@vcolo.com
both my own projects and hopefully to sell at some point. The core
functionality is in place, now I'm onto building some of the more exotic
features I need as well as those that other people might want in the chip.
The basic specs so far are:
- 28-DIP, 32-TQFP, and 32-QFN packages available for this uC
- Zero external components (internal oscillator)
- I2C control over all functions, up to 400Kbps
- Up to 21 dimmable (PWM variant) channels
- 12 bits of resolution for each channel, 8- or 16-bit registers
- ~125Hz refresh rate, maybe up to 500Hz if I work some more voodoo
- Per-pin polarity control (e.g. for common-cathode vs. -anode RGBs)
- Assign any channel to any available pin (e.g. BGR instead of RGB)
The next pieces I'm going to work on are:
- 4x 256 by 12-bit transfer curves for 8-bit control with calibration
- Assign any curve to any channel, e.g. for RGBW arrays
- "Bigger" part with more flash has space for 21 unique curves
- I2C-based bootloader allows secure upgrades
- Assignable GPIO mode option for each pin, input and output
- Special function pins, assignable depending on uC pin function:
- "Refresh" output indicates when communications window is open
- "Sync" input and output to coordinate multiple chips
- "Interrupt" output for GPIO pin-change
The basic chip would probably be somewhere between $5 and $10 depending
on quantity, but that's a wild guess at this point.
Another version with pretty much all the same features is planned built
on an 8-pin chip, either 8-DIP or 20-QFN that will control up to 4 LEDs,
e.g. for a single RGB or RGBW LED. It could also drive FETs with larger
arrays or even Luxeons, etc. (as count the larger one). The code should
also scale up to some of the bigger microcontrollers, with a maximum of
64 outputs without significant resolution/refresh compromises. A
related potential project is a chip that can control Ledtronics' (and
others') 8x8 RGB LED panels at 250+Hz with an SPI interface.
The question I have is this: What other functions would you want to see
in such a chip? I thought about adding all kinds of other options like
servo control, stepper control, etc, but the reality is that driving the
LEDs at this kind of resolution makes most other timer-based options
incompatible.
Additionally, if any one has any bright ideas on where I could
market/sell this thing, I'd much appreciate it. I'm thinking that PC
case modders would be interested, but they would need more
infrastructure than just a bare I2C-controlled chip. I have some other
projects in mind that would solve that problem, but one chip design at a
time, eh? <g>
Oh, and if anyone really wants one of these things, let me know so I
have an idea of whether there's enough interest or not...
TIA,
Omega
aka Erik Walthinsen
omega@vcolo.com