Forum: Mikrocontroller und Digitale Elektronik Wie könnte das gehen...?


von Jürgen (Gast)


Lesenswert?

Hallo,
nachdem ich letztens das Problem mit den Werten der RS232 Schnittstelle
hatte (habe ich gelöst) wirft sich nun eine neue Frage auf. In der
ersten Spalte der Tab stehen die Hex-Werte welche ich über die rs232
ausgelesen habe. danach steht der zugehörige Bin-Wert.
Der nächste Bin Wert ist jener welcher eigentlich am D/A Wandler die
zugehörige Spannung einstellen sollte.
Nun fehlen mir die Zusammenhänge zwischen einem Dezimalwert von 0-4095,
dem zugehörigen Hex-Wert bei welchem nach der 01 die 06 folgt und nach
09 dann 0E....(s.u.) und dem Wert welchen der Controller letztendlich
zum D/A Wandler schickt.
Zum Verständnis nochmals: Ich habe eine Baugruppe mit jeweils einem
12bit D/A Wandler, einem 12bit A/D Wandler und einem AT89S8252-24
Vielleicht gibt es jemanden unter Euch, der hier nach dem ersten drauf
sehen sofort des Rätsels Lösung erkennt.

Vielen Dank für Eure Unterstützung,

Alles Gute von Jürgen....

     Wert zum Controller   Wert vom Controller   Spannung
       über die RS232        zum D/A Wandler
         ausgelesen
40 00  0100 0000 0000 0000  0000 0000 0000    0mV
40 01   0100 0000 0000 0001  0000 0000 0001    1mV
40 06   0100 0000 0000 0110  0000 0000 0010    2mV
40 07   0100 0000 0000 0111  0000 0000 0011    3mV
40 08   0100 0000 0000 1000  0000 0000 0100     4mV
40 09   0100 0000 0000 1001  0000 0000 0101    5mV
40 0E   0100 0000 0000 1110  0000 0000 0110    6mV
40 0F   0100 0000 0000 1111  0000 0000 0111    7mV
40 10   0100 0000 0001 0000  0000 0000 1000    8mV
40 11   0100 0000 0001 0001  0000 0000 1001    9mV
40 16  0100 0000 0001 0110  0000 0000 1010    10mV
40 17  0100 0000 0001 0111  0000 0000 1011    11mV

Die Software, welche unter DOS läuft, zeigt beim Hochfahren
der Spannung auch einen Dezimalen Wert an welcher von 0
bis 4096 anzeigt in Einerschritten.
Beim Controller handelt es sich um einen MAX530 welcher einen
12bit D/A Wandler beinhaltet wobei 3 mal 4 Bit übertragen werden.
Zu Beachten ist bei den mitgelesen Werten an der RS232 Schnittstelle
folgendes:
Anzeige in Reihenfolge der 4. Stelle: 0, 1, 6, 7, 8, 9, E, F
                           3. Stelle: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
              A, B, C, D, E, F
         2. Stelle: 0, 1, 6, 7, 8, 9, E, F
         1. Stelle: 4, 5, 6, 7

während die 2-4 Stelle noch einen kontinuierlichen Anstieg
verzeichnen sieht es mit der 1. Stelle wie folgt aus:
Wenn man die Spannung von 1mV bis 4096mV hochfährt in 1mV
Schritten ist die Reihenfolge der 1. und 2. Stelle wie folgt:
40, 60, 41, 61, 46, 66, 47, 67, 48, 68, 49, 69,
4E, 6E, 4F, 6F, 50, 70, 51, 71, 56, 76, 57, 77,
58, 78, 59, 79, 5E, 7E, 5F, 7F

In der ersten Stelle werden wohl auch noch Befehle für des
Auslesen eines A/D Wandlers gesendet. Das wäre dann aber
ein neues Thema


Alles Gute von Jürgen....

von Alexander (Gast)


Lesenswert?

Hallo,

bit 1 und 2 sind immer gleich und wenn man eins davon wegwirft, käme ja
das richtige raus...

Gruss
  Alexander

von Alexander (Gast)


Lesenswert?

Hallo,

bist Du sicher, das die Baudraten genau übereinstimmen? Nicht das er
das Bit doppelt erkennt.

Gruss
  Alexander

von A.K. (Gast)


Lesenswert?

