Moin ihr Tastenschwinger, ich simulier hier gerade mit Proteus einen Aufbau mit PIC18F4455 und MCP3551. Als Referenz für den MCP3551 hab ich den MCP1802T-50 ausgewählt. Ich erhalte eine Ausgabe über das angesteuerte LCD mit dem Code als Ergebnis. Nebenbei hab ich zur Kontrolle noch den SPI Debugger im Monitor Mode am laufen. Beim SPI Debugger lese ich als Hex 00 3B DF (0000 0000 0011 1011 1101 1111) was als Code 15327 wäre ab. Mein PIC-Programm gibt mir über das LCD den Code 30655 oder Hex 00 77 BF (0000 0000 0111 0111 1011 1111) aus. Schaut man sich das binär an sieht man das das Ergebnis des SPI Debuggers mit einem shift nach links und angeführter 1 in das Ergebnis der Binärzahl vom PIC-Programm überführt werden kann (oder man sieht auch das der Code halb so groß ist). Im Programm hab ich nichts gefunden das den shift erklären würde, die Bytes aus dem SSPBUF sind genau die Hexzahlen die später auf dem LCD angezeigt werden. Verkabel ich die Ref-Spannung direkt an den Vin vom MCP3551 erhalte ich als Code 2097152 was genau dem Maximum entspricht der als Code möglich ist (2^n-1, n=22). Der SPI Debugger macht wieder die Hälfte draus. Greife ich die Spannung mit dem digitalen Multimeter ab und vergleich das mit dem Ergebnis auf dem LCD (nach Umrechnung) so hab ich nach der dritten Nachkommastelle ab an andere Zahlen. Ich bin irritiert ob jetzt der simulierte MCP3551 nicht richtig anzeigt oder das digitale Multimeter von Proteus....habt ihr da irgendwelche Erfahrungen beim simulieren mit Proteus bezüglich der Genauigkeit? Jede Hilfe ist willkommen, Aufbau in Proteus und das PIC-Programm hab ich erstmal nicht beigefügt weil ich denk meine Frage zielt nicht in die Richtung. Mir ist aufgefallen das beim SPI Debugger die Master Clock Frequenz auf 1MHz eingestellt ist, könnte das etwas damit zu tun haben das ich nur die Hälfte als Hexzahl angezeigt bekomme? Mhhhhhh... Gruß Andi
Das es am MCP3551 nichts zu "drehen" gibt, hackt es offensichtlich beim Datentransfer. Ich kenne den "SPI Debugger" nicht, aber wenn bei SPI 1 Bit zuviel bzw. zuwenig erkannt wird liegt es meist an der SPI-Einstellung. Es gibt 4 Kombinationen: Clock polarity: Clock idle = a)HIGH oder b)LOW Clock select: a)Transmit from Idle to activ clock oder b)Transmit from activ clock to idle (MICROCHIP Definitionen)
Danke Chris, Ich weiß noch nicht in wieweit das hilft aber ich schau mir die Einstellungen beim Debugger nochmal an. Das ändern der Master Clock Frequency von einem auf drei MHz (Fosc/16 bei 48 MHz Fisc) hat keinen Unterschied gemacht. wahrscheinlich auch nicht weil er eh nur im Monitor mode läuft. Gruß Andi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.