M
mmm
Udo said:Yes, that would be an interesting option. Unfortunately we're on a
tight time line and redesigning the circuit would make us loose 1-2
weeks.
We found a different solution that does not require electronic
modifications.
Port A, which we need to be bidirectional, is set to output all the
time. According to Intel (and 3rd party clones seem to match) the
"read" operation on that port always returns the physical state on
these pins, not any internal shadow register or similar. So, when
pulling the pins to high or to low, the state returned by the "read"
operation will follow it instead of the voltage applied by the 8255
itself. With other words, we just have to "read" or "write" to the
port without changing it's direction.
It may be more clear to you if you look at the "schematic" for the
pins on port A. See http://www.dsi.unifi.it/~nesi/8255.pdf at page 4.
I'm a software engineer, not a electronics specialist, (and the idea
wasn't mine) but you probably will see immediately how the components
will play together in the described configuration.
We tried this trick and it works well.
Of course we might change the schematics design for the next version
for which we have a couple of additional weeks to prepare. I like the
FPGA idea but we don't have neither the tools nor the knowledge to
program a FPGA. Our partner company which designs our boards doesn't
either. Once a engineer designed a FPGA for us (different project) but
it was a nightmare and didn't work as expected.
check on the atmel site for ATF15xx family of CPLD:
available on PLCC 44 package , free developing/programming SW, simple
PARALLEL/JTAG programming interface with schematics available
some examples circuits ( amongs other there is an 'improved 8255' )