Sida 1 av 1

Utmaning: Är detta latch-up?

Postat: 10 oktober 2005, 19:31:10
av Earendil
Jag håller på med ett litet projekt som så småningom ska mynna ut i att kunna läsa ett FAT-filsystem på ett MMC/SD-kort. Använder just nu en PIC 16F688 som interfacear ett MMC-kort i SPI-mode. Jag driver den med 3.2 volt (ca) från två AAA-batterier.

För att kunna debugga prylen så har jag ett separat kort med en PIC 12F675 som driver en vanlig hederlig 2*16 LCD-display. Detta kort utgör alltså ett slags debugmodul, som jag så småningom har tänkt ha för att kunna mäta på timing, data etc från själva huvudkortet. Debugmodulen drivs med 5 volt, för att LCD:n ska bli glad.

Med hjälp av två ledningar (förutom jord), så klockar jag in debugutskrifter från 16F688 till 12F675, men här får jag lite mystiska problem: Om jag kör med "weak internal pull-up" på debugmodulen på dessa två ledningar så tvärhänger sig filsystemsmodulen (16F688) om jag försöker "sänka" någon av ledningarna. Det är precis som om PIC:en inte orkar med att sänka ingångarna på den andra PIC:en! Det funkar ett litet tag, men sedan låser sig 16F688:an och det hjälper inte ens att ta bort matningen från den! Man måste ta bort de två signalledningarna mellan PIC:arna. Det verkar som om signalledningarna alltså låser och på något sätt "strömförsörjer låsningen" så länge de är inkopplade!

Har jag ingen "weak pull-up" på debugmodulen blir det inga problem, samma sak om jag aldrig försöker sänka någon av ledningarna!

Jag har prövat att driva bägge korten med 5V men det gör ingen skillnad.

Efter att ha surfat en hel del på nätet så tycker jag att detta påminner om "latch-up-problemet". Kan någon hjälpa mig?

Postat: 10 oktober 2005, 20:51:21
av sodjan
Vad har du för "level conversion" mellan 3V och 5V's logiken ?

F688'an kommer alltså att "se" 5V (via WPU i F675'an) på linjerna.
Detta är inte helt bra eftersom den körs med 3V.

All kommunikation sker alltså från 3V's logiken till 5V's logiken ? Jag skulle sätta en transistor mellan PICarna. Basen till F688, emiter till jord, kollekter till F675 (för att "dra ner" ingångarna som hålls uppe av WPU'na.

Latch up kan t.ex inträffa om man bygger sin koppling så att protection dioderna leder. De ska aldrig leda under normal drift.

> Jag har prövat att driva bägge korten med 5V men det gör ingen skillnad.

Det tyder på något annat problem... :-)

Postat: 11 oktober 2005, 08:22:54
av Earendil
Hmm... Det där med transistorn var kanske en bra idé! Jag bör ha tillräckligt med avkoppling, men det kan vara något helt annat också. Ska pröva att labba lite med den interna oscillatorn. Kanske är den inte rätt uppsatt eller nåt sånt.

Tack för hjälpen!

Postat: 11 oktober 2005, 10:29:35
av sodjan
Notera bara att med ett enkelt transistorsteg som nivåanpassning, får du även en invertering av signalen (vilket enkelt justeras i programvaran, bara man kommer ihåg det).