G
Grzegorz Zalot
Guest
During a new development we experienced critical problems with
PIC 16F648A controllers (package DIP18, date code 03142Y3). We
observed two malfunctions:
1. When writing data to port A, the port configuration in the TRISA
register changed, so that one of the outputs became an input.
This of course caused a malfunction in our circuit. Rewriting the
TRISA register with the correct value helped somewhat, but did not
completely solve the problem. We assume that the wrong bank
(bank 1) was addressed during access of the port data register.
2. About two of three devices hang after having worked for several
minutes, though the watchdog has been activated. This application
makes extensive use of interrupts. We assume that incorrect RAM bank
addressing causes this problem, too.
We tested the same program (i.e. the same HEX file) with three
different controller types:
- PIC16F628 - runs well
- PIC16F628A - runs well
- PIC16F648A - problems occur
Additionally, we used a PIC 16F873 and an 873A with an adapter and
a small software modification, and both performed without problems.
We assume that there is a critical detail in the internal structure
of the controller. We do not know the exact cause of the failures,
nor can we safely reproduce the problem in terms of a "recipe" to
make it happen.
Perhaps anyone experienced similar problems with these chips,
or can give any hint?
Thanks in advance for any response.
--
Grzegorz Zalot
complex ltd.
office tel/fax : +48 32 2505840
mobil : +48 501 301515
http://www.complex.org.pl/
mailto:complex@alpha.pl
PIC 16F648A controllers (package DIP18, date code 03142Y3). We
observed two malfunctions:
1. When writing data to port A, the port configuration in the TRISA
register changed, so that one of the outputs became an input.
This of course caused a malfunction in our circuit. Rewriting the
TRISA register with the correct value helped somewhat, but did not
completely solve the problem. We assume that the wrong bank
(bank 1) was addressed during access of the port data register.
2. About two of three devices hang after having worked for several
minutes, though the watchdog has been activated. This application
makes extensive use of interrupts. We assume that incorrect RAM bank
addressing causes this problem, too.
We tested the same program (i.e. the same HEX file) with three
different controller types:
- PIC16F628 - runs well
- PIC16F628A - runs well
- PIC16F648A - problems occur
Additionally, we used a PIC 16F873 and an 873A with an adapter and
a small software modification, and both performed without problems.
We assume that there is a critical detail in the internal structure
of the controller. We do not know the exact cause of the failures,
nor can we safely reproduce the problem in terms of a "recipe" to
make it happen.
Perhaps anyone experienced similar problems with these chips,
or can give any hint?
Thanks in advance for any response.
--
Grzegorz Zalot
complex ltd.
office tel/fax : +48 32 2505840
mobil : +48 501 301515
http://www.complex.org.pl/
mailto:complex@alpha.pl