Was man mit einem Mikroprozessor besser nicht machen sollte ...

21:12, 11.03.2009. Von Pinguin

Bisher hab ich an dieser Stelle ja noch garnicht darüber berichtet, was ich eigentlich den lieben langen Tag im Lab tue, und auch sonst nur sporadisch ein paar Infos rausgelassen. Nun denn, ich versuch das mal etwas nachzuholen. Wen es wirklich interessiert, der darf am Ende gerne die (hoffentlich entstehende) Master-Arbeit lesen - und wer gut in Englisch ist gerne auch korrekturlesen :-).

Das meiste das im Lab passiert lässt sich wohl unter "Wellenausbreitung" und "zerstörungsfreie Prüfung" (nondestructive evaluation) zusammenfassen. Ob es jetzt darum geht verschiedene Wellentypen (Raleigh, Lamb, ...) zur Prüfung zu verwenden, passende Applikatoren herzustellen, oder etwas Theorie dazu zu machen, die Möglichkeiten sind da recht breit gefächert. Mein Job ist es, die ganze Signalerzeugung, -aufbereitung und -verarbeitung auf einen Mikroprozessor unterzubringen, wobei ein Ziel der Betrieb nur mit Batterien versorgt ist. Die Daten sollen dann drahtlos an einen Zentralrechner gesandt werden. Ein Problem dabei sind die hohen Frequenzen - Anregungsfrequenzen im Bereich von 1 MHz, und entsprechend hohe Signale wollen zuverlässig erkannt werden. Bei einem 150 MHz Prozessor ist das nicht unbedingt so einfach.

Entsprechend hab ich mich in den vergangenen Monaten erstmal durch die Manuals des Mikroprozessors quälen dürfen. Dabei lernt man wirklich moderne PCs zu schätzen - bei Mikroprozessoren darf man sich selbst noch Gedanken machen in welchem Speicherbereich man was ablegt, und vor allem wo man genügend Platz für seine Daten findet. Solange man nur programmiert, ist die Sache noch einigermaßen harmlos - tut oder tut nicht. Sobald man aber eine externe Spannungsquelle anschließt um den Analog-Digital-Converter (ADC) zu testen, wird das schon interessanter: Spannungen außerhalb des zulässigen Bereichs können böse Folgen haben. Nun ja, eines der beiden ADC-Module hat dann auch seinen Geist aufgegeben, Eingänge waren auf Masse kurzgeschlossen oder haben das Signal merklich verzerrt. Aber dafür verfügt der Prozessor ja schließlich über zwei ADC-Module, also kann man flugs das zweite nehmen und man ist versorgt :-).

Jetzt hatte ich heute nochmal einen tollen anderen Effekt - fragt mich aber nicht wie das zustande kam: mein externer Speicher, in dem die gesampleten Daten abgelegt werden, kann 16 bit Zahlen speichern (für alle die nicht so viel mit Computern zu tun haben: 16 Einsen oder Nullen hintereinander ergeben eine Zahl, ergibt also 65536 verschiedene Zahlen). Die Zahlen werden dabei parallel übertragen, also für jede Stelle gibt es eine eigene Datenleitung. Irgendwann schaute ich mir die Zahlen, die dort abgelegt mal an, und wunderte mich, warum dort immer 16384 gespeichert war, obwohl eine 0 drinstehen sollte. Es lag nahe mal einfach die Testzahlen 0 (0000 0000 0000 0000) und 0xFFFF (hexadezimal für 1111 1111 1111 1111) in den Speicher zu schreiben und sich die ergebende Binärzahl anzuschaun. Das Ergebnis war:

0000 0000 0000 0000 -> 0100 0000 0000 0000
1111 1111 1111 1111 -> 1111 1111 1111 1111
Interessanterweise ist also offensichtlich die Datenleitung für das 15. der 16 Bits defekt. Keine Ahnung wo der Fehler lag, aber nachdem mein ADC nur mit 12 bit Auflösung Daten liefert, interessieren mich die höheren Bits an sich nicht. Nur das Auslesen wird etwas interessanter, es sollte aber mittels
out16bit = 0x2FFF & resultfromRAM14bit
funktionieren. Dabei ist resultfromRAM14bit die Zahl, die aus dem Speicher gelesen wird, und von der nur die niedrigsten 14 Stellen gültig sind (obwohl eine 16 Bit Zahl ausgelesen wird). Endlich mal eine vernünftige Verwendung für das binäre "UND" gefunden :-).

Allerdings hab ich es dann doch vorgezogen den Chip auszutauschen - wegen des defekten ADC hatten wir schon ein (glücklicherweise kostenloses Test-)Exemplar vom Hersteller geordert. Man will sich ja schließlich später nicht selbst ins Knie schießen und obige Kleinigkeit vergessen :-)

Kommentare Hinterlassen.

Kommentare

  1. Cool! von (Ulf)

    Moin Alex!
    Wow, cool! Auf soetwas muss man erstmal kommen :-).

    Aber was das nachordern angeht:
    Kostet dein Prozessor mehr als ein paar Euro, so dass man sich da wirklich ueber kostenlose Exemplare freuen kann?

  2. Mikroprozessor von (pinguin)

    ... na ja, dass wir nur ein einziges Exemplar als Sample bekommen haben, und das auch erst nach Anruf und nicht per Online-Order, ich glaub das sagt was aus :-) Also ja, kostet um $20-$30 - ich hatte Schlimmeres befürchtet als ich merkte, dass der ADC geschrottet ist, aber es ist halt doch kein Massenbauteil.