Is 80C535 Compatible with 80C31?

Discussion in 'Embedded Systems and Microcontrollers' started by Jusman_Sulaiman, Apr 18, 2011.

  1. Jusman_Sulaiman

    Thread Starter New Member

    Apr 18, 2011
    3
    0
    Hello dear friends,

    I have some novice experience with 8051 programming in Assembler.
    Recently I have to repair several Vehicle ECU(Electronic Control Unit). The ECU employs two Siemens 80C535 microprocessors in the unit, so I wanted to test the 80C535.

    Since it is difficult to find an 80C535 Tester, I decided to build a simple one myself. With many 8051 circuits are in the Internet, I was succeded in building an 80C31 Development Board. It can be connected to PC running Hyperterminal via RS232 port, and has a Monitor Program in the EPROM. I can download a hex format 80C31 program from the PC into the board's RAM and run it. It has also an 8 bit port to connect to the outside world.

    Afterwards, I built a same board, but I substituted an 80C535 in place of the 80C31. I implemented some modification of course :
    1. Set the Reset pin normally high, merely by connecting a 10µF from pin 10 (Reset) to Gnd. (while 80C31 needs this pin normally low).
    2. Connected a 0.1 µF from pin 37 to Gnd.
    3. Connected a 22 µF from pin 11 (V reference) to Gnd. Also connected a 100 Ohm resistor from this pin to +Vcc.

    I connected PSEN, Read, Write, EA, PE and ALE appropriately, and set Port 0 and Port 2 for memory access just the way the 80C31 does.

    However, when the board had been built and connected to the PC (running Hyperterminal), no Welcome Message nor any character appeared on the Hyperterminal. I have checked all the hardware and nothing was wrong.

    Please advice whether I have to do some more setting, or anything. I appreciate every suggestion, thank you.

    Jusman Sulaiman
     
  2. Arm_n_Legs

    Active Member

    Mar 7, 2007
    183
    10
    The 80C535 has a watchdog timer. 8031 does not have watchdog timer, therefore if you are using the code for the 8031 on the 80535, the watchdog may not be properly handled (assuming if the watchdog is turned on at reset).
     
  3. Jusman_Sulaiman

    Thread Starter New Member

    Apr 18, 2011
    3
    0
    Arm_n_Legs,

    Thank you for your advice. Yes I have just consulted the Datasheet. After reading a glance, I think that the Watchdog has to be made inactive. It described that the Watchdog Timer can be cleared by setting two bits in two different special function register (IEN0.6 and IEN1.6) by two consecutive instruction.

    So far I have added an additional Reset Circuitry to the board, still using R & C timing but us stabilized by a 3.3V Zener diode and buffered by a Schmitt Trigger 74HC132. I took the circuitry from a working CPU card employing also the 80C535.

    When I gave it a try yesterday it worked fine, but after I key in 3 commands, the Monitor program stop working. I put the Power Supply off, ad on again, but it could not work again ever since. But when I tried it this morning it worked, and again it stop working after some keystrokes input at the Monitor program.

    Anyway, I thank you very much for your advice, for which I will learn much about Watchdog Timer, to overcome my problem.

    I appreciate any suggestion or any input. Thank you for your attention.

    Jusman Sulaiman
     
  4. Jusman_Sulaiman

    Thread Starter New Member

    Apr 18, 2011
    3
    0
    The problem with my 80C535 Development Board, which I will use as a simple tester, is that it locks up after some minutes running. The reset circuitry is still use R-C timing.

    I would like to replace the reset circuitry with the 3-pin MAX809 which has a precision Vcc monitoring, guaranteed Power On Reset pulse, and guaranteed Reset pulse at brown-out. I hope it can overcome the problem.

    If it can not, so I will consider using the internal watchdog timer that come with the 80C535. I will kick the dog at one to three important loops in the program, and I will see the result.

    The dog is sleep at Power on or after an external reset, so we need to insert the instruction at the loop(s) :

    clr EN0.6 ; kick the dog
    clr EN1.6
    ...
    ...
    elsewhere subsequently in the loop
    ....
    setb EN0.6
    setb EN1.6
    ....

    Please anyone advice, and thank you very much for your attention
     
Loading...