Aufbau auf einem ARDUINO-Shield zum Aufstecken auf einen UNO, oder MEGA

Angeregt durch einen Artikel in der CQ-DL 03/2020, einem Beitrag von Raimund Vollmer, DK7RV, wollte ich auch einen solchen hochgenauen Oszillator für 10-MHz bauen. Allerdings liegt mir zunächst eher weniger an dem Ergebnis, da ich bisher keinerlei Idee habe, wann ich denn den Oszillator wie und wo sinnvoll einsetzen könnte, oder sollte.
Aber es interessierten mich sofort einige der verwendeten Bauteile, von denen Raimund berichtete, und das Zusammenspiel der Komponenten. Und so war von Beginn an ‚der Weg das Ziel‘. Und danach wird man weitersehen.

Kostenpunkt des gesamten Aufbaus, einschl. ARDUINO UNO, Shield, 10-MHz-Quarz, …. : max. 60,- €.
Der jeweils aktuelle Sketch findet sich weiter unten als Link.

Nach den anfänglichen Überlegungen wollte ich den Aufbau etwas anders gestalten wie beschrieben. Schaltungstechnisch sollte es identisch sein, der Aufbau jedoch sollte abweichend sein. Und ggf. soll später noch eine 2-zeilige LCD-Anzeige hinzukommen. Also war die Planung die folgende:
Ardunino ‚UNO‘ mit einem passenden Protoshield, auf dem ich alles Weitere dauerhaft aufbauen kann. An sich ist das alleine schon der gravierende Unterschied zum Aufbau von Raimund, der einen  ‚NANO‘ auf eine Lochrasterplatine gesetzt hat.
Dann aber auch gleich zu den Bauteilen, von denen es neben dem ‚UNO‘ noch drei faszinierende Elemente gibt: den LM4040, den MCP4261 und den ENE3311B. Bleibt an dann nur noch der SN74HCT als nennenswert.

Der ENE3311B ist ein ‚Quarzofen‘ – ein OXCO. Das ist ein hochgenauer Schwingkreis auf Quarz-Basis, der auf 75°- 80°C geheizt – und per Thermostat auf dieser Temperatur gehalten wird. „Faszinierend !“
Als gebrauchten Ausschlacht-Artikel aus China ist der OXCO für ca. 10,- – 20,- € zu bekommen. Das Auslöten aus der Restplatine kann schon mal zeitaufwendig sein (!). Und beim Zusammenbau ist im Vorfeld zu beachten: Der ENE3311B hat nicht den üblichen Lochrasterabstand (!). Da aber einer der 5 Anschlüsse ohnehin nicht belegt ist, kommt man mit vorsichtigem Biegen der anderen 4 Anschlüsse schon irgendwie zurecht.
Zum ENE3311B gibt es einen Artikel von Michael Knietzsch auf seiner Seite (etwa in der Mitte), mit weiteren Links zum Thema  –> hier geht es zu der Seite. Und noch einen weiteren interessanten Artikel zum ENE3311B, der dann aber über den folgenden Link gleich übersetzt wird.
Ein weiterer wichtiger Hinweis sollte auch bereits hier sein:  „Der ‚ENE3311‘ wird zusammen mit den weiteren Bauteilen bis zu 500mA Strom verbrauchen (!)“. Das ist so nicht mehr via USB-Anschluß über den aufgesteckten ARDUINO zu leisten. Und ob es der richtige Weg ist den 5V-Netzteil-Anschluß des ARDUINO zu nutzen, ziehe ich im Augenblick noch in Zweifel. Vielmehr werde ich zunächst den Weg gehen, dass ich die 5V-Betriebsspannung (oben) auf dem ProtoShield einspiele und von dort aus dann zum ARDUINO ‚runter‘ leite.  (Ich hatte mal einen etwas abweichenden Fall, da ist mir der 3,3V/5V-Teil des MEGA schlichtweg ‚abgeraucht‘, weil ich ein 7″-Display darüber betreiben wollte. Siehe dazu meine Seite ‚Arduino-Uhr‘.) Auch Raimund hat seinen NANO separat mit 5V versorgt; zumal er die Oszillator-Einheit letztendlich alleinig betreibt. Den NANO benötigt er nur für die Widerstands-Einstellung des MCP4261.

