Inhaltsverzeichnis
1 Einleitung 1
1.1 Aufgabenstellung der Diplomarbeit 1
2 BASIC-Tiger 2
2.1 Blockschaltbild des BASIC-Tigers 3
2.2 Das Bussystem des BASIC-Tigers 4
2.3 Das erweiterte I O-System des BASIC-Tigers (ePorts) 8
2.3.1 Die logischen Adressen 11
2.3.2 Die physikalischen Adressen 11
2.4 Ausgangsbausteine und Eingangsbausteine 13
2.5 Das Tiger Basic Device Konzept 13
2.6 Multitasking 17
3 MAX038 20
3.1 Zeit und Frequenzeinstellungen 22
3.1.1 Eingang FADJ 23
3.1.1.1 Deaktivierung von FADJ 25
3.1.2 Eingang DADJ 26
3.1.3 Durchstimmung der Frequenz 28
4 Die Schaltung 29
4.1 Blockschaltbild der Schaltung 29
4.2 Beschreibung der Schaltung 30
4.2.1 Sukzessive Approximation 31
4.2.2 R 2R-Verfahren 32
4.3 Grobabstimmung der Frequenz des MAX038 33
4.3.1 Analogschalter für Kondensatorauswahl 35
4.3.2 Begrenzte Schrittweite der Frequenz 36
4.4 Feinabstimmung der Frequenz und Tastverhältnis der Spannung des MAX038 37
4.4.1 Realisierung und Berechnung der Schaltung 38
4.4.2 Auswahl des richtigen Operationverstärkers 40
4.5 Ausgangsverstärker 40
4.5.1 FET als steuerbarer Widerstand 42
4.5.2 Ausgangsverstärker mit FET 43
4.6 Dämpfungsglied 43
Inhaltsverzeichnis
4.7 Ausgangsspannung 44
4.7.1 Gleichrichter 45
4.7.2 Umrechnung 47
4.8 Frequenzmessung 49
4.9 Theoretische Betrachtung der Ausgangssignale 53
5 Touch-Panel 57
5.1 Prinzipschaltung für das Touch-Panel 57
6 Software 60
6.1 Flußdiagramm 60
6.2 Programmlisting 61
7 Zusammenfassung 86
8 Danksagung 88
9 Anhang 89
Einleitung Seite 1
1 Einleitung
Signalgeneratoren ( Funktionsgeneratoren ) werden für den gesamten technischen Frequenzbereich benötigt. Die wichtigsten Signalformen sind periodische Sinus-, Rechteck-, Dreieck und Rampensignale ( Sägezahn ). Anwendung finden Signalgeneratoren beispielsweise in Taktgeneratoren, bei der Datenübertragung, oder Analyse von Systemen und Funktionseinheiten, als Zeitbasisgeneratoren oder als Modulatoren, in Prüfgeräten und bei vielen weiteren Aufgaben.
1.1 Aufgabenstellung der Diplomarbeit
Das Unternehmen Wilke Technology GmbH entwickelt und produziert Mikrocontroller mit dem Namen Basic-Briefmarke und BASIC-Tiger. Die Basic-Briefmarke ist ein 8 Bit Mikrocontroller. Der BASIC-Tiger ist dagegen ein 32 Bit-Mikrocontroller. Meine Aufgabe im Rahmen der Dipl.-Arbeit ist es jetzt mit Hilfe des BASIC-Tigers einen Funktionsgenerator zu entwickeln und zu bauen. Kernstück des Funktionsgenerators ist ein Funktionsgenertor- baustein der Firma Maxim mit der Bezeichnung MAX038. Die Aufgabe des BASIC-Tigers ist es die vom Anwender erwünschten Signalformen, Frequenzen und Amplituden, die über ein Touchscreen oder Tastatureingegeben werden, an den MAX038 weiterzugeben. Der Funktionsgenerator soll Spannungen im Bereich von 0,1 V bis 10 V und Frequenzen von
10 Hz bis 10 MHz ausgeben können.
BASIC-Tiger Seite 2
2 BASIC-Tiger
Die auffälligste Besonderheit des BASIC-Tigers ist seine Multitasking-Fähigkeit. Obwohl BASIC-Tiger-Module nicht viel größer sind als ein CPU Chip, ist ein Kompletter Multitasking Steuercomputer enthalten, der über eigenen Programm-Speicher ( FLASH ), Arbeitsspeicher ( SRAM + FLASH ) sowie eine Reihe von Standart-I/Os verfügt. Mehrere Tiger-Basic-Programme ( Tasks ) können in den Programmspeicherdes Tigers geladen werden und bleiben dort, ähnlich der Festplatte eines PC, dauerhaft gespeichert, bis sie durch neue Programme überschrieben werden. Der FLASH-Speicher läßt sich ferner auch als dauerhafter Speicher für Daten verwenden, der von Basic-Programmen aus beschrieben, gelesen und gelöscht werden kann. Der Arbeitsspeicher kann bis zu mehreren MBytes SRAM betragen und läßt sich ebenfalls gegen Stromausfall sichern. Der Vorteil von Multitasking wird sofort offenkundig, wenn man sich reale Aufgabenstellungen für einen Steuercomputer ansieht. Selten besteht eine Anwendung nur aus einer einzelnen Aufgabe, die linear in einer großen Schleife abgearbeitet wird. Schon bei kleinen Anwendungen gibt es meist 3, 4, 5 oder mehr eigenständige Aufgaben zu erledigen, die weitgehend unabhängig voneinander abzuarbeiten sind Man denke nur an Ausgaben auf einen Drucker, Eingaben von Keyboards oder Seriellen Eingänge etc., die Anwendungen oft „ hängen “ lassen können. Um solche Zustände zu vermeiden ist oft einiger zusätzlicher Programmier- und Testaufwand erforderlich. Entsprechend schwerer verstehbar und pflegbar werden solche Programme. Programmiert in Multitasking, bleibt nichts so leicht hängen. Eingaben, Ausgaben oder Auswertungen werden in eigenständigen Tasks abgearbeitet. Ist z.B. eine rechenintensive Auswertung noch nicht abgeschlossen, so werden dennoch erforderliche Steuersignale generiert, der Dialog mit einer Schnittstelle fortgeführt, Informationen auf dem Display und Bedienungstasten überwacht. Derartige Multitasking-Programme laufen nicht nur schneller und zuverlässiger ab, sie sind auch leichter zu pflegen und bieten mehr Übersicht. Zusätzliche Aufgaben können auch später noch leicht als neue Task hinzugefügt werden. Der Leistungsbedarf der einzelnen Aufgaben läßt sich durch Priorisierung der Task fein einstellen, Kontroll-Tasks können wichtige Funktionen im Auge behalten und ggf. Notprogramme starten und Alarm auslösen. Die Programmierung in Multitasking ist beim BASIC-Tiger denkbar einfach und bereits mit wenigen Basic-Zeilen zu realisieren.
BASIC-Tiger Seite 3
2.1 Blockschaltbild des BASIC-Tigers
Abbildung 1 : Blockschaltbild des BASIC-Tigers
SRAM : Dient zur Aufnahme von Anwenderdaten. Eingangsdaten, Zwischenergebnisse,
Ausgangsdaten, i.a. also zur Speicherung der Programmvariablen ( kann über Batterie gepuffert werden ) .
FLASH : Dient zur Aufnahme des Programmcodes und zur permanenten, d.h. spannungs-
ausfallgeschützten Abspeicherung wichtiger Daten.
RTC : Versorgt das System mit Zeit- und Datumsinformationen.
PWM : Wird als D/A-Umsetzer benutzt.
BASIC-Tiger Seite 4
2.2 Das Bussystem des BASIC-Tigers
Von seiner „ursprünglichen Natur“ aus gesehen ist der BASIC-Tiger ein rein geschlossener Mikrocontroller. Das bedeutet im wesentlichen : eine Vielzahl notwendiger und interessanter Zusatzfunktionsbaugruppen befinden sich mit auf dem eigentlichen Chip. Nach außen hin sind nur die Ein- bzw. Ausgänge zu diesen Baugruppen sichtbar und nur darauf kann zugegriffen werden. Die traditionell vorhandenen drei wichtigen Bussysteme eines jeden Mikroprozessor-Systems :
• der Datenbus
• der Adreßbus und
• der Steuerbus
werden nur Chip(Modul)-intern verwendet, sind also nicht nach außen geführt und stehen so dem Anwender nicht zur Verfügung. Diese in sich geschlossene Struktur ist dann sehr sinnvoll einsetzbar, wenn man mit den vorhandenen Systemressourcen auskommt und damit sehr kleine und kompakte Entwicklungen realisieren kann. Die BASIC-Tiger-Module, gleich welcher Art und Ausführung sind geschlossene Mikrocontroller-Systeme, die dem Anwender keinen Daten-, Adreß- und Steuerbus nach außen hin zur Verfügung stellen. Durch die Verwendung eines Teils der vorhandenen digitalen I/O-Ports wird jedoch ein sehr leistungsfähiger Daten- und Steuerbus nachgebildet, so daß trotzdem eine Vielzahl verschiedener Mikrocontroller-Peripherie-Bausteine parallel an die BASIC-Tiger-Module angeschlossen werden können. Der Nachteil ist hierbei jedoch, daß von den 34 digitalen I/O- Bits eines BASIC-Tigers-Moduls folgende I/O-Bits verloren gehen:
• 4 Bits zur Realisierung der seriellen Schnittstelle SER0
• 2 Bits zur Realisierung der seriellen Schnittstelle SER1
• 1 Bit zur Realisierung der Umschaltung PC-Mode Run-Mode
• 18 Bits zur Realisierung von Daten- und Steuerbus --------
25 Bitleitungen
BASIC-Tiger Seite 5
Für den Anwender bleiben zunächst also nur 8 freie verfügbare I/O-Pins übrig. In puncto zusätzlicher Erweiterungsmöglichkeiten gerät der BASIC-Tiger zunächst stark ins Hintertreffen. Man kann das Fehlen der drei Bussysteme jedoch wettmachen, indem man solche „Information-Highways“ durch digitale I/O-Portanschlüsse nachbildet.
BASIC-Tiger Seite 7
D0-D7 : Diese 8 digitalen I/O-Pins bilden den bidirektionalen Datenbus nach.
Aclk : Einlatch-Signal um Adressen für weitere zusätzliche, externe
Dclk : Mit diesem Signal werden auszugebende Daten vom Datenbus aus
INE : Damit werden die digitalen, extern angeschlossenen Eingabebausteine
und weiter verarbeitet werden können.
E : Dieses Signal aktiviert das LC-Display ( Chip-Enable-Signal
RS : Dieses Signal wählt, in Verbindung mit E aus, ob die Daten,
busy-in : Eingangssteuersignal für den Device-Treiber PRN1.TDD :
strobe-out : Mit diesem Signal werden durch den Device-Treiber PRN1.TDD :
BASIC-Tiger Seite 8
busy-out : „ Entgegengesetztes “ Signal zu busy-in.
strobe-in : „ Entgegengesetztes “ Signal zu strobe-out.
Zu beachten ist hier noch das all diese Steuersignale automatisch von den entsprechenden Device-Treibern des Tiger-Basics oder von den einzelnen Tiger-Basic-I/O-Befehlen verwaltet, d.h. gesetzt und zurückgesetzt werden. Wie bei einem „ richtigen “ offenen Mikrocontroller braucht sich der Programmierer hierum nicht zu kümmern, er muss lediglich angeben welche Nutzdaten wohin geschrieben bzw. von woher gelesen werden sollen.
2.3 Das erweiterte I/O-System des BASIC-Tigers (ePorts)
Digitale I/O-Ports sind ein absolutes Muß für einen vernünftigen Mikrocontroller bzw. für ein leistungsfähiges Mikrocontroller-System, das ja vorzugsweise im Bereich der Steuerung, Regelung und Überwachung eingesetzt wird. Nun ist der BASIC-Tiger von Hause aus ja recht „ mager “ mit solchen Ressourcen ausgestattet und weit mehr als die Hälfte der verfügbaren I/O-Ports gehen dann noch für die Nachbildung von Steuer- und Datenbus verloren. Im Rahmen der Dipl.-Arbeit werden auch mehr I/O-Pins benötigt als der BASIC-Tiger zu Verfügung stellt. Deshalb wird hier noch kurz das erweiterte I/O-System (ePorts) vorgestellt. Die Grundlage für die ePorts sind getrennt aufgebaute Ein- und Ausgabeports, die immer 8 Bit breit sind. Die Daten, die nun ausgegeben werden sollen bzw. die Daten, die eingelesen werden sollen, müssen vom BASIC-Tiger zu den Ausgangsbausteinen bzw. von den Eingangsbausteinen zum BASIC-Tiger gelangen. Für diesen bidirektionalen Datentransport wird der ( nachgebildete ) Datenbus in Form des BASIC-Tiger-Port P6 benutzt. Im nächsten Schritt stellt sich natürlich die sehr kritische Frage :
BASIC-Tiger Seite 9
Woher weiß nun z.B. der Ausgangsbaustein Nr.1 , daß er die Nutzdaten ausgeben soll und nicht etwa der Baustein Nr. 3 , denn alle Ausgabebausteine sind ja parallel am Datenbus angeschlossen ?. Oder : Woher weiß der Eingangsbaustein Nr. 7 , daß er seine erfaßten Nutzdaten auf den Datenbus legen soll und nicht etwa der Eingangsbaustein Nr. 3 , denn auch alle Eingangsbausteine sind ja ebenfalls parallel am Datenbus angeschlossen?. Man muß jetzt zwingend eine geeignete individuelle Adressierung für jeden einzelnen Baustein realisieren, so daß eindeutig klar ist, welcher Baustein gerade angesprochen werden soll. Zur Erzeugung dieser notwendigen Bausteinadressierungs- bzw. -auswahlsignale wird beim BASIC-Tiger- Konzept ein sogenanntes Adressierungsbyte oder Adreßbyte verwendet. Mit einem Byte kann man ja bekanntlich 256 verschiedene Zahlen oder Auswahl- Signale darstellen bzw. erzeugen. Wenn man zur Adreßbildung ein Byte benutzt, kann man bis zu 256 verschiedene Adressen bilden, also bis zu 256 Ports konfliktfrei adressieren. Für BASIC-Tiger-Module interne Port- Aufgaben werden nun von diesen 256 Erweiterungsadressen 16 Stück benötigt, die somit für den Anwender wegfallen. Mit anderen Worten : Dem Anwender stehen beim ePort-Konzept 240 Erweiterungsadressen für den Anschluß von 8 Bit breiten Ein- oder Ausgangsportbausteinen zur Verfügung. Insgesamt beträgt also der maximale ePort-Umfang 240*8= 1920 digitale I/O-Pins, wobei eine getrennte Aufteilung in Ein- und Ausgangsports stattfindet.
BASIC-Tiger Seite 11
An dieser Stelle setzt nun normalerweise eine mehr oder weniger starke Verwirrung ein, weil man hier auf einmal mit zwei Adreßsystemen klarkommen muß: dem logischen und dem physikalischen Adreßraum.
2.3.1 Die logischen Adressen
Die logischen Adressen sind nun die Adressen mit denen man real in Tiger-Basic- Anwendungsprogrammen arbeitet. Man erkennt hier deutlich der Adreßbereich von 00h bis 0fh ist tabu. Der Zugriff auf die erweiterten Ein- und Ausgänge des ePort-Systems erfolgt genauso, d.h. mit den gleichen In-Out-Befehlen wie der Zugriff auf die „ normalen “ internen Ports eines BASIC-Tiger-Modul. Zu beachten ist lediglich, daß der logische Adreßraum der ePort-Portadressen von 10h-ffh läuft. Das BASIC-Tiger-Modul gibt also zunächst diese logische Adresse für die externen ePorts auf den Datenbus aus, anschließend ist nun vom Anwender noch eine externe Schaltung zu entwickeln und aufzubauen, die folgende Aufgaben erfüllt :
• Zwischenspeicherung der Adresse und
• Dekodierung der Adresse
Beide Aufgaben sind für die Dipl.-Arbeit nicht nötig, da es fertige I/O-Bausteine von der Firma Wilke gibt.
2.3.2 Die physikalischen Adressen
Unter den physikalischen Adressen versteht man nun die „ echten hardwaremäßig verdrahteten “ Adressen der externen ePort-Bausteine, so wie sie durch die Dekodierschaltung unveränderbar vorgegeben werden. Diese physikalischen Adressen sind also von der jeweiligen, vom Anwender individuell aufgebauten Dekodierschaltung abhängig. So kann z.B. der eine Fall vorliegen, daß der erste externe ePort-Baustein hardwaremäßig die Adresse
BASIC-Tiger Seite 12
00h oder in einem anderen Fall die Adresse 47h besitzt, er also eindeutig immer nur unter einer bestimmten Adresse ansprechbar ist.
Die spezielle Anwenderanforderung könnte daher zum Beispiel lauten : „ Meine externe Dekodierschaltung für die ePorts ist so aufgebaut, daß die echten physikalischen, hardwaremäßig verdrahteten Adressen der Portbausteine im Bereich von 00h bis 30h liegen “ , d.h. der erste Portbaustein ist unter der Adresse 00h, der zweite unter 01h, der dritte unter 02h, usw. ansprechbar. Dadurch ergibt sich jetzt aber eine Diskrepanz zwischen den verschiedenen Adressen :
• im Tiger-Basic-Programm werden immer nur logische Adressen verwendet, die ab 10h beginnen, d.h. der erste externe ePort-Baustein hat in einem Tiger-Basic- Programm immer die logische Adresse 10h.
• der physikalische Adreßraum der ePorts beginnt aber aufgrund der aufgebauten Dekodierschaltung bei 00h, d.h. der erste externe ePort-Baustein hat hardwaremäßig immer die Adresse 00h.
Gibt das BASIC-Tiger-Modul nun einfach die logische Adresse 10h aus, so wird nicht der erste ePort-Baustein adressiert, sondern der 17. Baustein. Um dieses Problem zu lösen, kann man im BASIC-Tiger-Modul eine Adreßumsetzung Programmieren : durch die Compiler- Anweisung user_eport kann man den BASIC-Tiger bei der Abarbeitung des Programms folgendes mitteilen : Immer dann, wenn ein Port-Befehl ( in oder out ) mit einer externen ePort-Adresse ( also mit einer logischen Adressen Adresse > 10h ) zu bearbeiten ist, ziehe ( das ist nicht ganz richtig später mehr ) ich von der logischen Portadresse einen festen Wert ab ( Offset-Wert ) und gebe dann das Ergebnis als neue Adresse ( jetzt identisch mit der phy. Adresse ) über den Datenbus zur externen Dekodierschaltung aus. Man programmiert also das BASIC-Tiger-interne physikalische Offsetregister physoffs mit dem Anfangswert 10h : user_eport physoffs, 10h. Aber ganz so einfach ist das an dieser Stelle leider nicht. Aufgrund des vorhandenen Device-Treiber muss man an dieser Stelle eine neg. Zahl addieren. Die Zahl 10h negative betrachtet entspricht f0h. Somit heißt der Befehl jetzt :
user_eport physoffs, 0f0H
BASIC-Tiger Seite 13
2.4 Ausgangsbausteine und Eingangsbausteine
Ausgangsbausteine müssen anders behandelt werden als Eingangsbausteine. Werden Daten ausgegeben, so benötigen die Output-Portbausteine noch ein Ausgabe-Signal. Werden dagegen Daten eingelesen, so benötigen die Input-Portbausteine noch ein Einlese-Signal. Diese Tatsache macht sich nun ebenfalls in der Adreßbereichsaufteilung der logischen Adressen bemerkbar. Es gibt einen bestimmten Bereich für die Adressen der Output- Portbausteine und einen bestimmten Adreßbereich für die Adressen der Input-Portbausteine Und hierbei gilt :
1. Unmittelbar nach der letzten logischen Adresse für die BASIC-Tiger-internen Ports
( also ab der Adresse 10h ) beginnt der Adreßbereich für die Output-Portbausteine
2. An den Output-Port-Adreßbereich schließt sich unmittelbar der Adreßbereich
der externen Input-Portbausteine an.
3. Eine unterschiedliche Mischung der Adressen beider Porttypen ist nicht möglich
4. Die Grenze zwischen beiden Adreßbereichen ist allerdings frei einstellbar, so daß
Individuelle Anpassungen möglich sind.
Die Einstellung der logischen Grenzadresse zwischen Output- und Input-Adreßbereich geschieht mit Hilfe der Compiler-Anweisung : user_eport lastladr,zahl
2.5 Das Tiger – Basic – Device – Konzept
Egal wie komfortabel ein Mikrocontroller auch ausgestattet ist, irgendwann kommt man zwangsläufig immer an den Punkt, wo Hardware-Erweiterungen des Gesamtsystems notwendig werden, z.B. Ergänzungen um :
• Eine Echtzeituhr, damit erfaßte Meßwerte mit Zeit- und Datumsinformationen versehen werden können.
• Einen Display-Controller, der ein LC-Display ansteuert.
BASIC-Tiger Seite 14
• Einen hochauflösenden A/D bzw. D/A - Umsetzer , der Meßwerte mit einer Auflösung von 12 und mehr Bits umsetzt, anstatt mit den 10 Bits, die der ON-Chip-A/D-Umsetzer liefert, bzw. 8 Bit der D/A-Umsetzer liefert.
• Eine kleine Tastatur zur Vor-Ort-Bedienung des Systems.
Nun treten aber zwei grundsätzliche Probleme beim Anschluß zusätzlicher Peripherie- Komponenten auf.
Problembereich 1: Der hardwaremäßige Anschluß der externen Peripherie-Einheiten an den BASIC-Tiger.
Abbildung 4 : Der Harware-Anschluß externer Peripherie-Einheiten
BASIC-Tiger Seite 15
1. Es muß ein Datenbus existieren oder zumindest mittels I/O-Portleitungen nachgebildet
werden. Über ihn erfolgt der Transport der reinen Nutzdaten zum bzw. vom BASIC-Tiger
2. Über den ebenfalls notwendigen Adreßbus erfolgt die korrekte Adressierung der internen
Arbeitsregister der externen Peripherie-Einheiten. Der Adreßbus wird entweder direkt vom Mikrocontroller zur Verfügung gestellt oder er muß ( aufwendiger ) durch I/O- Portleitungen nachgebildet werden.
3. Die Leitungen des Steuerbusses sorgen für einen korrekten Ablauf des Datentransfers
zwischen den externen Peripherie-Einheiten und dem BASIC-Tiger
Problembereich 2 : Die Bereitstellung der notwendigen Steuer- und Betriebssoftware für die externen Peripherie-Einheiten
Hierbei geht es nun um drei wichtige Punkte :
1. Ansteuerung der externen Peripherie-Einheiten mit den korrekten Adressen. Jede der
unterschiedlichen Peripherie-Einheiten hat einen eigenen, eindeutigen Teiladreßbereich innerhalb des Gesamtadreßbereich des Systems, d.h. nur unter Verwendung bestimmter Adressen kann die jeweilige Einheit exakt angesprochenwerden. Diese Adreßverteilung wird durch den Hardwareaufbau ( meistens ) fest und unveränderbar vorgegeben und darauf muß dann die Ansteuersoftware abgestimmt werden.
2. Die einzelnen Ansteuersignale für die externe Peripherie-Einheit müssen in der zeitlich
korrekten Reihenfolge an den Peripherie-Baustein angelegt werden, sonst reagiert dieser gar nicht oder falsch. Ebenfalls müssen eventuelle Steuersignale, die von der Peripherie- Einheit zum BASIC-Tiger übermittelt werden, von der Software korrekt ausgewertet und interpretiert werden.
3. Zum komfortablen und benutzerfreundlichen Arbeiten mit den externen Peripherie-
Einheiten gehören abschließend noch Sammlungen einfach zu handhabender Software- Routinen ( Device-Treiber ), sogenannte Treiber-Bibliotheken, welche ich in meiner Dipl.-Arbeit eingesetzt habe. Etwas vergleichbares gibt es in der PC-Welt, z.B. unter der
Quote paper:
Joern Bieberle, 1999, Entwicklung und Aufbau eines durch einen Mikrocontroller gesteuertern Funktionsgenerators, Munich, GRIN Publishing GmbH
This text can be quoted and accessed from this url:
Embed
DOI
Raum und Geschlecht als dichotome Konstruktionen
Women Studies / Gender Studies
Intermediate Examination Paper, 41 Pages
Electrotechnology: Entwicklung und Aufbau eines durch einen Mikrocontroller gesteuertern Funktionsgenerators is now available as a printed book
Joern Bieberle now follows Entwicklung und Aufbau eines durch einen Mikrocontroller gesteuertern Funktionsgenerators
Joern Bieberle has published the text Entwicklung und Aufbau eines durch einen Mikrocontroller gesteuertern Funktionsgenerators
Entwicklung von Mikrocontroller-Praktikumsversuchen für Hochschulen
PIC 18F458 und PIC-Universal-B...
Josef Fuhrer
Die Entwicklung der Intelligenz seit der Geburt
Développer l'intelligence dès ...
Georges LEPETIT, Dr Patrick LEPETIT
Entwicklung des Staats- und Verwaltungsrechts in Südkorea und Deutschl...
Vorträge und Berichte auf dem ...
Rainer Pitschas
Carnap's Construction of the World: The Aufbau and the Emergence of Lo...
Alan W. Richardson
Carnap's Construction of the World: The Aufbau and the Emergence of Lo...
Alan W. Richardson
0 comments