Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projekt_mexle_handoszi:start [2021/09/20 10:24] miruppprojekt_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 139: Zeile 139:
   * Wi-Fi im Standard 802.11b/g/n, mit Bitraten bis zu 150 Mbps bei 802.11n   * Wi-Fi im Standard 802.11b/g/n, mit Bitraten bis zu 150 Mbps bei 802.11n
   * 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: UART, SPI, I2C, PWM, I2S, GPIO, ADC, DAC und weitere   * Schnittstellen: UART, SPI, I2C, PWM, I2S, GPIO, ADC, DAC und weitere
   * 40 MHz Oszillator   * 40 MHz Oszillator
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://www.lilygo.cn/prod_view.aspx?TypeId=50033&Id=1091&FId=t3:50033:3|TTGO-Micro32]])) Ziel des TTGO ist laut Hersteller den ESP32 in kleinerem Formfaktor anzubieten. Dies stellt den größten Unterschied zwischen den Modulen dar.(([[http://www.lilygo.cn/prod_view.aspx?TypeId=50033&Id=1091&FId=t3:50033:3|TTGO-Micro32]]))
  
-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 als auch über einen IPEX Stecker zum Anschluss einer externen Antenne. Das ESP32-WROOM-Modul, wie in <imgref Ausgewaehltes_Modul_ESP32-WROOM-32E> und <imgref Vergleich_TTGO_Micro32_und_ESP32_WROOM> dargestellt, verfügt lediglich über eine PCB Antenne. Das ESP32-WROOM-Modul ist in einer weiteren Konfiguration erhältlich, diese besitzt ebenfalls einen IPEX Stecker, verzichtet dabei aber auf die PCB Antenne. (([[http://www.lilygo.cn/prod_view.aspx?TypeId=50033&Id=1091&FId=t3:50033:3|TTGO-Micro32]])), (([[https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32e_esp32-wroom-32ue_datasheet_en.pdf|Datenblatt ESP32 WROOM 32E & ESP32 WROOM 32UE, 18.08.2021]]))+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 als auch über einen IPEX-Stecker zum Anschluss einer externen Antenne. Das ESP32-WROOM-Modul, wie in <imgref Ausgewaehltes_Modul_ESP32-WROOM-32E> und <imgref Vergleich_TTGO_Micro32_und_ESP32_WROOM> dargestellt, verfügt lediglich über eine PCB-Antenne. Das ESP32-WROOM-Modul ist in einer weiteren Konfiguration erhältlich, diese besitzt ebenfalls einen IPEX-Stecker, verzichtet dabei aber auf die PCB-Antenne. (([[http://www.lilygo.cn/prod_view.aspx?TypeId=50033&Id=1091&FId=t3:50033:3|TTGO-Micro32]])), (([[https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32e_esp32-wroom-32ue_datasheet_en.pdf|Datenblatt ESP32 WROOM 32E & ESP32 WROOM 32UE, 18.08.2021]]))
  
 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.
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://www.gabotronics.com/products/development-boards/xmega-xprotolab|Gabotronics XMEGA Xprotolab]]))+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://www.gabotronics.com/products/development-boards/xmega-xprotolab|Gabotronics XMEGA Xprotolab]]))
  
 == Beschreibung == == Beschreibung ==
Zeile 195: Zeile 195:
  
 == Differentielle  Messung und Single Ended Messung  == == Differentielle  Messung und Single Ended Messung  ==
-Die zuvor dargestellte Schaltung ist auf eine Single Ended Messung ausgelegt. Hierdurch ist es erforderlich, dass die zu messende Spannung immer in Bezug auf die Masse der Oszilloskopschaltung gemessen wird.(([[https://infosys.beckhoff.com/index.php?content=../content/1031/ep3632/3311905675.html&id=|Beckhoff Information System - Typisierung SingleEnded / Differentiell, 18.08.2021]]))+Die zuvor dargestellte Schaltung ist auf eine Single Ended Messung ausgelegt. Hierdurch ist es erforderlich, dass die zu messende Spannung immer im Bezug auf die Masse der Oszilloskopschaltung gemessen wird.(([[https://infosys.beckhoff.com/index.php?content=../content/1031/ep3632/3311905675.html&id=|Beckhoff Information System - Typisierung SingleEnded / Differentiell, 18.08.2021]]))
  
 Erfolgt eine Single Ended Messung bei einem Potenzialunterschied der Massen, die größer ist als die maximale Messamplitude, kann es zu Schäden am Messgerät kommen. Dies tritt meist auf, wenn das Messgerät und das Messobjekt über unterschiedliche Netzteile mit Spannung versorgt werden und keine gemeinsame Erdung nutzen. Über eine differentielle Messschaltung kann eine Messung unabhängig vom Bezugspotential des Oszilloskops erfolgen, was den großen Vorteil dieser Messart darstellt. Potenzialunterschiede der Massen können so ausgeglichen und Schäden am Messgerät vermieden werden.(([[https://infosys.beckhoff.com/index.php?content=../content/1031/ep3632/3311905675.html&id=|Beckhoff Information System - Typisierung SingleEnded / Differentiell, 18.08.2021]])) Erfolgt eine Single Ended Messung bei einem Potenzialunterschied der Massen, die größer ist als die maximale Messamplitude, kann es zu Schäden am Messgerät kommen. Dies tritt meist auf, wenn das Messgerät und das Messobjekt über unterschiedliche Netzteile mit Spannung versorgt werden und keine gemeinsame Erdung nutzen. Über eine differentielle Messschaltung kann eine Messung unabhängig vom Bezugspotential des Oszilloskops erfolgen, was den großen Vorteil dieser Messart darstellt. Potenzialunterschiede der Massen können so ausgeglichen und Schäden am Messgerät vermieden werden.(([[https://infosys.beckhoff.com/index.php?content=../content/1031/ep3632/3311905675.html&id=|Beckhoff Information System - Typisierung SingleEnded / Differentiell, 18.08.2021]]))
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, kann das Messsignal ausreichend gut erfasst werden. (([[https://www.ti.com/product/TLV9101|TLV9101 Datenblatt]])), (([[https://www.microchip.com/en-us/products/microcontrollers-and-microprocessors/32-bit-mcus/pic32-32-bit-mcus/pic32mk|PIC32MK Product Family]])) 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, kann das Messsignal ausreichend gut erfasst werden. (([[https://www.ti.com/product/TLV9101|TLV9101 Datenblatt]])), (([[https://www.microchip.com/en-us/products/microcontrollers-and-microprocessors/32-bit-mcus/pic32-32-bit-mcus/pic32mk|PIC32MK Product Family]]))
  
-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 nutzen zu können.+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://www.buydisplay.com/128x64-oled-i2c-0-96-display-white-color-connector-fpc-ssd1306|Buydisplay ER-OLED0.96-1.3W]]))+Laut Datenblatt besitzt das ausgewählte Display eine Auflösung von 128x64 Pixeln bei einer Bildschirmdiagonale von 0,96 Zoll.(([[https://www.buydisplay.com/128x64-oled-i2c-0-96-display-white-color-connector-fpc-ssd1306|Buydisplay ER-OLED0.96-1.3W]]))
  
 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://www.buydisplay.com/128x64-oled-i2c-0-96-display-white-color-connector-fpc-ssd1306|Buydisplay ER-OLED0.96-1.3W]])) 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://www.buydisplay.com/128x64-oled-i2c-0-96-display-white-color-connector-fpc-ssd1306|Buydisplay ER-OLED0.96-1.3W]]))
Zeile 282: Zeile 282:
 Quelle Tabelle: (([[https://www.buydisplay.com/download/manual/ER-OLED0.96-1_Series_Datasheet.pdf|ER-OLED0.96-1.3W Datenblatt]])) Quelle Tabelle: (([[https://www.buydisplay.com/download/manual/ER-OLED0.96-1_Series_Datasheet.pdf|ER-OLED0.96-1.3W Datenblatt]]))
  
-Die Auswahl der geeignetsten Schnittstelle folgte einem Vergleich der verfügbaren Ansteuerungsarten.+Die Auswahl der geeigneten Schnittstelle folgte einem Vergleich der verfügbaren Ansteuerungsarten.
  
 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 auch 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://www.buydisplay.com/download/manual/ER-OLED0.96-1_Series_Datasheet.pdf|ER-OLED0.96-1.3W Datenblatt]]))+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://www.buydisplay.com/download/manual/ER-OLED0.96-1_Series_Datasheet.pdf|ER-OLED0.96-1.3W Datenblatt]]))
  
 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://www.buydisplay.com/download/manual/ER-OLED0.96-1_Series_Datasheet.pdf|ER-OLED0.96-1.3W Datenblatt]])) 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://www.buydisplay.com/download/manual/ER-OLED0.96-1_Series_Datasheet.pdf|ER-OLED0.96-1.3W Datenblatt]]))
  
-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, bei dieser Art der Spannungsversorgung, sowohl für die Logik des Displays als auch den DC/DC Wandler verwendet werden und weitere Hardware zur Spannungswandlung eingespart werden kann.(([[https://www.buydisplay.com/download/manual/ER-OLED0.96-1_Series_Datasheet.pdf|ER-OLED0.96-1.3W Datenblatt]]))+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, bei dieser Art der Spannungsversorgung, sowohl für die Logik des Displays als auch den DC/DC-Wandler verwendet werden und weitere Hardware zur Spannungswandlung eingespart werden kann.(([[https://www.buydisplay.com/download/manual/ER-OLED0.96-1_Series_Datasheet.pdf|ER-OLED0.96-1.3W Datenblatt]]))
  
 ==== 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://ww1.microchip.com/downloads/en/DeviceDoc/SAM_L21_Family_DataSheet_DS60001477C.pdf|SAM L21 Datenblatt]])), zwei LC-Displays sowie einen microSD Kartenschacht und eine Batterie.+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://ww1.microchip.com/downloads/en/DeviceDoc/SAM_L21_Family_DataSheet_DS60001477C.pdf|SAM L21 Datenblatt]])), zwei LC-Displays sowie einen microSD-Kartenschacht und eine Batterie.
  
 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  ein 9 V Block zum Einsatz kam, war bereits ein großer Teil des Gehäuses durch diese belegt, der nicht für die Platine verwendet werden konnte. Auch eine Reduktion von zwei auf ein Display sorgte nicht für ausreichenden Platzgewinn, um den ESP32 im Gehäuse unterbringen zu können, ohne dass ein von Grund auf neues Layout für die gesamte Schaltung erforderlich wäre.+Da als Batterie  ein 9 V Block zum Einsatz kam, war bereits ein großer Teil des Gehäuses durch diesen belegt, der nicht für die Platine verwendet werden konnte. Auch eine Reduktion von zwei auf ein Display sorgte nicht für ausreichenden Platzgewinn, um den ESP32 im Gehäuse unterbringen zu können, ohne dass ein von Grund auf neues Layout für die gesamte Schaltung erforderlich wäre.
  
 Da der Wunsch bestand, die sehr komplexe und hohe Anzahl an Pins erfordernde analoge Schaltung zu vereinfachen, wurde die Strategie der Entwicklung geändert. Da der Wunsch bestand, die sehr komplexe und hohe Anzahl an Pins erfordernde analoge Schaltung zu vereinfachen, wurde die Strategie der Entwicklung geändert.
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://redmine.hs-heilbronn.de/subversion/entwicklung_von_schulungsmitteln/Handoszilloskop/Schaltplan/alte_ Schaltungen/Oszilloskopstift_Lite|Redmine->Handoszilloskop->Schaltplan->alte_ Schaltungen->Oszilloskopstift_Lite]]+Der Schaltplan der durchgeführten Teilintegration ist unter folgendem Link zu finden: [[https://redmine.hs-heilbronn.de/subversion/entwicklung_von_schulungsmitteln/Handoszilloskop/Schaltplan/alte%20Schaltungen/Oszilloskopstift_Lite|Redmine->Handoszilloskop->Schaltplan->alte Schaltungen->Oszilloskopstift_Lite]]
 ==== 4.3 Development Board ==== ==== 4.3 Development Board ====
-Nach der Anpassung des Projektziels wurde der Fokus des Projektes stärker auf die Oszilloskopfunktionalitäten als auf die Integration in das bestehende Layout gelegt. Darum wurde ein Developmentboard mit dem ausgewählten PIC32 beschafft, das als Basis für die zu entwickelnden Aufsteckplatinen dienen sollte. Als Developmentboard kommt das PIC32MK GP Development Kit (DM320106)(([[http://ww1.microchip.com/downloads/en/DeviceDoc/70005316A.pdf|PIC32MK General Purpose (GP) Development Board User’s Guide]])) zum Einsatz. Dieses bietet folgende Anschlüsse und Funktionalitäten.+Nach der Anpassung des Projektziels wurde der Fokus des Projektes stärker auf die Oszilloskopfunktionalitäten anstelle der Integration in das bestehende Layout gelegt. Darum wurde ein Developmentboard mit dem ausgewählten PIC32 beschafft, das als Basis für die zu entwickelnden Aufsteckplatinen dienen sollte. Als Developmentboard kommt das PIC32MK GP Development Kit (DM320106)(([[http://ww1.microchip.com/downloads/en/DeviceDoc/70005316A.pdf|PIC32MK General Purpose (GP) Development Board User’s Guide]])) zum Einsatz. Dieses bietet folgende Anschlüsse und Funktionalitäten.
  
 == Anschlüsse  und Komponenten == == Anschlüsse  und Komponenten ==
Zeile 359: Zeile 359:
  
 == PIC32MK1024GPE100 == == PIC32MK1024GPE100 ==
-Das Developmentboard ist mit einem PIC32MK1024GPE100 bestückt. Dieser ist das leistungsfähigste Modell der PIC32MK  Serie (([[http://ww1.microchip.com/downloads/en/DeviceDoc/70005316A.pdf|PIC32MK General Purpose (GP) Development Board User’s Guide]])). Hierdurch kann bei der Entwicklung der Software auf die volle Leistungsfähigkeit zurückgegriffen werden. Wird für die finale Version des Handoszilloskops weniger Leistung oder eine geringere Anzahl an Pins benötigt, kann innerhalb der PIC32MK Familie auf eine weniger leistungsfähige oder kleine Version skaliert werden. Dies reduziert die später anfallenden Kosten eines Exemplars des Handoszilloskops.+Das Developmentboard ist mit einem PIC32MK1024GPE100 bestückt. Dieser ist das leistungsfähigste Modell der PIC32MK  Serie (([[http://ww1.microchip.com/downloads/en/DeviceDoc/70005316A.pdf|PIC32MK General Purpose (GP) Development Board User’s Guide]])). Hierdurch kann bei der Entwicklung der Software auf die volle Leistungsfähigkeit zurückgegriffen werden. Wird für die finale Version des Handoszilloskops weniger Leistung oder eine geringere Anzahl an Pins benötigt, kann innerhalb der PIC32MK Familie auf eine weniger leistungsfähige oder kleinere Version skaliert werden. Dies reduziert die später anfallenden Kosten eines Exemplars des Handoszilloskops.
 ==== 4.4 mikroBUS Prototypen ==== ==== 4.4 mikroBUS Prototypen ====
 Wie zuvor beschrieben, wurde für die Tests der grundlegenden Funktionen zunächst auf die Entwicklung eines Gesamtboards verzichtet. Die Funktionsbereiche um den PIC32 wurden auf zwei Prototypen Platinen aufgeteilt, um die Funktionen des Oszilloskops auch getrennt voneinander testen zu können. Als Basis zum Anschluss der Platinen auf dem Developmentboard wurde der mikroBUS-Standard ausgewählt. Wie zuvor beschrieben, wurde für die Tests der grundlegenden Funktionen zunächst auf die Entwicklung eines Gesamtboards verzichtet. Die Funktionsbereiche um den PIC32 wurden auf zwei Prototypen Platinen aufgeteilt, um die Funktionen des Oszilloskops auch getrennt voneinander testen zu können. Als Basis zum Anschluss der Platinen auf dem Developmentboard wurde der mikroBUS-Standard ausgewählt.
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, welcher die Vorverarbeitung angelegter Spannungen übernimmt und an den Spannungspegel des PIC32 anpasst. Zur Verwendung von Tastköpfen ist eine MCX-Buchse vorhanden. Alternativ können Messleitungen auch an einer zweipoligen Klemme angeschlossen werden. Zulässige Messspannungen sind -10 V bis +10 V. Der angepasste Spannungsegel beträgt 0 V bis 3,3 V.+Die erste Platine umfasst den Analog-Eingang-Teil der Oszilloskopfunktion, welcher die Vorverarbeitung angelegter Spannungen übernimmt und an den Spannungspegel des PIC32 anpasst. Zur Verwendung von Tastköpfen ist eine MCX-Buchse vorhanden. Alternativ können Messleitungen auch an einer zweipoligen Klemme angeschlossen werden. Zulässige Messspannungen sind -10 V bis +10 V. Der angepasste Spannungspegel beträgt 0 V bis 3,3 V.
  
 Zusätzlich zur Analogschaltung umfasst die Platine auch ein OLED-Display, welches über einen FPC-Steckverbinder mit 30 Kontakten angeschlossen werden kann. Zur Ansteuerung wird 3-Wire SPI verwendet. Nutzereingaben können über 3 Taster erfolgen. Zusätzlich zur Analogschaltung umfasst die Platine auch ein OLED-Display, welches über einen FPC-Steckverbinder mit 30 Kontakten angeschlossen werden kann. Zur Ansteuerung wird 3-Wire SPI verwendet. Nutzereingaben können über 3 Taster erfolgen.
Zeile 443: Zeile 443:
  
 == Layoutvarianten == == Layoutvarianten ==
-Es wurden zwei Layouts der Schaltung erstellt. Der Schaltplan ist in beiden Fällen identisch. Ein Unterschied gibt es bei der Anzahl der verwendeten Schichten bei der Fertigung der Platine. Das erste Layout ist auf ein zweilagiges Design begrenzt und nutzt nur die Ober- und Unterseite der Platine für die Leiterbahnen. Das zweite Design sieht vier Lagen vor. Die inneren Lagen der Platine dienen der Spannungsversorgung mit 3,3 V und als Masselage.+Es wurden zwei Layouts der Schaltung erstellt. Der Schaltplan ist in beiden Fällen identisch. Einen Unterschied gibt es bei der Anzahl der verwendeten Schichten bei der Fertigung der Platine. Das erste Layout ist auf ein zweilagiges Design begrenzt und nutzt nur die Ober- und Unterseite der Platine für die Leiterbahnen. Das zweite Design sieht vier Lagen vor. Die inneren Lagen der Platine dienen der Spannungsversorgung mit 3,3 V und als Masselage.
  
 ==== 4.5 Akku-Schaltung und Spannungsversorgung ==== ==== 4.5 Akku-Schaltung und Spannungsversorgung ====
Zeile 515: Zeile 515:
 === 5.1.1 MPLAB X === === 5.1.1 MPLAB X ===
  
-Programmiert wird der PIC32 über die von Microchip veröffentlichte Entwicklungsumgebung [[https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-x-ide|MPLAB X IDE]] und dem darin verwendbaren Addon [[https://www.microchip.com/en-us/development-tools-tools-and-software/embedded-software-center/mplab-harmony-v3|MPLAB Harmony]].+Programmiert wird der PIC32 über die von Microchip veröffentlichte Entwicklungsumgebung [[https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-x-ide|MPLAB X IDE]] und dem darin verwendbaren Add-on [[https://www.microchip.com/en-us/development-tools-tools-and-software/embedded-software-center/mplab-harmony-v3|MPLAB Harmony]].
  
 == 5.1.1.1 Benutzeroberfläche == == 5.1.1.1 Benutzeroberfläche ==
Zeile 632: 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, welche während der Bearbeitung des Projekts festgestellt worden sind: Nachfolgend werden einige Besonderheiten bei der Bedienung von MPLAB aufgelistet, welche während der Bearbeitung des Projekts festgestellt worden sind:
-  * 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, kopiertes Projekt erzeugt Unterordner, keinen neuen Projektordner)   * Move und Copy von Projekten nicht innerhalb des Programms ausführen, sonst unerwünschte Nebenwirkungen. (Copy führt zu Verschachtelung des Projektordners, kopiertes Projekt erzeugt Unterordner, keinen neuen Projektordner)
   * Harmony Einstellungen werden über Project-Properties und Konfiguration gespeichert. Inkonsistentes Verhalten bei Move und Copy führt dazu, dass die Konfiguration für das kopiertes Projekt übernommen wird. Bei Veränderungen der Konfiguration werden beide Projekte geändert. Um dieses Verhalten zu umgehen, empfiehlt es sich ein neues Projekt mit neuer Konfiguration anzulegen und die Projektfiles manuell zu kopieren.   * Harmony Einstellungen werden über Project-Properties und Konfiguration gespeichert. Inkonsistentes Verhalten bei Move und Copy führt dazu, dass die Konfiguration für das kopiertes Projekt übernommen wird. Bei Veränderungen der Konfiguration werden beide Projekte geändert. Um dieses Verhalten zu umgehen, empfiehlt es sich ein neues Projekt mit neuer Konfiguration anzulegen und die Projektfiles manuell zu kopieren.
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, dass auf die X-Achse der ADC-Wert in Volt, auf der Y-Achse die dazugehörigen Sample-Werte angegeben wird. Bevorzugt wäre anstatt des Sample-Werts der Zeitpunkt des Samplings angegeben worden, allerdings war das mit den vorhandenen Mitteln nicht sinnvoll. Bei der Umsetung mit vier verschachtelten ADC werden die Sample-Werte in einem Buffer zwischengespeichert und erst bei vollem Speicher ausgelesen. Dadurch lässt sich kein genauer Zeitpunkt den Werten zuweisen. Die beiden Umsetzungen mit Harmony könnten den genauen Zeitpunkt des Samplings mittels Timer per USB an den PC übertragen, allerdings würde durch die momentane Umsetzung des Codes dadurch die Sample-Rate niedriger werden. Die Terminalprogramme haben ebenfalls die Möglichkeit den Zeitpunkt der eingehenden Übertragung aufzuzeichnen, allerdings ist die zeitliche Auflösung zu niedrig, bei einer Sampling-Rate im Msps-Bereich ist eine Auflösung in Mikrosekunden notwendig, die Programme können nur bis Millisekunden aufzeichnen.+Die Messungen werden so dargestellt, dass auf die X-Achse der ADC-Wert in Volt, auf der Y-Achse die dazugehörigen Sample-Werte angegeben werden. Bevorzugt wäre anstatt des Sample-Werts der Zeitpunkt des Samplings angegeben worden, allerdings war das mit den vorhandenen Mitteln nicht sinnvoll. Bei der Umsetzung mit vier verschachtelten ADC werden die Sample-Werte in einem Buffer zwischengespeichert und erst bei vollem Speicher ausgelesen. Dadurch lässt sich kein genauer Zeitpunkt den Werten zuweisen. Die beiden Umsetzungen mit Harmony könnten den genauen Zeitpunkt des Samplings mittels Timer per USB an den PC übertragen, allerdings würde durch die momentane Umsetzung des Codes dadurch die Sample-Rate niedriger werden. Die Terminalprogramme haben ebenfalls die Möglichkeit den Zeitpunkt der eingehenden Übertragung aufzuzeichnen, allerdings ist die zeitliche Auflösung zu niedrig, bei einer Sampling-Rate im Msps-Bereich ist eine Auflösung in Mikrosekunden notwendig, die Programme können nur bis Millisekunden aufzeichnen.
  
 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, solange die Signaldauer nicht länger als 82 ms ist. (Berechnet aus: 4 ADC mit je 2*128 Sample Speicher -> Gesamt 1024 Samples / 12,5 Msps)(([[http://ww1.microchip.com/downloads/en/DeviceDoc/60001344D.pdf|PIC32 12 bit SAR ADC]])). +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, solange die Signaldauer nicht länger als 82 ms ist. (Berechnet aus: 4 ADCs mit je 2*128 Sample Speicher -> Gesamt 1024 Samples / 12,5 Msps)(([[http://ww1.microchip.com/downloads/en/DeviceDoc/60001344D.pdf|PIC32 12 bit SAR ADC]])). 
-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 ADC verwendet werden, um die Sample Rate weiter zu erhöhen, oder ob sie als weiterer separater Oszilloskop-Kanal verwendet werden sollen. ADC 2, 5 und 6 können nicht so konfiguriert werden, dass sie ebenfalls die Spannung an AN0 einlesen. Dadurch wäre es bei einer gewünschten Erhöhung der Sample Rate notwendig, mehrere analoge Eingänge miteinander zu verbinden.+Eine weitere Überlegung kann sein, ob für das Handoszilloskop die restlichen ADCs verwendet werden, um die Sample Rate weiter zu erhöhen, oder ob sie als weiterer separater Oszilloskop-Kanal verwendet werden sollen. ADC 2, 5 und 6 können nicht so konfiguriert werden, dass sie ebenfalls die Spannung an AN0 einlesen. Dadurch wäre es bei einer gewünschten Erhöhung der Sample Rate notwendig, mehrere analoge Eingänge miteinander zu verbinden.
  
  
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, wird nur in eine Richtung kommuniziert kann auch nur eine Leitung verwendet werden. <imgref Busaufbau_UART>(([[https://edistechlab.com/wie-funktioniert-uart/?v=3a52f3c22ed6|UART-Bus.png]])) zeigt eine typische UART-Kommunikation.(([[https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter|Wikipedia 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, wird nur in eine Richtung kommuniziert kann auch nur eine Leitung verwendet werden. <imgref Busaufbau_UART>(([[https://edistechlab.com/wie-funktioniert-uart/?v=3a52f3c22ed6|UART-Bus.png]])) zeigt eine typische UART-Kommunikation.(([[https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter|Wikipedia UART]]))
  
 <imgcaption Busaufbau_UART | Busaufbau UART > <imgcaption Busaufbau_UART | Busaufbau UART >
Zeile 959: Zeile 959:
 [[https://sigrok.org/wiki/Supported_hardware|PulseView unterstützte Hardware]]\\ [[https://sigrok.org/wiki/Supported_hardware|PulseView unterstützte Hardware]]\\
 Die Umsetzung geschieht mit der [[https://sigrok.org/wiki/Developers|libsigrok API]]. Entwickler können für Geräte die Software für PulseView selbst einbinden. Generell sollten Geräte, welche auf dem Cypress FX2 µC basieren, oder das [[https://de.wikipedia.org/wiki/Standard_Commands_for_Programmable_Instruments|SCPI Protokoll]] verwenden, kompatibel sein. Mehr Informationen dazu im [[https://sigrok.org/doc/pulseview/0.4.1/manual.html|PulseView User Manual]]. PulseView bietet ebenfalls Unterstützung für den [[https://sigrok.org/wiki/Openbench_Logic_Sniffer|Openbench Logic Sniffer]], welcher einen PIC18 für die USB Kommunikation verwendet.\\ Die Umsetzung geschieht mit der [[https://sigrok.org/wiki/Developers|libsigrok API]]. Entwickler können für Geräte die Software für PulseView selbst einbinden. Generell sollten Geräte, welche auf dem Cypress FX2 µC basieren, oder das [[https://de.wikipedia.org/wiki/Standard_Commands_for_Programmable_Instruments|SCPI Protokoll]] verwenden, kompatibel sein. Mehr Informationen dazu im [[https://sigrok.org/doc/pulseview/0.4.1/manual.html|PulseView User Manual]]. PulseView bietet ebenfalls Unterstützung für den [[https://sigrok.org/wiki/Openbench_Logic_Sniffer|Openbench Logic Sniffer]], welcher einen PIC18 für die USB Kommunikation verwendet.\\
-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://lists.sourceforge.net/lists/listinfo/sigrok-devel   * https://lists.sourceforge.net/lists/listinfo/sigrok-devel
   * https://web.libera.chat/#sigrok   * https://web.libera.chat/#sigrok