Forum: Mikrocontroller und Digitale Elektronik Proteus mit MCP3551 -> Angezeigte Werte


von Andreas G. (beastyk)


Lesenswert?

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

von Chris B. (dekatz)


Lesenswert?

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)

von BeastyK (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.