Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
projekt_mexle_handoszi:start [2021/09/20 10:10] – [4.5 Akku-Schaltung und Spannungsversorgung] mirupp | projekt_mexle_handoszi:start [2021/09/20 21:12] (aktuell) – mirupp | ||
---|---|---|---|
Zeile 7: | Zeile 7: | ||
== Anforderungen == | == Anforderungen == | ||
Die Anforderungen an die Funktionen des Oszilloskopstiftes ergeben sich wie folgt: | Die Anforderungen an die Funktionen des Oszilloskopstiftes ergeben sich wie folgt: | ||
- | * Messung einer analogen Spannung im Bereich von -10V bis +10V | + | * Messung einer analogen Spannung im Bereich von -10 V bis +10 V |
* Die Abtastung soll Signale (Rechtecksignale und sinusförmige Signale) mit mindestens 50 kHz, im Optimalfall bis 1 MHz erfassen können | * Die Abtastung soll Signale (Rechtecksignale und sinusförmige Signale) mit mindestens 50 kHz, im Optimalfall bis 1 MHz erfassen können | ||
* Ausgabe der Messdaten über ein Display | * Ausgabe der Messdaten über ein Display | ||
Zeile 14: | Zeile 14: | ||
* über WLAN | * über WLAN | ||
* Möglichkeit die gemessenen Spannungen mit einer Oszilloskopoberfläche darzustellen | * Möglichkeit die gemessenen Spannungen mit einer Oszilloskopoberfläche darzustellen | ||
- | * Der Zielpreis eines Exemplars sollte unter 60€ liegen | + | * Der Zielpreis eines Exemplars sollte unter 60 € liegen |
== Vorhandene Arbeiten == | == Vorhandene Arbeiten == | ||
- | Aus einer vorherigen Arbeit war bereits ein Entwurf eines Oszilloskopstiftes vorhanden. Dieser umfasste einen Mikrocontroller auf ARM Basis, eine Schaltung zur Analog-Digital-Wandlung von gemessenen Spannungen und ein LC-Display. | + | Aus einer vorherigen Arbeit war bereits ein Entwurf eines Oszilloskopstiftes vorhanden. Dieser umfasste einen Mikrocontroller auf ARM-Basis, eine Schaltung zur Analog-Digital-Wandlung von gemessenen Spannungen und ein LC-Display. |
== Gründe für die Neuauslegung == | == Gründe für die Neuauslegung == | ||
Zeile 36: | Zeile 36: | ||
===== 3. Funktionen des Handoszilloskop ===== | ===== 3. Funktionen des Handoszilloskop ===== | ||
- | Die Erfassung der Spannungswerte geschieht über vier miteinander verschachtelte ADC-Wandler des PIC32, womit eine Sampling-Rate von 12 MSps erreicht wird. Laut dem Nyquist-Abtasttheorem können somit Frequenzen bis 6 MHz gemessen werden. (([[https:// | + | Die Erfassung der Spannungswerte geschieht über vier miteinander verschachtelte ADC-Wandler des PIC32, womit eine Sampling-Rate von 12 Msps erreicht wird. Laut dem Nyquist-Abtasttheorem können somit Frequenzen bis 6 MHz gemessen werden. (([[https:// |
Bedient wird das Handoszilloskop mithilfe von drei auf dem Gerät verbauten Tastern. Auf einem OLED-Display werden wichtige Parameter zur Messung angezeigt. Eine mögliche Form der Darstellung ist in <imgref gui_oled> | Bedient wird das Handoszilloskop mithilfe von drei auf dem Gerät verbauten Tastern. Auf einem OLED-Display werden wichtige Parameter zur Messung angezeigt. Eine mögliche Form der Darstellung ist in <imgref gui_oled> | ||
Zeile 83: | Zeile 83: | ||
* Anzahl an Pins 64 oder 100 | * Anzahl an Pins 64 oder 100 | ||
* Package als QFP oder QFN | * Package als QFP oder QFN | ||
- | * integrierte USB Schnittstelle | + | * integrierte USB-Schnittstelle |
* Kommunikationsschnittstellen: | * Kommunikationsschnittstellen: | ||
* 12 Bit Analog-Digital-Wandler mit bis zu 25,45 Msps Leistung kombiniert | * 12 Bit Analog-Digital-Wandler mit bis zu 25,45 Msps Leistung kombiniert | ||
Zeile 122: | Zeile 122: | ||
Das ATWINC1500 bietet für den doppelten Preis wie ein ESP32 Modul lediglich eine WLAN-Funktionalität und wurde daher nicht weiter betrachtet. Interessante Alternative zu einem zusätzlichen WLAN-Modul war der PIC32MZ-W1 Wi-Fi®. Dieser besteht aus einem PIC Mikrocontrollerkern und erweitert diesen mit WLAN. Mit einem Preis von ca. 12 € ist dieser im Vergleich mit einem eigenständigen PIC32MK und zusätzlichem ESP32 teurer und stellt damit einen Nachteil für ein kostengünstiges Oszilloskop dar. Zusätzlich war der PIC32MZ-W1 nicht lieferbar und fiel ebenfalls aus der Auswahl für die drahtlose Erweiterung des Oszilloskops. | Das ATWINC1500 bietet für den doppelten Preis wie ein ESP32 Modul lediglich eine WLAN-Funktionalität und wurde daher nicht weiter betrachtet. Interessante Alternative zu einem zusätzlichen WLAN-Modul war der PIC32MZ-W1 Wi-Fi®. Dieser besteht aus einem PIC Mikrocontrollerkern und erweitert diesen mit WLAN. Mit einem Preis von ca. 12 € ist dieser im Vergleich mit einem eigenständigen PIC32MK und zusätzlichem ESP32 teurer und stellt damit einen Nachteil für ein kostengünstiges Oszilloskop dar. Zusätzlich war der PIC32MZ-W1 nicht lieferbar und fiel ebenfalls aus der Auswahl für die drahtlose Erweiterung des Oszilloskops. | ||
- | Nach Betrachtung der einzelnen Module fiel die Wahl auf ein ESP32-WROOM Modul (<imgref Ausgewaehltes_Modul_ESP32-WROOM-32E> | + | Nach Betrachtung der einzelnen Module fiel die Wahl auf ein ESP32-WROOM-Modul (<imgref Ausgewaehltes_Modul_ESP32-WROOM-32E> |
< | < | ||
Zeile 139: | Zeile 139: | ||
* Wi-Fi im Standard 802.11b/ | * Wi-Fi im Standard 802.11b/ | ||
* Bluetooth V4.2 BR/EDR und Bluetooth LE | * Bluetooth V4.2 BR/EDR und Bluetooth LE | ||
- | * Version 32E mit PCB Antenne | + | * Version 32E mit PCB-Antenne |
* Schnittstellen: | * Schnittstellen: | ||
* 40 MHz Oszillator | * 40 MHz Oszillator | ||
Zeile 154: | Zeile 154: | ||
Bei anderen Projekten zum MEXLE System wird der TTGO Micro32 von Lilygo (([[http:// | Bei anderen Projekten zum MEXLE System wird der TTGO Micro32 von Lilygo (([[http:// | ||
- | Preislich ist der TTGO Micro32 mit 5,26 € (([[https:// | + | Preislich ist der TTGO Micro32 mit 5,26 € (([[https:// |
Der Größenvergleich, | Der Größenvergleich, | ||
Zeile 165: | Zeile 165: | ||
Ziel des TTGO ist laut Hersteller den ESP32 in kleinerem Formfaktor anzubieten. Dies stellt den größten Unterschied zwischen den Modulen dar.(([[http:// | Ziel des TTGO ist laut Hersteller den ESP32 in kleinerem Formfaktor anzubieten. Dies stellt den größten Unterschied zwischen den Modulen dar.(([[http:// | ||
- | Der Kern der beiden Module ist jeweils ein ESP32, was in sehr ähnlichen Eigenschaften resultiert. Beide Module besitzen 38 Pins, verfügen über die üblichen Schnittstellen wie I2C, UART und SPI und funken mit WLAN im Standard 802.11 b/g/n sowie Bluetooth 4.2 und BLE. Einziger Unterschied ist die verwendete Antennentechnik. Der TTGO Micro32 verfügt sowohl über eine Keramik Antenne | + | Der Kern der beiden Module ist jeweils ein ESP32, was in sehr ähnlichen Eigenschaften resultiert. Beide Module besitzen 38 Pins, verfügen über die üblichen Schnittstellen wie I2C, UART und SPI und funken mit WLAN im Standard 802.11 b/g/n sowie Bluetooth 4.2 und BLE. Einziger Unterschied ist die verwendete Antennentechnik. Der TTGO Micro32 verfügt sowohl über eine Keramikantenne |
- | Da es neben dem Größenunterschied keine wesentlichen Vorteile des TTGO gegenüber dem ESP32 WROOM gibt, der TTGO jedoch doppelt so teuer ist, ist der ESP32 WROOM besser für ein kostengünstiges Oszilloskop geeignet. | + | Da es neben dem Größenunterschied keine wesentlichen Vorteile des TTGO gegenüber dem ESP32-WROOM gibt, der TTGO jedoch doppelt so teuer ist, ist der ESP32-WROOM besser für ein kostengünstiges Oszilloskop geeignet. |
=== 4.1.3 Analoge Eingänge === | === 4.1.3 Analoge Eingänge === | ||
Zeile 173: | Zeile 173: | ||
== Gabotronics == | == Gabotronics == | ||
- | Die Firma Gabotronics stellt kleine, Mikrocontroller-basierte Oszilloksope her. Diese basieren wie z.B. das XMEGA Xprotolab auf einem XMEGA Prozessor mit daran angeschlossener Analogschaltung zur Wandlung der Messsignale auf die Logikspannung des Mikrocontroller.(([[https:// | + | Die Firma Gabotronics stellt kleine, Mikrocontroller-basierte Oszilloksope her. Diese basieren wie z.B. das XMEGA Xprotolab auf einem XMEGA-Prozessor mit daran angeschlossener Analogschaltung zur Wandlung der Messsignale auf die Logikspannung des Mikrocontroller.(([[https:// |
== Beschreibung == | == Beschreibung == | ||
Zeile 186: | Zeile 186: | ||
== Schaltung == | == Schaltung == | ||
- | Als Anschlussmöglichkeit zum Messen von Spannungen sind ein MCX Anschluss sowie eine Klemme vorhanden. Über den MCX Anschluss können Oszilloskoptastköpfe verwendet werden. Steht dieser nicht zur Verfügung, ist auch der Anschluss mittels Kabel über die Klemme möglich. | + | Als Anschlussmöglichkeit zum Messen von Spannungen sind ein MCX-Anschluss sowie eine Klemme vorhanden. Über den MCX-Anschluss können Oszilloskoptastköpfe verwendet werden. Steht dieser nicht zur Verfügung, ist auch der Anschluss mittels Kabel über die Klemme möglich. |
Die Schaltung wurde auf eine Messspannung im Bereich von -10 V bis +10 V ausgelegt. Über einen Spannungsteiler wird die gemessene Spannung zunächst auf eine Amplitude im Bereich von +3,3 V bis -3,3 V begrenzt. Durch eine angeschlossene Operationsverstärkerschaltung erfolgt eine Wandlung auf den gewünschten Spannungsbereich von 0 V bis 3,3 V für die Analog-Digital-Wandlung. | Die Schaltung wurde auf eine Messspannung im Bereich von -10 V bis +10 V ausgelegt. Über einen Spannungsteiler wird die gemessene Spannung zunächst auf eine Amplitude im Bereich von +3,3 V bis -3,3 V begrenzt. Durch eine angeschlossene Operationsverstärkerschaltung erfolgt eine Wandlung auf den gewünschten Spannungsbereich von 0 V bis 3,3 V für die Analog-Digital-Wandlung. | ||
Zeile 195: | Zeile 195: | ||
== Differentielle | == Differentielle | ||
- | Die zuvor dargestellte Schaltung ist auf eine Single Ended Messung ausgelegt. Hierdurch ist es erforderlich, | + | Die zuvor dargestellte Schaltung ist auf eine Single Ended Messung ausgelegt. Hierdurch ist es erforderlich, |
Erfolgt eine Single Ended Messung bei einem Potenzialunterschied der Massen, die größer ist als die maximale Messamplitude, | Erfolgt eine Single Ended Messung bei einem Potenzialunterschied der Massen, die größer ist als die maximale Messamplitude, | ||
Zeile 257: | Zeile 257: | ||
Die Bandbreite des verwendeten Operationsverstärker beträgt 1,1 MHz. Hierdurch ist auch die Bandbreite, die für das Oszilloskop genutzt werden kann, begrenzt. Da die Analog-Digital-Wandler des PIC32 eine Samplerate von bis zu 25,45 Msps bei einer Auflösung von 12 Bit ermöglichen, | Die Bandbreite des verwendeten Operationsverstärker beträgt 1,1 MHz. Hierdurch ist auch die Bandbreite, die für das Oszilloskop genutzt werden kann, begrenzt. Da die Analog-Digital-Wandler des PIC32 eine Samplerate von bis zu 25,45 Msps bei einer Auflösung von 12 Bit ermöglichen, | ||
- | Die Verstärkung der Schaltung zu den analogen Eingängen fällt bereits bei 400-500 kHz ab. Daher sollte durch eine Anpassung der Bauteilwerte eine Verbesserung und Annäherung der Grenzfrequenz an ca. 1 MHz erreicht werden können, um die Bandbreite der verwendeten Komponenten optimal | + | Die Verstärkung der Schaltung zu den analogen Eingängen fällt bereits bei 400-500 kHz ab. Daher sollte durch eine Anpassung der Bauteilwerte eine Verbesserung und Annäherung der Grenzfrequenz an ca. 1 MHz erreicht werden können, um die Bandbreite der verwendeten Komponenten optimal zu nutzen. |
Zeile 264: | Zeile 264: | ||
== Spezifikation == | == Spezifikation == | ||
- | Laut Datenblatt besitzt das ausgewählte Display eine Auflösung von 128x64 Pixeln bei einer Bildschirmdiagonale von 0.96 Zoll.(([[https:// | + | Laut Datenblatt besitzt das ausgewählte Display eine Auflösung von 128x64 Pixeln bei einer Bildschirmdiagonale von 0,96 Zoll.(([[https:// |
Das Display ist in verschiedenen Anzeigeversionen mit Ein- oder Zweifarbdarstellung erhältlich. Die einfachen Versionen des Displays können Bilder in Schwarz und Weiß (ER-OLED0.96-1W) oder Schwarz und Blau (ER-OLED0.96-1B) darstellen. Daneben gibt es eine Multicolor Version, welche farbige Pixel in Blau und Gelb sowie einen schwarzen Hintergrund darstellen kann (ER-OLED0.96-1YB). Da es sich bei dem Display um ein OLED handelt, ist keine zusätzliche Hintergrundbeleuchtung erforderlich. Das ursprüngliche Design des Oszilloskops hatte zur Anzeige LC-Displays geplant. Der Wegfall der Hintergrundbeleuchtung spart somit Platz auf der Platine ein.(([[https:// | Das Display ist in verschiedenen Anzeigeversionen mit Ein- oder Zweifarbdarstellung erhältlich. Die einfachen Versionen des Displays können Bilder in Schwarz und Weiß (ER-OLED0.96-1W) oder Schwarz und Blau (ER-OLED0.96-1B) darstellen. Daneben gibt es eine Multicolor Version, welche farbige Pixel in Blau und Gelb sowie einen schwarzen Hintergrund darstellen kann (ER-OLED0.96-1YB). Da es sich bei dem Display um ein OLED handelt, ist keine zusätzliche Hintergrundbeleuchtung erforderlich. Das ursprüngliche Design des Oszilloskops hatte zur Anzeige LC-Displays geplant. Der Wegfall der Hintergrundbeleuchtung spart somit Platz auf der Platine ein.(([[https:// | ||
Zeile 282: | Zeile 282: | ||
Quelle Tabelle: (([[https:// | Quelle Tabelle: (([[https:// | ||
- | Die Auswahl der geeignetsten | + | Die Auswahl der geeigneten |
Die Anbindung des Displays an den PIC32 sollte mit möglichst geringem Hardwareaufwand erfolgen, dementsprechend war eine Ansteuerung mit einer so geringen Anzahl an Leitungen wie möglich zu finden. Die Anbindung über die beiden 8 Bit Parallelbusse entfiel, da diese neben den 8 Datenleitungen weitere zusätzliche Steuerleitungen erfordern. | Die Anbindung des Displays an den PIC32 sollte mit möglichst geringem Hardwareaufwand erfolgen, dementsprechend war eine Ansteuerung mit einer so geringen Anzahl an Leitungen wie möglich zu finden. Die Anbindung über die beiden 8 Bit Parallelbusse entfiel, da diese neben den 8 Datenleitungen weitere zusätzliche Steuerleitungen erfordern. | ||
Zeile 291: | Zeile 291: | ||
== Anschlüsse == | == Anschlüsse == | ||
- | Neben den unterschiedlichen Farbdarstellungen gibt es das Display auch mit unterschiedlichen Anschlüssen. Zum einen kann das Display direkt mit dem angefügten Flachkabel auf die Platine aufgelötet werden. Weitere Varianten des Displays ermöglichen | + | Neben den unterschiedlichen Farbdarstellungen gibt es das Display auch mit unterschiedlichen Anschlüssen. Zum einen kann das Display direkt mit dem angefügten Flachkabel auf die Platine aufgelötet werden. Weitere Varianten des Displays ermöglichen die Nutzung eines Klemmverbinders zur Montage auf der Platine. Dies hat den Vorteil, dass das Display ausgetauscht werden kann. Der Verbinder für die Verwendung mit einer Klemmbuchse besitzt schmalere Kontakte als die Lötversion. Dadurch sind diese nicht zueinander kompatibel. Zudem gibt es die Klemmversion in zwei Ausführungen. Die Kontakte sind entweder auf der Unterseite oder Oberseite des Kabels aufgebracht. Dies ist bei der Wahl und Lage der entsprechenden Buchse auf der Platine zu berücksichtigen.(([[https:// |
Das Display des Handoszilloskops besitzt den Anschluss zum Klemmen mit den Kontakten auf der Oberseite. Beim Einbau des Displays wird das Kabel unter das Display gebogen. Dadurch ist der Platzbedarf für das Display auf der Platine geringer. | Das Display des Handoszilloskops besitzt den Anschluss zum Klemmen mit den Kontakten auf der Oberseite. Beim Einbau des Displays wird das Kabel unter das Display gebogen. Dadurch ist der Platzbedarf für das Display auf der Platine geringer. | ||
Zeile 302: | Zeile 302: | ||
Das Display unterstützt zwei Arten der Spannungsversorgung. Bei der ersten erfolgt die Versorgung mit den erforderlichen Spannungen vollständig durch die externe Schaltung. Dies erfordert, dass alle erforderlichen Spannungen extern zur Verfügung stehen. Hierzu ist eine Versorgungsspannung von 1,65 V bis 3,3 V für die Logik des Displays und 7 V bis 15 V zur Ansteuerung des Display-Panels zu erzeugen.(([[https:// | Das Display unterstützt zwei Arten der Spannungsversorgung. Bei der ersten erfolgt die Versorgung mit den erforderlichen Spannungen vollständig durch die externe Schaltung. Dies erfordert, dass alle erforderlichen Spannungen extern zur Verfügung stehen. Hierzu ist eine Versorgungsspannung von 1,65 V bis 3,3 V für die Logik des Displays und 7 V bis 15 V zur Ansteuerung des Display-Panels zu erzeugen.(([[https:// | ||
- | Die zweite Art ist die Nutzung des integrierten DC/DC Wandler. Dieser erzeugt die für die Ansteuerung des Display-Panels erforderliche Spannung selbst. Vorteil hierbei ist, dass bei einer Versorgungsspannung von 3,3 V auf der Gesamtplatine des Oszilloskops, | + | Die zweite Art ist die Nutzung des integrierten DC/DC-Wandler. Dieser erzeugt die für die Ansteuerung des Display-Panels erforderliche Spannung selbst. Vorteil hierbei ist, dass bei einer Versorgungsspannung von 3,3 V auf der Gesamtplatine des Oszilloskops, |
==== 4.2 Integration in Vorarbeiten ==== | ==== 4.2 Integration in Vorarbeiten ==== | ||
- | Durch die Vorarbeiten bei der Entwicklung des Handoszilloskops war bereits ein Gehäuse vorgegeben. Die Abmessungen der Platine der vorhandenen Schaltung waren auf die Größe dieses Gehäuse ausgelegt. Sie verfügte über einen Atmel® SMART SAM L21 Mikrocontroller(([[http:// | + | Durch die Vorarbeiten bei der Entwicklung des Handoszilloskops war bereits ein Gehäuse vorgegeben. Die Abmessungen der Platine der vorhandenen Schaltung waren auf die Größe dieses Gehäuse ausgelegt. Sie verfügte über einen Atmel® SMART SAM L21 Mikrocontroller(([[http:// |
Nach der Auswahl des PIC32 war zunächst angedacht, diesen in das bestehende Design zu integrieren. Hierbei zeigten sich Probleme durch die starke Komprimierung der Leiterbahnen im Design. Zudem sind die Anschlüsse und Schnittstellen des PIC32 anders angeordnet, wodurch die Integration mehr Platz für die Leiterbahnen benötigt als für den SAM L21 vorgesehen war. | Nach der Auswahl des PIC32 war zunächst angedacht, diesen in das bestehende Design zu integrieren. Hierbei zeigten sich Probleme durch die starke Komprimierung der Leiterbahnen im Design. Zudem sind die Anschlüsse und Schnittstellen des PIC32 anders angeordnet, wodurch die Integration mehr Platz für die Leiterbahnen benötigt als für den SAM L21 vorgesehen war. | ||
- | Da als Batterie | + | Da als Batterie |
Da der Wunsch bestand, die sehr komplexe und hohe Anzahl an Pins erfordernde analoge Schaltung zu vereinfachen, | Da der Wunsch bestand, die sehr komplexe und hohe Anzahl an Pins erfordernde analoge Schaltung zu vereinfachen, | ||
Zeile 316: | Zeile 316: | ||
Die im Projekt zu erstellende Hardware sollte nicht mehr als Integration der neuen Komponenten und dem Austausch der alten Komponenten in die bestehende Schaltung durchgeführt werden. Stattdessen sollten kleine Module mit den Hauptfunktionalitäten des Oszilloskops entwickelt werden. Die Anbindung an den PIC sollte nicht mehr auf der gleichen Platine erfolgen. Stattdessen sollte mittels Developmentkit und geeigneter Aufsteckschnittstelle eine Funktionsdemonstration ermöglicht werden. | Die im Projekt zu erstellende Hardware sollte nicht mehr als Integration der neuen Komponenten und dem Austausch der alten Komponenten in die bestehende Schaltung durchgeführt werden. Stattdessen sollten kleine Module mit den Hauptfunktionalitäten des Oszilloskops entwickelt werden. Die Anbindung an den PIC sollte nicht mehr auf der gleichen Platine erfolgen. Stattdessen sollte mittels Developmentkit und geeigneter Aufsteckschnittstelle eine Funktionsdemonstration ermöglicht werden. | ||
- | Der Schaltplan der durchgeführten Teilintegration ist unter folgendem Link zu finden: [[https:// | + | Der Schaltplan der durchgeführten Teilintegration ist unter folgendem Link zu finden: [[https:// |
==== 4.3 Development Board ==== | ==== 4.3 Development Board ==== | ||
- | Nach der Anpassung des Projektziels wurde der Fokus des Projektes stärker auf die Oszilloskopfunktionalitäten | + | Nach der Anpassung des Projektziels wurde der Fokus des Projektes stärker auf die Oszilloskopfunktionalitäten |
== Anschlüsse | == Anschlüsse | ||
Zeile 331: | Zeile 331: | ||
- USB Type-A Verbindung für PIC32 Host-basierte Anwendungen | - USB Type-A Verbindung für PIC32 Host-basierte Anwendungen | ||
- X32 Stiftleisten | - X32 Stiftleisten | ||
- | - mikroBUS Schnittstelle | + | - mikroBUS-Schnittstelle |
- 3 konfigurierbare Schalter | - 3 konfigurierbare Schalter | ||
- 3 konfigurierbare LEDs | - 3 konfigurierbare LEDs | ||
Zeile 345: | Zeile 345: | ||
Auf der Unterseite sind folgende Komponenten vorhanden: | Auf der Unterseite sind folgende Komponenten vorhanden: | ||
- | - 50-Pin LCD Buchse | + | - 50-Pin LCD Anschluss |
- SSD1963QL9 Display Controller | - SSD1963QL9 Display Controller | ||
- PIC24FJ256GB106 Debug IC | - PIC24FJ256GB106 Debug IC | ||
Zeile 359: | Zeile 359: | ||
== PIC32MK1024GPE100 == | == PIC32MK1024GPE100 == | ||
- | Das Developmentboard ist mit einem PIC32MK1024GPE100 bestückt. Dieser ist das leistungsfähigste Modell der PIC32MK | + | Das Developmentboard ist mit einem PIC32MK1024GPE100 bestückt. Dieser ist das leistungsfähigste Modell der PIC32MK |
==== 4.4 mikroBUS Prototypen ==== | ==== 4.4 mikroBUS Prototypen ==== | ||
Wie zuvor beschrieben, | Wie zuvor beschrieben, | ||
Zeile 385: | Zeile 385: | ||
=== 4.4.2 Oszilloskop-Modul mit Display === | === 4.4.2 Oszilloskop-Modul mit Display === | ||
- | Die erste Platine umfasst den Analog-Eingang-Teil der Oszilloskopfunktion, | + | Die erste Platine umfasst den Analog-Eingang-Teil der Oszilloskopfunktion, |
Zusätzlich zur Analogschaltung umfasst die Platine auch ein OLED-Display, | Zusätzlich zur Analogschaltung umfasst die Platine auch ein OLED-Display, | ||
Zeile 413: | Zeile 413: | ||
Der Schaltplan basiert auf dem Referenzdesign, | Der Schaltplan basiert auf dem Referenzdesign, | ||
- | Für die Programmierung des ESP32 ist eine JTAG Schnittstelle vorgesehen. Ein Programmer auf der Platine ist nicht vorhanden. Stattdessen muss auf einen externen JTAG Programmer zurückgegriffen werden. | + | Für die Programmierung des ESP32 ist eine JTAG-Schnittstelle vorgesehen. Ein Programmer auf der Platine ist nicht vorhanden. Stattdessen muss auf einen externen JTAG Programmer zurückgegriffen werden. |
Hierzu kann zum Beispiel der ESP Prog von Espressif Systems verwendet werden. Mit diesem können sowohl ESP32 Modelle als auch die Vorgängerversion ESP8266 programmiert werden. Die Umsetzung erfolgt über eine FTDI-USB-Bridge und kann über Stecker unterschiedlicher Abmessung durchgeführt werden. Neben der Programmierfunktion ist auch das Debugging über den ESP Prog möglich. (([[https:// | Hierzu kann zum Beispiel der ESP Prog von Espressif Systems verwendet werden. Mit diesem können sowohl ESP32 Modelle als auch die Vorgängerversion ESP8266 programmiert werden. Die Umsetzung erfolgt über eine FTDI-USB-Bridge und kann über Stecker unterschiedlicher Abmessung durchgeführt werden. Neben der Programmierfunktion ist auch das Debugging über den ESP Prog möglich. (([[https:// | ||
Zeile 423: | Zeile 423: | ||
Quelle <imgref ESP-Prog_Programmer_Platine_fuer_den_ESP32_und_ESP8266>: | Quelle <imgref ESP-Prog_Programmer_Platine_fuer_den_ESP32_und_ESP8266>: | ||
- | Zusätzlich zu der JTAG Schnittstelle besitzt die Platine einen Jumper für die Bootoption des ESP32 sowie einen Reset Taster. | + | Zusätzlich zu der JTAG-Schnittstelle besitzt die Platine einen Jumper für die Bootoption des ESP32 sowie einen Reset Taster. |
Die Platine basiert auf dem mikroBUS-Format der Größe M, wurde jedoch etwas in der Länge | Die Platine basiert auf dem mikroBUS-Format der Größe M, wurde jedoch etwas in der Länge | ||
Zeile 443: | Zeile 443: | ||
== Layoutvarianten == | == Layoutvarianten == | ||
- | Es wurden zwei Layouts der Schaltung erstellt. Der Schaltplan ist in beiden Fällen identisch. | + | Es wurden zwei Layouts der Schaltung erstellt. Der Schaltplan ist in beiden Fällen identisch. |
==== 4.5 Akku-Schaltung und Spannungsversorgung ==== | ==== 4.5 Akku-Schaltung und Spannungsversorgung ==== | ||
Zeile 453: | Zeile 453: | ||
* Akkubetrieb (Das Board wird durch den Akku mit Spannung versorgt) | * Akkubetrieb (Das Board wird durch den Akku mit Spannung versorgt) | ||
- | Wird im Betrieb über USB das USB-Kabel abgezogen, schaltet die Schaltung automatisch auf den Akkubetrieb um. Wird das Kabel wieder eingesteckt, | + | Wird im Betrieb über USB das USB-Kabel abgezogen, schaltet die Schaltung automatisch auf den Akkubetrieb um. Wird das Kabel wieder eingesteckt, |
Zum Laden des Akkus kommt ein Lademanagement Controller der Firma Microchip zum Einsatz. Der MCP73831/2 Lademanagement-Controller kann für Schaltungen zum Laden von Lithium-Ionen- und Lithium-Polymer-Akkus genutzt werden. Der Ladestrom für den jeweiligen Akku kann über die Auslegung des Ladewiderstands fest eingestellt werden. Bei der Auswahl des Akkus ist dadurch darauf zu achten, dass dieser auch mit dem festgelegten Strom geladen werden kann, ohne beschädigt zu werden.(([[https:// | Zum Laden des Akkus kommt ein Lademanagement Controller der Firma Microchip zum Einsatz. Der MCP73831/2 Lademanagement-Controller kann für Schaltungen zum Laden von Lithium-Ionen- und Lithium-Polymer-Akkus genutzt werden. Der Ladestrom für den jeweiligen Akku kann über die Auslegung des Ladewiderstands fest eingestellt werden. Bei der Auswahl des Akkus ist dadurch darauf zu achten, dass dieser auch mit dem festgelegten Strom geladen werden kann, ohne beschädigt zu werden.(([[https:// | ||
Zeile 464: | Zeile 464: | ||
Im Rahmen der zunächst durchgeführten Integration des PIC32 in die Schaltung aus den Vorarbeiten wurde ein Schaltplan erstellt, der den PIC32 mit allen notwendigen Versorgungsspannungen, | Im Rahmen der zunächst durchgeführten Integration des PIC32 in die Schaltung aus den Vorarbeiten wurde ein Schaltplan erstellt, der den PIC32 mit allen notwendigen Versorgungsspannungen, | ||
- | Dieser kann unter folgendem Link heruntergeladen werden: | + | Dieser kann unter folgendem Link heruntergeladen werden: [[https:// |
- | + | ||
- | [[https:// | + | |
==== 4.7 Preisvergleich Neuauslegung und Vorarbeiten ==== | ==== 4.7 Preisvergleich Neuauslegung und Vorarbeiten ==== | ||
Zeile 481: | Zeile 479: | ||
Für die Neuauslegung wurde ein Preis von ca. 35 € pro Stück ermittelt. Dieser setzt sich aus den folgenden Teilen zusammen: | Für die Neuauslegung wurde ein Preis von ca. 35 € pro Stück ermittelt. Dieser setzt sich aus den folgenden Teilen zusammen: | ||
- | * ESP32 mikroBus: 5,58 € bzw. bei reiner Nutzung der USB Schnittstelle 0 € | + | * ESP32 mikroBus: 5,58 € bzw. bei reiner Nutzung der USB-Schnittstelle 0 € |
- | * Oszilloskop mikroBUS: 9,39 €, bei optionaler MCX Buchse reduzierbar auf 6,40 € | + | * Oszilloskop mikroBUS: 9,39 €, bei optionaler MCX-Buchse reduzierbar auf 6,40 € |
* PIC32 + Peripherie: 10,37 €, Einsparung durch Auswahl eines PIC32 Modell mit geringerer Leistung möglich | * PIC32 + Peripherie: 10,37 €, Einsparung durch Auswahl eines PIC32 Modell mit geringerer Leistung möglich | ||
* Spannungsversorgung und Akku-Schaltung: | * Spannungsversorgung und Akku-Schaltung: | ||
Zeile 493: | Zeile 491: | ||
Durch die Fertigung einer größeren Stückzahl, von z.B. 100, können weitere Einsparpotentiale bei der Beschaffung der Komponenten ausgeschöpft werden. | Durch die Fertigung einer größeren Stückzahl, von z.B. 100, können weitere Einsparpotentiale bei der Beschaffung der Komponenten ausgeschöpft werden. | ||
- | Zusätzlich besteht Einsparpotential durch Modellvarianten. Zum einen kann durch die Wahl eines kleineren PIC32 Modells mit geringerer Pin Anzahl der Anteil des PIC32 an den Beschaffungskosten reduziert werden. Wird nur die Klemme zum Anschluss der Messobjekte verwendet und ist die MCX Buchse optional kann der Preis des Oszilloskopmoduls auf 6,40 € gesenkt werden. Ein Verzicht auf Drahtlose Konnektivität und dadurch ausschließliche Nutzung der USB-Schnittstelle zur Kommunikation kann weitere 5,58 € einsparen. Ein Handoszilloskop mit minimaler Ausstattung wäre bereits ab ca. 26 € möglich. | + | Zusätzlich besteht Einsparpotential durch Modellvarianten. Zum einen kann durch die Wahl eines kleineren PIC32 Modells mit geringerer Pin Anzahl der Anteil des PIC32 an den Beschaffungskosten reduziert werden. Wird nur die Klemme zum Anschluss der Messobjekte verwendet und ist die MCX-Buchse optional kann der Preis des Oszilloskopmoduls auf 6,40 € gesenkt werden. Ein Verzicht auf Drahtlose Konnektivität und dadurch ausschließliche Nutzung der USB-Schnittstelle zur Kommunikation kann weitere 5,58 € einsparen. Ein Handoszilloskop mit minimaler Ausstattung wäre bereits ab ca. 26 € möglich. |
Zeile 517: | Zeile 515: | ||
=== 5.1.1 MPLAB X === | === 5.1.1 MPLAB X === | ||
- | Programmiert wird der PIC32 über die von Microchip veröffentlichte Entwicklungsumgebung [[https:// | + | Programmiert wird der PIC32 über die von Microchip veröffentlichte Entwicklungsumgebung [[https:// |
== 5.1.1.1 Benutzeroberfläche == | == 5.1.1.1 Benutzeroberfläche == | ||
Zeile 544: | Zeile 542: | ||
- Dem neuen Projekt einen Ordner- und Projektnamen geben. | - Dem neuen Projekt einen Ordner- und Projektnamen geben. | ||
- Der Konfigurationsdatei einen Namen geben und den gewollten Chip auswählen. | - Der Konfigurationsdatei einen Namen geben und den gewollten Chip auswählen. | ||
- | - Es wird empfohlen, nicht den Namen „default“ für die Configuration | + | - Es wird empfohlen, nicht den Namen „default“ für die Konfiguration |
- Es wird ein leeres Projekt erstellt. Soll Harmony für die Programmierung verwendet werden, muss es als nächster Schritt gestartet werden. Die weiteren Schritte werden in den folgenden Kapiteln erläutert. Ansonsten müssen die „.c-“ und „.h-“ Dateien manuell hinzugefügt werden. | - Es wird ein leeres Projekt erstellt. Soll Harmony für die Programmierung verwendet werden, muss es als nächster Schritt gestartet werden. Die weiteren Schritte werden in den folgenden Kapiteln erläutert. Ansonsten müssen die „.c-“ und „.h-“ Dateien manuell hinzugefügt werden. | ||
- | == 5.1.1.3 PIC32 config settings | + | == 5.1.1.3 PIC32 Konfigurationseinstellungen |
Die Konfiguration des PIC32 kann manuell oder über Harmony vorgenommen werden. Wird Harmony nicht verwendet, können die Settings über Window-> | Die Konfiguration des PIC32 kann manuell oder über Harmony vorgenommen werden. Wird Harmony nicht verwendet, können die Settings über Window-> | ||
(([[https:// | (([[https:// | ||
Zeile 634: | Zeile 632: | ||
== 5.1.1.10 MPLAB und Harmony Eigenheiten == | == 5.1.1.10 MPLAB und Harmony Eigenheiten == | ||
Nachfolgend werden einige Besonderheiten bei der Bedienung von MPLAB aufgelistet, | Nachfolgend werden einige Besonderheiten bei der Bedienung von MPLAB aufgelistet, | ||
- | * Kombination von Bibliotheken von Harmony und externen Bibliotheken nur schlecht möglich, da der von Harmony generierte alle Module des Prozessors, welche nicht hinzugefügt wurden, blockiert. | + | * Kombination von Bibliotheken von Harmony und externen Bibliotheken nur schlecht möglich, da von Harmony generierte alle Module des Prozessors, welche nicht hinzugefügt wurden, blockiert. |
* Move und Copy von Projekten nicht innerhalb des Programms ausführen, sonst unerwünschte Nebenwirkungen. (Copy führt zu Verschachtelung des Projektordners, | * Move und Copy von Projekten nicht innerhalb des Programms ausführen, sonst unerwünschte Nebenwirkungen. (Copy führt zu Verschachtelung des Projektordners, | ||
- | * Harmony Einstellungen werden über Project-Properties und Configuration | + | * Harmony Einstellungen werden über Project-Properties und Konfiguration |
* Wenn ein Laptop mit zweitem Bildschirm verwendet wurde, kann es passieren, dass, falls der zweite Bildschirm nicht mehr angeschlossen ist und MPLAB mit Harmony und dessen Oberflächen neu gestartet wird, die Position der Fenster gespeichert wurde und auf dem einzelnen Bildschirm nicht alle geöffneten Fenster angezeigt werden. | * Wenn ein Laptop mit zweitem Bildschirm verwendet wurde, kann es passieren, dass, falls der zweite Bildschirm nicht mehr angeschlossen ist und MPLAB mit Harmony und dessen Oberflächen neu gestartet wird, die Position der Fenster gespeichert wurde und auf dem einzelnen Bildschirm nicht alle geöffneten Fenster angezeigt werden. | ||
* Bei Verwendung eines Laptops oder kleinen Bildschirms können manche Menüoptionen abgeschnitten sein. (Beispiel: Rechtsklick-Menü der Projektliste.) | * Bei Verwendung eines Laptops oder kleinen Bildschirms können manche Menüoptionen abgeschnitten sein. (Beispiel: Rechtsklick-Menü der Projektliste.) | ||
Zeile 665: | Zeile 663: | ||
Die OLED-Displays können wie in der Spezifikation beschrieben durch Umlöten von Widerständen auf der Rückseite mit I2C, 3-Wire SPI oder 4-Wire SPI betrieben werden. Standardkonfiguration ist 4-Wire SPI.(([[https:// | Die OLED-Displays können wie in der Spezifikation beschrieben durch Umlöten von Widerständen auf der Rückseite mit I2C, 3-Wire SPI oder 4-Wire SPI betrieben werden. Standardkonfiguration ist 4-Wire SPI.(([[https:// | ||
- | **Adafruit | + | **Adafruit |
[[https:// | [[https:// | ||
Verwendet wird die SSD1306 Display Treiber Software von Adafruit(([[https:// | Verwendet wird die SSD1306 Display Treiber Software von Adafruit(([[https:// | ||
- | Da das Display keine Reaktion zeigt, wurde ein weiteres Programm erstellt, welches für die Kommunikation selbst geschriebene Funktionen verwendet. Allerdings brachte auch diese Version nicht den gewünschten Erfolg. Diese Version des Programms ist unter folgendem Link zu finden: [[https:// | + | Da das Display keine Reaktion zeigt, wurde ein weiteres Programm erstellt, welches für die Kommunikation selbst geschriebene Funktionen verwendet. Allerdings brachte auch diese Version nicht den gewünschten Erfolg. |
+ | |||
+ | Diese Version des Programms ist unter folgendem Link zu finden: [[https:// | ||
**U8G2Lib**\\ | **U8G2Lib**\\ | ||
Zeile 746: | Zeile 746: | ||
== Vergleich ADC-Performance == | == Vergleich ADC-Performance == | ||
** PWM Signal **\\ | ** PWM Signal **\\ | ||
- | Der erste Test war, ein PWM Signal mit bekannter Frequenz und bekanntem Duty-Cycle zu messen. Die Frequenz wurde so gewählt, dass bei einem erwarteten ADC-Sampling von 12 MSps und 4 ADCs mit jeweils Speicher für 256 Samples ein Zyklus gespeichert wird(([[https:// | + | Der erste Test war, ein PWM Signal mit bekannter Frequenz und bekanntem Duty-Cycle zu messen. Die Frequenz wurde so gewählt, dass bei einem erwarteten ADC-Sampling von 12 Msps und 4 ADCs mit jeweils Speicher für 256 Samples ein Zyklus gespeichert wird(([[https:// |
< | < | ||
Zeile 763: | Zeile 763: | ||
Im Vergleich der drei Aufzeichnungen kann man sehen, dass nur die Version mit Harmony und DMA die fünf Pulse richtig anzeigt. Die Bare Metal Programmierung der vier verschachtelten ADC sendet die Daten mit einer Baudrate von 115200 Baud/s, die beiden anderen mit 962100 Baud/s. Die Reduzierung war notwendig, da es sonst zu Übertragungsfehlern kommt. | Im Vergleich der drei Aufzeichnungen kann man sehen, dass nur die Version mit Harmony und DMA die fünf Pulse richtig anzeigt. Die Bare Metal Programmierung der vier verschachtelten ADC sendet die Daten mit einer Baudrate von 115200 Baud/s, die beiden anderen mit 962100 Baud/s. Die Reduzierung war notwendig, da es sonst zu Übertragungsfehlern kommt. | ||
Durch die langsamere Übertragung ist es möglich, dass die einzelnen Pulse stärker geblockt werden. | Durch die langsamere Übertragung ist es möglich, dass die einzelnen Pulse stärker geblockt werden. | ||
- | Die Programmierung ohne DMA zeigt ebenfalls keine einzelnen Pulse, hier ist es möglich, dass die Sample Rate zu niedrig ist und somit Teile des Signals verloren gehen. | + | Die Programmierung ohne DMA zeigt ebenfalls keine einzelnen Pulse, hier ist es möglich, dass die Sample-Rate zu niedrig ist und somit Teile des Signals verloren gehen. |
== Auswertung ADC == | == Auswertung ADC == | ||
- | Die Messungen werden so dargestellt, | + | Die Messungen werden so dargestellt, |
Die Auswertung der Versuche zeigt vor allem bei der Puls-Messung sonderbare Ergebnisse, daher sollten weitere Versuchsreihen durchgeführt werden, sowie der Programmcode angepasst werden. | Die Auswertung der Versuche zeigt vor allem bei der Puls-Messung sonderbare Ergebnisse, daher sollten weitere Versuchsreihen durchgeführt werden, sowie der Programmcode angepasst werden. | ||
- | Die Verschachtelung der ADC zeigt die höchste Auflösung des Signals, schneidet aber im kontinuierlichen Betrieb aufgrund der notwendigen Unterbrechungen große Teile des Signals ab. Ein Einsatz im kontinuierlichen Betrieb ist daher nicht sinnvoll. Es sollte möglich sein, ein hochfrequentes Signal komplett aufzuzeichnen, | + | Die Verschachtelung der ADC zeigt die höchste Auflösung des Signals, schneidet aber im kontinuierlichen Betrieb aufgrund der notwendigen Unterbrechungen große Teile des Signals ab. Ein Einsatz im kontinuierlichen Betrieb ist daher nicht sinnvoll. Es sollte möglich sein, ein hochfrequentes Signal komplett aufzuzeichnen, |
- | Im kontinuierlichen Betrieb ergibt eine Umsetzung ohne den „ADC DMA Buffer Full“-Interrupt mehr Sinn, hier können die Daten übertragen werden, sobald Daten im ADC DMA Buffer liegen. Damit reduziert sich allerdings die Sample Rate. | + | Im kontinuierlichen Betrieb ergibt eine Umsetzung ohne den „ADC DMA Buffer Full“-Interrupt mehr Sinn, hier können die Daten übertragen werden, sobald Daten im ADC DMA Buffer liegen. Damit reduziert sich allerdings die Sample-Rate. |
- | Eine weitere Überlegung kann sein, ob für das Handoszilloskop die restlichen | + | Eine weitere Überlegung kann sein, ob für das Handoszilloskop die restlichen |
Zeile 804: | Zeile 804: | ||
**UART:**\\ | **UART:**\\ | ||
- | UART steht für Universal Asynchronous Receiver Transmitter. Es benötigt für die Kommunikation keine separate Bustaktung, die Synchronisierung zwischen Sender und Empfänger geschieht über vom Transmitter gesendete Start- und Stop-bits. So benötigt UART für die bidirektionele Kommunikation nur zwei Datenleitungen, | + | UART steht für Universal Asynchronous Receiver Transmitter. Es benötigt für die Kommunikation keine separate Bustaktung, die Synchronisierung zwischen Sender und Empfänger geschieht über vom Transmitter gesendete Start- und Stop-Bits. So benötigt UART für die bidirektionele Kommunikation nur zwei Datenleitungen, |
< | < | ||
Zeile 838: | Zeile 838: | ||
* ESP Integration [[https:// | * ESP Integration [[https:// | ||
- | Zur Programmierung des mikroBUS-ESP32-Prototypen kann die integrierte JTAG Schnittstelle genutzt werden. Dies erfordert einen externen Programmer. Die ESP Developmentkits besitzen einen integrierten Programmer und erfordern daher keine externe Hardware für diese Aufgabe. | + | Zur Programmierung des mikroBUS-ESP32-Prototypen kann die integrierte JTAG-Schnittstelle genutzt werden. Dies erfordert einen externen Programmer. Die ESP Developmentkits besitzen einen integrierten Programmer und erfordern daher keine externe Hardware für diese Aufgabe. |
== Einrichten eines Projektes in Eclipse == | == Einrichten eines Projektes in Eclipse == | ||
Zeile 959: | Zeile 959: | ||
[[https:// | [[https:// | ||
Die Umsetzung geschieht mit der [[https:// | Die Umsetzung geschieht mit der [[https:// | ||
- | Vor der Umsetzung im Handoszilloskop sollte die Möglichkeit der Implementierung mit den sigrok PulseView Entwicklern abgesprochen werden. Diese sind unter folgenden Links zu errreichen: | + | Vor der Umsetzung im Handoszilloskop sollte die Möglichkeit der Implementierung mit den sigrok PulseView Entwicklern abgesprochen werden. Diese sind unter folgenden Links zu erreichen: |
* https:// | * https:// | ||
* https:// | * https:// |