PIC -ISA interfacing weird problem

Started by kalyanramu vemishetty January 23, 2005
Hi all,

I am interfacing pic microcontroller (pic18f452) to
FDC37c672 from SMSC. FDC37c672 has some UART and IrDA
capabilities which I want to explot.

It has an ISA bus interface. I am able to read the
registers from the FDC37C672.
But for some reason I am unable to write to the
FDC37C672 using PIC using C. So, I connected it to
Computer's ISA slot and wrote code Visual C++. On PC,
I am able to read and write to FDC37C672. I am not
sure what is wrong with my circuit. Did anyone ever
face any problem like this. I want to learn from your
experience.
Please feel free to suggest me. I can send you
schematics of my PCB board if you are interested in.

Thanks,
Kalyan




Hi-

All the time. I do it for a living. There are as many different
problems as there are designs.

I would suggest a logic analyzer as a method of debugging at this
point.

I assume that you have set breakpoints in your code and have seen
that the static states of I/O are met correctly. This would
imply that it might be a timing problem.

Looking at the data sheet for the SMSC chip, I would be interested
in making sure that the min. and max timing for the selected
signals are within the specs of the SMSC chip.

Hook up the logic analyzer on the ISA prototype and snapshot a
bus transaction.

Wander over to the PIC circuit and snapshot that one.

Compare the two. Reference the data sheet for the SMSC chip.

1. Does the timing look reasonable?

2. Are the signals being driven correctly. I.e. I read somewhere
that some I/O on the chip can be open drain. I don't know if
it was the bus side or the I/O side.

3. Are things getting tri-stated in the right order? ISA is
a bi-directional bus after all.

You will want to have a good high speed oscilloscope available as
well. Undershoot and overshoot can be particularly annoying problems
that might require series termination, for example. I would
suggest a scope with at least 500MHz bandwidth for this exercise.

4. Optional. A 100pin QFP or TQFP clip for hooking up the
logic analyzer to the chip. Or a breakout connector like a 3M
that you wire in parallel to the chip.

This is no different than any other design exercise on interfacing
a computer bus with an I/O device. Oh, and one other thing. I've had data sheets that lie.

Best of luck.

Cheers,

Rich S. --- In , kalyanramu vemishetty
<kalyanramuv@y...> wrote:
> Hi all,
>
> I am interfacing pic microcontroller (pic18f452) to
> FDC37c672 from SMSC. FDC37c672 has some UART and IrDA
> capabilities which I want to explot.
>
> It has an ISA bus interface. I am able to read the
> registers from the FDC37C672.
> But for some reason I am unable to write to the
> FDC37C672 using PIC using C. So, I connected it to
> Computer's ISA slot and wrote code Visual C++. On PC,
> I am able to read and write to FDC37C672. I am not
> sure what is wrong with my circuit. Did anyone ever
> face any problem like this. I want to learn from your
> experience.
> Please feel free to suggest me. I can send you
> schematics of my PCB board if you are interested in.
>
> Thanks,
> Kalyan >
> ---------------------------------
>