??? 09/26/04 01:59 Read: times |
#78143 - RE: p89c51rd2 ISP failed Responding to: ???'s previous message |
Hi Kashyap,
As far as I know the WDT cannot be disabled in a 1232 supervisor chip. But I am not sure of the IMP 1232. One simple way to feed the 1232 is from the ALE pulse and set the 1232 for maximum time out ( tie TD pin to Vcc) - why not try this ? As Steve said the exact level of Vcc is very important. Before giving up on the IC did you try checking if the ALE pulse is normal with a scope ? Also you can monitor the activity on the Reset pin with a scope. ( You can use the unused !Reset output of the 1232 via a transistor buffer to drive a LED and this will tell what the Reset is doing) Normally I have found that issues like above prevent the IC from entering the programming mode rather than a fault with the IC. And once you have the Emergency escape route as outlined by Erik ( thanks to him), there is never a case of taking the chip to a parallel programmer to restore things. Just for your information I have enclosed the code snippet that will implement the Emergency Escape route. This has to be the first routine in code memory ( 0000H ) or at the location where your code starts. <pre> ;*********************************************** ;++ ~ENABLE BOOT VECTOR /89c51rd2 +++++++++++++ ;*********************************************** BEGIN: JB P3.1, INIT_ALL ; If TxD is Low enter programming mode WRSB: MOV AUXR1, #20H ;set the Enboot bit MOV R0, #6 ;FOSC MOV R1, #06H ;program status byte MOV DPTR, #0000h ;specify status byte MOV A, #0FFH ;Non zero status byte CALL 0FFF0H ;execute the function WRBV: MOV AUXR1, #20H ;set the Enboot bit MOV R0, #6 ;FOsc MOV R1, #06H ;program boot vector MOV DPTR, #0001h ;specify boot vector MOV A, #0FCH ;new value for the boot vector CALL 0FFF0H ;execute the function JMP $ </pre. In the above the INIT_ALL, is the routine where your normal code begins. Raghu |