Verbesserung der Immunität gegen Arduino-Rauschen

Nein, es ist kein Cluster


Auch wenn das System richtig montiert ist und gekocht Wenn guter Code geschrieben ist, beträgt die Wahrscheinlichkeit, dass alles so funktioniert, wie es sollte, ungefähr 50/50.


Dafür kann es drei Gründe geben:


  1. Lötfreie Steckbretter
  2. Elektromotoren
  3. GSM-Kommunikationsmodule

Und wenn es im ersten Fall ausreicht, einen Lötkolben aufzunehmen (was ich von Anfang an getan habe), dann sind elektromagnetische Störungen ein Problem, das nicht immer durch Abschirmung und Leistungsfilter gelöst werden kann.


Unter dem Schnitt - die einfachste und „drahtloseste“ Möglichkeit, wie Sie auf dem Foto verstehen, eine Möglichkeit, die Sicherung von Arduino zu wechseln, indem Sie auf einen internen RC-Generator umschalten und die Stromversorgung ausschalten.


Und wenn ich die Lösung mit dem Generator für Modellbauer mit leistungsstarken Motoren „ausspioniert“ habe, bin ich selbst zur zweiten gekommen, noch bevor ich Arduino getroffen habe.


Da das erste Design ein Bewässerungsindikator war, verbrauchte es 0,5 mA in der aktiven Phase (für 1 MHz und 2,4 V Stromversorgung).


Warum ProMini-Boards? Sie enthalten nichts Überflüssiges (außer LEDs ;-)


Paar Arduin


Warum haben Sie eine stabile Entscheidung getroffen, indem Sie ein Board für den Programmierer neu erstellt haben?


Wenn Sie mehr als dreimal etwas tun müssen, versuche ich es zu automatisieren / zu vereinfachen!


Und Sie müssen zugeben, dass jedes Mal, wenn Sie Beiträge stochern, nicht ernst ist.


Mit Blick auf die Zukunft werde ich sagen, dass ich die Ergebnisse auf meiner SMS-Waage getestet habe.


Und wenn es sich früher gelohnt hat, das Kommunikationsmodul im GSM-900-Standard zu registrieren, dann begann der Controller mit einem Abstand zwischen ihm und Arduinka von weniger als einem Meter zu starten.


Jetzt ist alles in Ordnung, an verschiedenen Stellen, an denen dieser Effekt beobachtet wurde.


Wir brauchen nur einen Kamm aus PBS-Steckern, ein dünnes Skalpell und eine Lupe:


Änderung


Mit einem Skalpell schneiden wir den Rücksetzpfad (in einem blauen Kreis) und löten die Steckverbinder in keinem Fall an die durch das gelbe Oval gekennzeichneten Stellen.


Ja, wir verbinden den D10-Pin mit dem getrimmten Reset durch ein Twisted-Pair-Segment.


Tatsächlich erhalten wir dieses (ehrlich aus dem Internet kopierte) Schema:


Schaltplan


Nur viel kompakter, ohne Kabel und Kondensator, weil es funktioniert.


Jetzt verbinden wir unseren zukünftigen Programmierer mit USB-TTL. In ArduinoIDE legen wir den Board-Typ und den Port fest. Wir flashen die ArduinoISP-Skizze aus den Beispielen (vergessen Sie nicht, die Zeile #define USE_OLD_STYLE_WIRING zu kommentieren.)


Bearbeiten Sie im Ordner \ arduino-your_version \ hardware \ arduino \ awr die BOARDS-Datei anstelle des Arduino Pro- oder Pro Mini-Blocks und fügen Sie Folgendes ein:


## Arduino Pro or Pro Mini (3.3V, 8 MHz INTERNAL) w/ ATmega328P ## --------------------------------------------------- pro.menu.cpu.8MHzatmega328=ATmega328P (3.3V, 8 MHz INTERNAL) pro.menu.cpu.8MHzatmega328.upload.maximum_size=30720 pro.menu.cpu.8MHzatmega328.upload.maximum_data_size=2048 pro.menu.cpu.8MHzatmega328.upload.speed=57600 pro.menu.cpu.8MHzatmega328.bootloader.low_fuses=0xE2 pro.menu.cpu.8MHzatmega328.bootloader.high_fuses=0xDA pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses=0xFF pro.menu.cpu.8MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex pro.menu.cpu.8MHzatmega328.build.mcu=atmega328p pro.menu.cpu.8MHzatmega328.build.f_cpu=8000000L 

Dann habe ich low_fuses FF> E2 (auf internen Generator umschalten) und Extended_fuses FD> FF (Verbot der Leistungsregelung) geändert.


Das war's, starten Sie ArduinoIDE neu, setzen Sie den Donor in unseren Programmierer ein, trennen Sie das DTR-Kabel von USB-TTL (es sei denn, Sie haben natürlich eines ;-)


Wählen Sie im Abschnitt Tools-Programmer "Arduino AS ISP", Kartentyp Arduino Pro oder Pro Mini (3,3 V, 8 MHz INTERN) - Flash-Bootloader.


Das ist alles! Ich werde mich nicht mit unnötigen Überprüfungen mit avrdude und anderen Tricks beschäftigen und so in Dutzenden von Handbüchern beschrieben - ich wollte das einfachste Material geben.


Auf dem Titelfoto befindet sich übrigens eine Platine mit einem bereits gelöteten Keramikresonator.


Ein zusätzliches Brötchen - Skizzen in Arduinki können ohne Drücken von Reset geflasht werden - durch Strg-Umschalt-U (Entladen mit dem Programmierer)


Zusätzlich zur Störfestigkeit beseitigt dieses Verfahren das Versagen der Erzeugung von gewöhnlichem Quarz während des Schüttelns und Schocks.


Minus - Genauigkeit der Timer + -5%.


Erfolgreich für Sie Projekte!


Andrey.

Source: https://habr.com/ru/post/de472726/


All Articles