Maker Pro
Maker Pro

Have I killed the MCU for good ?

kellogs

Jan 7, 2014
88
Joined
Jan 7, 2014
Messages
88
by, maybe, grounding a HIGH output ?

I have a PCB with an Atmega88PA MCU and an ADS114S06 ADC that both share three SPI lines (SCK, MISO, MOSI). I was trying to program the MCU (via SPI interface), it responded with its device signature OK, but then verifying the flashed program would fail on byte 0.
Thinking that the ADC is the culprit I thought "why not tie its !RESET line to GND so that it (presumably) tri-states its IO pins ?". Done just that a couple of times, still the same outcome. Then I have probably shorted out some other output pins on the MCU with the loose GND wire... and the Atmega88PA started giving out 0x000000 as device signature.

So, any way to revive it ? What about the conflicting SPI devices, what is the proper way to deal with them ? I currently have 47 ohms on all signal lines between the MCU and ADC, including the SPI lines (as shown in the datasheet above).

Thank you!
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
13,700
Joined
Nov 17, 2011
Messages
13,700
tie its !RESET line to GND so that it (presumably) tri-states its IO pins ?"
Chapter 9.5.5 of the datasheet recommends using /CS to disable the data pins. I haven't seen any explicit notion of the state of the data pins during /RESET.

So, any way to revive it ?
Improbable. You may try to use HV programming (programming with 12 V using a dedicated programmer). This requires that you remove the ATMEGA from your circuit and adpat it to a suitable programmer. If you don't have such a programmer a new ATMEGA should be much less expensive than buying the programmer. Plus there is no guarantee that this will work anyway.

What about the conflicting SPI devices, what is the proper way to deal with them ?
Enable only one at a time. Use the proper method to disable unused chips. In most cases deactivating /CS for those devices should be o.k. as that is the standard method for disabling subscribers.
 
Top