Der LM4040 ist ein Stück-weit eine Zener-Diode, die hochpräzise eine Spannung von 2,048 V am Ausgang liefert. Und das bei einer Toleranz von +/- 0,1%. Das ist eines dieser Bauteile, wie sie im Satellitenbau verwendet werden. LM4040 in der Bauform TO92, oder SMD. Als SMD-Bauteil habe ich es zunächst fälschlicherweise gekauft.Die Dinger sind so klein, da ist ein Mohnkorn größer. Und wer seine Leidensfähigkeit testen möchte, der kann ja versuchen dieses Bauteil auf das Shield (die Platine) zu bringen. „Doch, doch – das klappt und funktioniert.“ –> Siehe dazu das Leiterbahn-Foto; dort ist der kleine Freund unten links zu erkennen.
Besser ist es aber statt 10 Mohnkörnchen zu bestellen, zum gleichen Preis 2 Bauteile im TO92 (sieht aus wie ein Transistor) zu kaufen. Und ob es ein – oder zwei Teile sind, macht oft keinen Unterschied.

Der MCP4261 ist ein digitaler Widerstand, den man mit unterschiedlichen Widerstandswerten (5K, 10K, 50K und 100K) erwerben kann – hier 10KΩ – und den man via SPI z.B. mit einem Arduino – in vielen Einzel-Stufen hochpräzise einstellen kann. Oder auch – wie mir Raimund noch zu seinem Aufbau erklärt hat – :
Da es sich um zwei Widerstände in einem Gehäuse handelt, „… wird in einem jeden der beiden Widerstände zunächst das mögliche Einstellverhältnis eingestellt. Die beiden daraus resultierenden (Teil-) Spannungen werden dann in einem 100:1 Widerstandsnetzwerk addiert.“ Und diese so fein eingeregelte Spannung wiederum wird dann an den Oszillator-Baustein (ENE3311) über den Vcont-Pin eingespeist, sodass dort dann auch eine ebenso hochgenaue Ausgangsfrequenz von 10-MHz eingeregelt werden kann. Denn in einem ganz engen Bereich von wenigen Hertz lässt sich dieser Oszillator nämlich noch in seiner Frequenz über die Spannung am Vcont regeln.
Ich habe mir also gleich zwei MCP4261 gekauft – einen für dieses Projekt und einen zum herum-experimentieren. Daher hier auch gleich schon mal der Hinweis darauf, was mir bei Erarbeiten dieses Projektes noch zum MCP4261 eingefallen ist:  Originär ist es ein doppelter digitaler Widerstand, der da in einem IC-Gehäuse steckt. Als solchen kann man ihn auch ohne einen Quarzofen nutzen. Projekte im Internet zeigen da z.B. eine Schaltung zur Lautstärkeregelung  in HiFi-Anlagen. Dann kann diese Chip natürlich – wie auch in diesem Projekt – als Spannungsregler verwenden. Und dann, …………….
Das ist ein super Speicherbaustein !!!!! Der kann neben seinen 8 flüchtigen Speicherplätzen auch noch weitere 8 nicht flüchtige Speicher vorweisen. Es bedarf keiner Puffer-Batterie um den gespeicherten Inhalt zu bewahren !
Alleine diese Tatsache macht den MCP schon zu (m)einem zukünftigen Bauteil, mit dem ich mancherlei Probleme in der ARDUINO-Welt besser lösen kann. Denn oft wird der letzte Wert vor dem Ausschalten der Schaltung auch nach dem Wieder-Einschalten der Schaltung benötigt. So würde es dann machbar sein.   !!!!!!  8 nicht flüchtige Speicher !!!

Allein für das Testen und Ausprobieren dieses einen Bauteils gibt es schon einige Arduino-Sketche und Bibliotheken, die es sich sicher lohnt mal ‚etappenweise‘ nachzubauen. Das bedarf nur eines Breadboards, ein paar Kabel und eben dem ARDUINO (NANO, oder UNO, oder MEGA), sowie dem MCP4261.
Siehe dazu auch den folgenden Link http://matthewcmcmillan.blogspot.com/2014/03/arduino-using-digital-potentiometers.html .

