Hi all… I have a project where I am using a ATTiny861 in a synthesiser/lighting controller toy.
The ATTiny861 is basically the ATTiny85 in a 20-pin package… same CPU, RAM and flash, has the same 64MHz PLL driving a very similar Timer1 peripheral, and is available as a PDIP for less money and effort than trying to interface an ATTiny85 to an I²C GPIO chip.
Next up from that would be a ATMega32U4 which is available as a through-hole module in the form of the "Arduino Leonardo", for nearly 10× the price of an ATTiny861. (A big jump, but it too, has the 64MHz PLL.)
I am using two PWM channels, one for audio (OC1B/PB3) and the other for light dimming (OC1D/PB5). I have reserved the pins needed for ICSP (DI/PB0, DO/PB1, SCK/PB2, nRST/PB7)… as there is the option to also "network" units via I²C using those pins. That leaves PB4 and PB6 on the left side, and all 8 GPIO/ADC inputs PA0 through to PA7 on the right side for interfacing to the buttons and lights.
In order to multiplex the use of OC1D, in my prototype I have connected it to the output-enable pin on a 74HC374, and I use one of the spare GPIOs on the clock line. That same clock line connects to the control pins on two 74HC4066s. Each pin on port A connects to one of the '4066 channels and one '374 input: so when the control GPIO is high, the 4066s connect port A to 8 external inputs, when low, the external inputs are disconnected, allowing me to assert the control signals for the '374 to latch.
The switching and sampling is done in the Timer0 interrupt which at the moment runs at 8kHz (the sample rate for the synthesiser).
Haven't tested the above, but it should let me sample the inputs as either analogue or digital at a 4kHz rate, whilst allowing me to PWM the lights with a maximum ⅛ duty cycle or ~500Hz refresh rate
Now, laying out signals for these two chips is a royal pain… and to that end, I had a look around and stumbled on the 74HC574, which has a *much* nicer pin-out than the horrid '374 and are a similar price (~70c each). I'll probably order a small tube of them.
As for the 4066s, I have Motorola MM74HC4066s up the wazoo at the moment… years ago we bought a box of random ICs off eBay, and amongst some real rarities, there were 5 full tubes of these '4066s, with 824x date-codes. They're fine, except the pin-out is a pain.
Thus, I'm wondering if someone has seen a chip with the following properties:
* Quad or Octal SPST configuration
* Ideally one single "enable" pin, though I can live with individual pins for each "switch" (I'll just tie them together)
* Inputs on one side and outputs on the other like the 74HC57
* Through-hole package, as the plan is to possibly make this project a kit for others to build, and not everyone can manage SMT.
I suspect I know the answer already, but I've been wrong before. :-)
Everything I've seen to date routes the input to an adjacent pin on the same side of the IC. If I can't improve on that, I might as well stick with the old faithfuls as they are also cheap (~60c) and readily available. There might be other ways of "disconnecting" the outside pins without losing ADC functionality, and I'm open to ideas there too.