Kurioser Code. Erkennbar ist da mindestens ein Bit an falscher Stelle,
ein paar andere werden verdoppelt.

> 40, 60, 41, 61, 46, 66,

Bit0 vom linearen Wert steht in Bit5 vom Code.
Bit2 vom Code ist eine Wiederholung von Bit1.
Was das aber soll...

von Jürgen (Gast)


Lesenswert?

Hallo,

zunächst mal vielen Dank für Eure Mühe und Antworten...
 Ich werde wohl mal noch etwas mit der Baudrate spielen müssen

Was ich auch herausgefunden habe ist folgender Sachverhalt:

lt der Tabelle "empfange" folgende Werte zu den jeweiligen
Ausgangsspannungen:
muß aber den Wert per Hand, über ein terminalprogramm, eingeben welcher
in der letzten Spalte steht! Hier ergibt sich, zumindestens in der
letzten Stelle, ein fortlaufender Wert wie er mir auch sinvoller
erscheint als die Sprünge von 1 auf 6 bzw. von 9 auf E.
In dem hier gezeigten Auszug sind sogar 2 Werte gleich. Ich habe mir
nicht die Mühe gemacht die Tabelle für alle Spannungswerte zu
erstellen. Ich hoffe mit diesem kurzen Auszug hinter das Geheimnis zu
kommen.
Die in meinem ersten Beitrag zu diesem Thema genannten Werte vom
Controller zum D/A Wandler habe ich nicht messen können, das sind die
Werte aus dem Datenblatt vom MAX 530.
In den ersten 2 Bytes (40) bzw. konkret im ersten Byte wird nach meinen
bisherigen Erkenntnissen auch bei Bedarf Bits gesetzt wenn Werte von der
Baugruppe ausgelesen werden sollen.


40 01    1mV  40 11
40 06   2      40 12
40 07   3      40 03
40 08   4      40 14
40 09   5      40 05
40 0E   6      40 06
40 0F   7      40 17
40 10   8      40 18
40 11   9      40 09
40 16   10     Wert konnte ich nicht eingeben
40 17   11     40 1B
40 1C   12     40 0C
40 1D   13     40 1D   !!!!!!!!!!!!!!!!!
40 1E   14     40 1E
40 1F   15     40 0F
40 20   16     40 30
40 21   17     40 21   !!!!!!!!!!!!!!!!!
40 26   18     40 22
40 27   19     40 33
40 28   20     40 24


Vielleicht hilft das noch ein wenig. Wenn es der Anschaulichkeit
dienlich ist, werte ich diese Tabelle noch um die Binärwerte ergänzen.

Vielen Dank für lesen und eine schöne Woche..... Jürgen....

von Jürgen (Gast)


Lesenswert?

Noch ne Frage zur Baudrate,
weiß zufällig jemand in welchem Bereich man beim AT89S8252-24 die
Baudrate einstellen kann? Er hat extern einen 20 MHz Quarz drann.
Neben dem Bereich (von-bis) würde mich auch die Schrittweite
interessieren.

Danke.... Jürgen...

von Jürgen (Gast)


Lesenswert?

Hallo,

Habe mal weitere Versuche mit der Baudrate gemacht.
Habe in einem relativ großen Bereich konstante Werte ermittelt.
Der Bereich geht von 15600 - 17700, daraufhin habe ich den ca.
Mittelwert eingestellt von 16k5

Dabei gehen die "abgelauschten" Werte von
A000 - A07F
B000 - B07F
A100 - A17F
B100 - B17F
A200 - A27F
B200 - B27F
.....
BF7F (Ende)

Ich hatte zwar erwartet daß es von A000 bis AFFF geht aber das ist erst
mal wieder ein Fortschritt.
Jetzt stimmen die "abgelauschten" Werte auch mit den per Hand
einzugebenden Werten überein. Allerding kann ich für den größten Wert
BF7F auch BFFF eingeben oder auch AFFF !

Sonstige Parameter sind Wortlänge 8, keine Parität, Soft- bzw. kein
Handshake und 2 Stopbits.

Die Stopbits kann ich nur 1 oder 2 einstellen. Hatte mal irgendwo
gesehen, da konnte man auch 0 einstellen. Ob das noch einen Einfluß hat
??

Vielen Dank für eventuell weitere Hinweise..... Jürgen...

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.