Auf der ARDUINO-Seite gibt es auch einen Sketch dazu mit dazugehöriger Library. Und noch ein weiteres Tutorial zu dieser Thematik unter diesem Link. Wer noch mehr forschen will, der fragt ‚Tante Google‘ mal nach „Beispielschaltung Arduino MCP4261“.

Erster Entwurf und Umsetzung des Schaltplan auf ein mögliches ProtoShield-Layout

Leiterbahn-Seite mit zusätzlichen Verdrahtungen

 

 

 

 

 

 

16.Mai 2020

Ein paar Tipps gleich hier zu Beginn für diejenigen, die nun auch diese Schaltung nachbauen wollen:
Es hat sich für mich als extrem hilfreich herausgestellt, dass ich quasi Modul zu Modul angefangen habe zu bauen und zu testen. Also ersteinmal habe ich eine Schaltung nachgebaut, bei der der MCP4261 an einen ARDUINO angeschlossen wird und zwei LED’S ansteuert. Nachdem das dann funktionierte habe ich den LM4040 hinzugenommen. Dann habe ich die LED’s entfernt und habe die beiden Widerstands-Ausgänge zusammengelegt – so, wie das auch bei Raimund der Fall war. Und auf dieser Basis habe ich dann den Spannungsverlauf je nach Einstellwerten an den beiden Poti’s geprüft. Danach kam dann der Quarzofen hinzu um dort zu sehen (und im Empfänger zu hören) wie sich denn der Einfluß der Steuerspannung auf die Frequenz auswirkt.

Der zweite Tipp ist der ‚unbedingt auf einem Steckbrett zu beginnen‘ ! Nur hier kann man mal eben den Aufbau verändern und korrigieren. Ist erst einmal alles verlötet, wird es ungleich schwieriger.

Spätestens dann wenn der ENE3311mit in Betrieb genommen wird, bedarf es einer separaten Spannungsquelle. In der Aufwärm-Phase benötigt die gesamte Schaltung 540mA. Das ist für den USB-Ausgang eines PC, wie auch für den ARDUINO zu viel. Die Schutzschaltung greift sofort ein und schaltet den USB-Port und/oder den ARDUINO ab. Das wird dann also nichts mehr mit dem Hochfahren. Neben der externen Spannungsquelle wird der ARDUINO parallel per USB angeschlossen, da sonst keine Kommunikation mit dem seriellen Monitor zur Einstellung der Spannungswerte erfolgen kann.

Und damit sind wir beim Aufbau, der sich bei mir schwierig gestaltete, da noch ein paar Details ’so nicht‘ funktionierten. Zum einen hat sich im Schaltplan aus der CQ-DL ein Fehler eingeschlichen: So werden die beiden MCP4261-Pins 5 und 10 nicht gegen Masse geführt, sondern gegen die Betriebsspannung von 5V.
Den CS-Pin vom ARDUINO (Pin10), habe ich nicht über Pin1 in den SN74HCT geführt und über Pin2 wieder raus an den Pin1 des ‚MCP‘, sondern ich habe ihn direkt – am ‚SN74‘ vorbei – vom ARDUINO zum ‚MCP‘ geführt. Damit ist dann auch (zunächst) der 130K-Widerstand in dem Bereich ersatzlos weggefallen. Ob das aber dauerhaft so bleiben kann, weiß ich noch nicht, da hier womöglich ein Pull-down-Widerstand nötig ist, um so auch einen fehlerfreien Betrieb ohne den ARDUINO zu ermöglichen.  (Muß ich noch testen – spielt aktuell aber auch erst einmal keine Rolle.)

Und dann habe ich auch noch den ARDUINO-Sketch in ganz wesentlichen Teilen neu geschrieben und dabei dann auch gleich noch Erweiterungen vorgenommen. So lässt sich nun auch der Wert vom ersten Poti in 1er (wie bisher)-, 10er- und 100er-Schritten erhöhen und verringern. Das ist auch noch bei dem zweiten Poti vorgesehen und technisch auch gar kein Problem. Zudem werden jetzt beide Werte aus den ‚flüchtigen‘ Speichern in die ’nicht-flüchtigen‘ Speicher des MCP4261 geschrieben. Die Steuerung erfolgt nach-wie-vor (noch) über den seriellen Monitor des ARDUINO-Editors. Den aktuelle Version meines Sketch gibt es hier –> DigiPoti

