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?
Utmaning: Är detta latch-up?
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...
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...
