>
> I'm looking for websites or books with a number of examples of I/O
> interfaces for use with typical microcomputer digital I/O pins.
> (Searched for things I saw a few years ago, without results...??)
>
> I'd like good examples of stuff like various High-Side and Low-Side
> switches, input conditioning, sensor interfaces, up thru external I/O
> chips like LED/relay drivers etc. And anything you think would be cool
> and show a learner some principle that should be remembered.
>
> I've designed many of these interfaces, and taught some of this stuff
> before, but I bet other people have really good ideas out there that I
> haven't thought of. And I'm (more than?) a little dated in the most
> recent add-on I/O chips with good drive capabilities.
>
> Please point me to examples you think would be good. Eventually I'll
> collect what I can and try to make it available..
>
> I'm using typical Atmel and PIC micros, probably mostly Arduino
> (http://www.arduino.cc/)
>
> I'm also collaborating with teachers using PASCO (http://pasco.com)
> laboratory sensors if anyone has info on interfacing to some of
> them...
>
> Oh, and Analog stuff would be good too... (Don't want Bob Pease to hit
> me up alongside the head) :-)
>
> Thanks for listening...
>
> Regards, Terry King ..On the Red Sea at KAUST
> ...sometimes In The Woods In Vermont
> (E-Mail Removed)
Sounds like a really nice idea.
One thing you might want to consider in this is the use of PLDs to interface
to devfices. If I have various memory mapped devices to interface to this
generally require some decoding, and also sometimes some custom interface
logic to generate strobes and clocks etc. So I tend with those projects to
use a PLD with a byte wide register interface to the micro. I do things like
put the I/O registers in a separate address region so that I can define the
wait states used independently from things like SRAM.
The beauty of PLDs comes when fixing problems - for example if you find an
input has noise you can apply a digital filter inside the PLD itself. In one
case I interfaced a graphics LCD that had a WAIT# signal to an AVR that
doesn't have this, and implemented a simple write posting state machine
inside the PLD. All the micro does is write then immediately poll the same
address, the PLD muxed the WAIT# signal onto the lower data bit, this meant
the micro could burst data at high speed to the LCD within a tight loop
without changing memory spaces in between. PLDs are also great for
partitioning the logic into 5V tolerant and 3.3V logic (assuming you chose a
PLD with 5V tolerant I/O), and can eliminate interface buffers.
Mark.