Und so ging es Ende April los:

22.04.2020
Die erste Inbetriebnahme, bzw. der erste Test ist erfolgt. Es gibt keine offensichtlichen Probleme: Spannung bleibt stabil bei 5,2 V und die Stromaufnahme liegt auf einem deutlich niedrigeren Niveau als erwartet. Damit liegt schon mal kein Kurzschluß bei der Verdrahtung vor. Am Ausgang des LM4040 liegt eine stabile Spannung von 2,483 V an, der ENE3311 heizt sich schnell auf und es ist, über einen der Ausgänge, ein relativ starkes 10 MHz-Signal im Empfänger zu vermelden. Auch die LED-Betriebsanzeige ist verdrahtet.

Damit kann nun der nächste Teil beginnen, bei dem ich den ARDUINO UNO zunächst mit einem separaten Breadboard-Aufbau und einem entsprechenden Beispiel-Sketch für den ‚MCP‘ testen möchte, um so weitere Erfahrungen sammeln zu können, bevor ich dann die beiden Einheiten verbinde. Die entsprechenden Sketche werde ich dann später auch hier veröffentlichen.

Im Internet habe ich einige Beispiel-Sketche gefunden, von denen ich eine für den ersten Anlauf  nutzen möchte. Dabei bin ich auf diese Seite gestoßen. Dort werden mit einem MCP4251 zwei LED’s gesteuert. Meine Erwartungen wurden allerdings nicht so recht erfüllt, weswegen ich den Sketch gleich umgeschrieben habe. So liegt für mich die Idee darin, zwei LED’s getrennt voneinander beispielhaft zu regeln. In dem obigen Original-Sketch – der aber sehr gut und umfangreich beschrieben wird (!) leuchtet – zumindest bei mir – die eine LED durchgehend gleich hell und die andere LED wird tatsächlich von 255 bis auf 0 heruntergeregelt. Das geht mir aber zu langsam; und zudem ist mit einer LED nur der Bereich von 120 – 80 sichtbar geregelt. Darunter ist zu wenig Spannung da, die LED zum Leuchten zu bringen – darüber macht sich die Spannung nicht mehr sonderlich auf die Leuchtstärke bemerkbar. Trotzdem – noch einmal – : der Sketch ist so vom Aufbau und seiner Beschreibung sehr informativ !! Er stellt eine ausgezeichnete Basis da, um darauf weiter aufzubauend. Allein der Versuch ’nicht LED1 zu regeln und LED2 ungeregelt zu lassen, sondern so Umzuprogrammierung, dass es umgekehrt läuft (LED1 bleibt ungeregelt und LED2 wird abgeregelt), oder dass die Helligkeit der ungeregelten LED zuvor fest einprogrammiert wird, …..  hat mir schon viel Verständnis über die Arbeitsweise von Programm und MCP4261 gebracht.
Den geänderten Sketch stelle ich in Kürze hier mit ein. Dabei wird die Leuchtstärke in einem kleineren Bereich und schneller geregelt. Zunächst wird die eine LED runtergeregelt und danach die andere LED hochgeregelt. Der Aufbau bleibt dabei identisch wie bei ‚McMillian‘.

‚MCP4261‘ – kleiner Übungsaufbau

In dem Zusammenhang: 4251 und 4261 sind nahezu identisch. Beide können mit dem gleichen Programm gesteuert werden. Und da bei dem ‚4251‘ der Pin11 nicht belegt ist, beim ‚4261‘ aber schon, kann auch so, oder so, die Beschaltung nach ‚Matthew McMillian‘ eingesetzt werden. Und es ist nach meinen Erfahrungen auch egal, ob Pin11 (bei dem MCP4261 = ‚WP‘) an GND, oder Vcc gelegt wird. Ganz offenbar spielt das bei dieser Beschaltung und Programmierung keine Rolle.

Hier links ist eine offenbar ältere Version beschrieben, bei der Pin11 unbelegt ist. Die ’neuere‘ Schaltung weist für Pin11 ‚WP‘ (Write Protect) aus.
 

 Und das dürfte damit die aktuelle Version sein.