Nano every RESET vs. Einschalten

Was ist der Unterschied zwischen Reset und Spannungszufuhr?

Ein Nano Every initialisiert problemlos beim Einschalten,
zeigt aber seltsame Zeichen, auf einem 2 Zeilen I2C Display, nach einem Reset.
Erst nach mehrmaligen Reset (oder Aus- und Einschalten) fängt er sich wieder.

(deleted)

welche Zeichen genau? mach mal ein Bild damit man sich was vorstellen kann.

Welches I2C Display? hat das native i2c Unterstützung oder verwendest du ein I2C Backpack? Produkt verlinken!
Welche Library verwendest du für das Display?
Ist das Verhalten beim mitgelieferten Hello World Beispiel auch so?

Wenn mehrere Reset helfen, probier mal ein delay(5000); am Anfang von setup().

Der Unterschied ist, daß ein Einschalten alle vorhandenen Teile einen Anfangsreset durchführen. Bei einem Reset des Controllers nur dieser resettiert wird.

Grüße Uwe

uwefed:
Der Unterschied ist, daß ein Einschalten alle vorhandenen Teile einen Anfangsreset durchführen. Bei einem Reset des Controllers nur dieser resettiert wird.

Genau. Das Display wird meistens nicht einzeln resetet. Einige Displays haben einen extra Resetpin oder Reset Kommando was dann im Initialiserungscode genutzt werden sollte. Ansonsten hilft nur wie festgestellt der gesamte "Spannungsreset" der gesamten Schaltung.

Alle etwa 5 Mal Reset über den Resetbutton am Nano klappt nicht.

Ich habe jetzt erst mal den Vorschlag mit dem Delay ausprobiert. => Immer noch

Dann habe ich 2 10KOhm an die I2C (A4,A5) Leitungen zu 5V gelegt. => Immer noch

Das Display ist aus einem Joy-it Kit: 1602A

void setup() {
  // put your setup code here, to run once:

  lcd.init();
  lcd.backlight();
  lcd.clear();
  zaehler=0;
  attachInterrupt(digitalPinToInterrupt(HallPin),Hall_ISR,FALLING);

}

Welche Lib verwendest Du zur Ansteuerung des Displays? Link bitte.

Gruß Tommy

Du wirst das Problem nicht ohne Hardwareänderung lösen können.
Das liegt am fehlenden Reseteingang vom Display.

Wenn du das LCD per zusätzlichem Transistor beim Reset vom VCC trennst, dann kann es funktionieren.
Ist aber auch keine optimale Lösung.

Den Nano every kenne ich nicht, aber es gibt andere, die mit dem Anfang von setup Probleme haben. Daher könntest Du versuchsweise ein delay(3000); an den Anfang von setup setzen.

(deleted)

Wenn es der Link ist, der im Bibiothekverwaltung steht, dann ist es:

Ich habe jetzt im setup 3sekunden Pause vor einem init => immer noch

Backlight und Clear getauscht => immer noch

Selbst das Datenblatt vom hd44780 kennt nur das PowerOnReset mit ziemlich langen Zeiten.
Da wird wohl nur die Variante von hotsystems mit dem Transistor bleiben.

Gruß Tommy

Hallo,

eine kurze Suche ergab, man soll/muss 3x hintereinander "Softreset" ausführen, dass wäre sicher.

https://www.mikrocontroller.net/topic/318923

Das würde aber bedeutet, dass wenn ich VCC vom Display abtrenne und wieder anschließe,
es sich reseten müsste.
Das tut es aber leider nicht.
Wenn ich aber danach nochmals den Nano resete, dann fängt sich sich das Display wieder.
Das habe ich jetzt 10 mal vesucht, ohne dass jeweils nach dem Fehler wieder seltsame Zeichen erschienen.

Also ich resete, die seltsamen Zeichen erscheinen.
Dann entferne ich VCC vom Display und schließe es wieder an.
Andere seltsame Zeichen sind sichtbar.
Ich resete den Nano
Alles ist wieder in Ordnung.

Aber halt leider etwas umständlich.

@Doc_Arduino

Wie macht man denn Softreset?
Die dort gezeigten Code-Zeilen verstehe ich nicht so ganz.

Hallo,

das sind am Ende alles nur Kommandos die übertragen werden. Du müßtest das hier rausfischen, schauen was dahintersteckt, danach bei deinem Display nach Übereinstimmung suchen und nach/einbauen. Macht Aufwand, zugegeben. Oder du suchst dir eine andere I2C Display Lib.

oleum:
Wie macht man denn Softreset?
Die dort gezeigten Code-Zeilen verstehe ich nicht so ganz.

Im 5. Beitrag der Diskussion bei microcontroller.net ist ein Link zu einem Artikel, der dass etwas tiefer beleuchtet. Evtl. hilft Dir das.

@Doc: Ob eine andere I2C-Lib besser ist, ist auch nicht sicher.

Gruß Tommy

Hallo,

ja, eine andere Lib(s) könnte man probieren bzw. vorher durchschauen. Was mir noch einfällt wäre, den Lib Programmierer auf Github mit einem Issues ganz lieb bitten das init zu ändern oder eine zusätzliche Methode zur Verfügung stellen, reinit oder was er dann auch immer macht.

oleum:
Das würde aber bedeutet, dass wenn ich VCC vom Display abtrenne und wieder anschließe,
es sich reseten müsste.
Das tut es aber leider nicht.
Wenn ich aber danach nochmals den Nano resete, dann fängt sich sich das Display wieder.

Das muss ja auch gleichzeitig passieren.
Durch den Reset muss auch die Spannung vom LCD getrennt werden.
Da sind schon zusätzliche Transistoren erforderlich.

Mein erstes Projekt, und ich kann schon voll einsteigen :wink:

C ist nicht meine Muttersprache.

Wo stehen denn die tatsächlichen Befehle, die an die Pins geschickt werden, in den Libs?
Versteht der Arduino direkt C oder ist da noch eine Schicht Maschinenkode ?

Kann ich die Libs denn selbst bearbeiten?

UART Controller hatte ich schon mal vor ~hundert Jahren per Assembler
programmiert.

Wo finde ich die ganzen harwarenahen Unterlagen zum Arduino?

Kann ich selbst Treiber programmieren, läuft das auch in C ?

Jetzt kommen halt die ganzen Fragen, die die innere Struktur
betreffen...