From: Jim Brain (brain_at_jbrain.com)
Date: 2007-04-10 20:05:57
Daniel O'Shea wrote:
> Yes, I'm starting to think that a microcontroller might be the best
> solution after all... what I'm trying to come up with is a
> multi-purpose 9-pin controller that I can use to interface with an
> XScale PXA270 processor, but also maintain C64 compatibility as an
> alternate function. What's complicating things is that the C64
> joystick port has all its switches on the GND (0V) line, but the
> PXA270 direct-keypad interface wants its switches on a 3.3V line...
> Which at first doesn't seem like such a problem, until you want to
> start adding in variable voltage sources that want a connection to
> ground and power, if the ground and power lines are moving around! So
> now what I'm thinking is if I input seven switches and two variable
> voltages to a microcontroller, and then have seven outputs from the
> microcontroller, with a jumper or toggle switch connected to select
> between 0V and 3.3V mode, so then in 3.3V mode the seven outputs would
> be:
>
> Up, Down, Left, Right, 3 buttons @ 3.3V (and X/Y variable voltage
> sources which can bypass the microcontroller and be separately fed
> directly to the PXA270, as it has its own ADC)
>
> ...and in 0V mode, the seven outputs would be:
>
> Up, Down, Left, Right, 1 button @ 0V and X/Y PWM outputs (here the
> variable voltage sources are translated through the microcontroller's
> ADC into PWM outputs for the C64)
>
> After a quick search I'm thinking a PIC16F87xA variant as it has
> 10-bit ADC inputs, and two 10-bit PWM outputs - does this seem
> achievable? (is the microcontroller's TTL I/O 3.3V?) thanks!
I'll vote for the AVR. My PWM code is in C, which is easy to maintain,
and you're free to it. The L (low power) AVRs can do 3.3v, and the
outputs will track Vcc. 3.3v operation will yield 3.3v outputs.
For the PWM code to work, you need 2 outputs for the POT lines, plus 1
IRQ (can;t be on of the outputs) 3 pins
5 JOY buttons = 5 pins
1 select jumper = 1 pin
9 I/O. Assuming one off DIP parts only, the ATTiny has 14 pin DIPs that
offer what you need for $1.80-$2.50.
If space isn't a premium, I vote for the ATMEGA8, a 28 pin IC that has
plenty of program space and IO for what you plan to do. It's $3.66 in
singles. You can add some more goodies to the code later, if you wish.
PICs are a bit cheaper, though the programmers seem a bit pricier (I
bought the PICkit 2 from Microchip for $35.00 or so, but my AVR
programmer was free). Unless someone can spot you a HiTech PIC C
compiler, you're into ASM for the PIC. If ML is a preferred language
for you, then your original uC choice would be fine. I suggest C and
the AVRs because I personally have moved beyond ML (I can do it, but I
never could code it well, and free time grows shorter with each child's
birthday). You may be in the same position (or a similar one). I
suspect most of us are in that boat, as work and family encroach on the
free time.
Jim
--
Jim Brain, Brain Innovations (X)
brain@jbrain.com
Dabbling in WWW, Embedded Systems, Old CBM computers, and Good Times!
Home: http://www.jbrain.com
Message was sent through the cbm-hackers mailing list
Archive generated by hypermail pre-2.1.8.