Der AVR-/ARDUINO-Faden

Der chaotische Hauptfaden

Moderatoren: Sven, Heaterman, TDI, Finger

Re: Der AVR-/ARDUINO-Faden

Beitragvon Tizi » Do 13. Jul 2017, 15:16

FRAGE:

Ich nutzte das myAVR MK2-Board mit ISP Schnittstelle zum Programmieren.
Habe mir nun ein Adapterkabel von ISP auf offene Enden (Steckbrett) gelötet.
Die Stromversorgung scheint zu gehen und auch beim Durchgangsprüfen geht alles.
Noch jemand eine Idee wieso das myAVR Progtool den Atmega8 nicht erkennt=?
Tizi
 
Beiträge: 464
Registriert: Mo 12. Aug 2013, 20:27
Wohnort: 74572 Gammesfeld

Re: Der AVR-/ARDUINO-Faden

Beitragvon Heaterman » Do 13. Jul 2017, 15:24

Das myAVR ProgTool ist manchmal zickig beim Erkennen von Chips. Oft hilft es, einfach mal in der Chipliste eine andere Chipvariante einzustellen und nach einem Ausleselauf wieder mit der richtigen Chipversion zu starten. Oder einen anderen Chip des gleichen Typs probieren, führt auch manchmal zum Erfolg.
Benutzeravatar
Heaterman
 
Beiträge: 2705
Registriert: Fr 28. Jun 2013, 10:11
Wohnort: Am Rand der Scheibe, 6 m unter NN

Re: Der AVR-/ARDUINO-Faden

Beitragvon Tizi » Do 13. Jul 2017, 15:28

hab ich schon probiert.
komisch: info Fenster wird Grün aber ohne Chip-Typ und Auslesen kommt rot...

weiss evtl. jemand wie ich es im Bascom testen kann? hatte da den Programmer schon mal am laufen aber weiss die einstellungen nimmer
Tizi
 
Beiträge: 464
Registriert: Mo 12. Aug 2013, 20:27
Wohnort: 74572 Gammesfeld

Re: Der AVR-/ARDUINO-Faden

Beitragvon ludwig » Di 18. Jul 2017, 02:00

Ich bin ja meistens jemand, der es mit Bob Pease hält: "My favourite programming language is: solder", aber ab und an kommt man halt doch nicht drumherum, irgendwas mit Digital zu machen. Ich möchte gerade meine selbst gebastelte Nixie Uhr testen. Dazu möchte ich eigentlich nur die Röhren dazu bringen, irgendetwas anzuzeigen.

Mein Setup sieht etwa so aus: ESP8266 (Modul ESP12e) treibt zwei HV5812, also Schieberegister mit 20 Ausgängen, die die Hochspannung der Nixies direkt schalten können. Beide Schieberegister hängen hintereinander. Der Datenpin ist die GPIO5, Der Clockpin ist die GPIO4 und dann gibt es noch den Latchpin, GPIO9.

Mittels der Funktion ShiftOut sollte man ja eigentlich in das Schieberegister Daten pumpen können. Die Funktion gestattet es auch explizit jeden digitalen Ausgang für die jeweiligen Signale zu verwenden, man ist also nicht auf das SPI Interface angewiesen. Ich war bei meinem Design natürlich dumm genug, nicht das SPI Interface für die Verbindung zum Schieberegister zu verwenden, sondern irgendwelche GPIO Pins.

Wenn ich also nun in meiner Funktion meine Pins definiere und den Code hochlade, passiert etwas interessantes: Der ESP macht meistens nichts und manchmal kotzt er die Daten aus dem SPI Interface, aber nicht aus den Pins, die ich vorher definiert habe.

Ich kann mir das gerade nicht erklären. Jemand eine Idee, was da schief gelaufen sein könnte?

Edit: Im Endeffekt habe ich den im obigen Link angegebenen Beispielcode verwendet und da meine Pinnummern angepasst. Das sollte ja erst mal reichen, um irgendwelche nicht näher definierten Ziffern auf den Röhren anzuzeigen.
Benutzeravatar
ludwig
 
Beiträge: 823
Registriert: So 11. Aug 2013, 16:46
Wohnort: Dresden JO61ua

Re: Der AVR-/ARDUINO-Faden

Beitragvon Sunset » Mi 19. Jul 2017, 23:57

Kannst Du mal Deinen Code posten bitte?!

Sind die Pin Mode gesetzt nachdem die Pins definiert sind?
Benutzeravatar
Sunset
 
Beiträge: 647
Registriert: Fr 6. Dez 2013, 15:19

Re: Der AVR-/ARDUINO-Faden

Beitragvon ludwig » Do 20. Jul 2017, 09:49

Code: Alles auswählen
 
 const int latchPin = 9;  //Pin connected to ST_CP(pin 12) of 74HC595
   const int clkPin = 4; //Pin connected to SH_CP(pin 11) of 74HC595
   const int dataPin = 5;  //Pin connected to DS(pin 14) of 74HC595
   
   void setup() {   
      pinMode(latchPin, OUTPUT);
      pinMode(clkPin, OUTPUT);
      pinMode(dataPin, OUTPUT);
      pinMode(10,OUTPUT);
      digitalWrite(10,LOW);
 
    }

void loop() {
  digitalWrite(latchPin,HIGH);
  shiftOut(dataPin, clkPin, MSBFIRST, 0xFFFFFFFFFA);
  digitalWrite(latchPin, LOW);
}


Das ist der Code mit dem ich testen wollte, ob das Teil überhaupt irgendwie mit dem Beinchen wackelt. Sollte nichts sinnvolles tun, sondern nur ein paar Daten in die Schiebegegister schieben.

Mittlerweile ist auf den esp aber ein micropython gewandert, da mir die Arduino IDE auf die Nerven ging. Ich versuche jetzt mein Glück mal mit Python.

Allerdings habe ich mittlerweile in den Untiefen des Internets gelesen, dass man die GPIO9 und GPIO10 gar nicht nutzen sollte, da der Flash an den gleichen Pins hängt und sich deswegen der Controller ständig aufhängt. Das könnte das komische Verhalten des Controllers erklären.

In der Dokumentation zu dem ESP12 Modul steht davon aber natürlich nichts :evil:
Benutzeravatar
ludwig
 
Beiträge: 823
Registriert: So 11. Aug 2013, 16:46
Wohnort: Dresden JO61ua

Re: Der AVR-/ARDUINO-Faden

Beitragvon bestfakeaccount » Do 20. Jul 2017, 13:39

Das mit den Pins GPIO9 und 10 kann ich bestätigen. Das sind die zusätzlichen Datenleitungen für den SPI Flash. Du kannst probieren diese zu nutzen, dafür müssen die dazugehörigen Pins am Flash auf Vcc gezogen werden und der Flash Mode auf QIO umgestellt. Durch den verringerten Durchsatz läuft dein Programm dementsprechend langsamer. Alle oberen Angaben beziehen sich auf das Modul ESP201 sollten aber für alle Module gelten.

In allen Fällen ist es natürlich einfacher den Pin umzulegen, hierzu vllt. noch die folgende Übersicht: http://www.esp8266.com/wiki/lib/exe/fetch.php?media=pin_functions.png
Ich würde ESP Module nur in good old C mit dem FreeRTOS Port (siehe https://github.com/SuperHouse/esp-open-rtos) programmieren.
bestfakeaccount
 
Beiträge: 3
Registriert: Mi 7. Jun 2017, 00:14

Re: Der AVR-/ARDUINO-Faden

Beitragvon Matt » Di 25. Jul 2017, 20:25

Sehr spezielle Frage:

2 umstände ist geschuldet: einer kann NUR 1200 Baud, daran kann ich nicht ändern, und andere kann ich nur bis runter auf 2400 Baud einstellen.

Ich habe AVR so geschrieben, dass der in Empfängsmodus in Baud 2400 läuft, nur wenn der AVR sendet möchtet, wird es auf Baud 1200 umgestellt..
aber da tut senden. (keine Aufhängen, nur eben mit andere Baudrate tut es nichts)
Geht wirklich Baud-Rate Umstellung per schreiben des UBRR0 Registers in mitte des Code eigentlich nicht, oder ?
Benutzeravatar
Matt
 
Beiträge: 1745
Registriert: So 24. Aug 2014, 21:22

Re: Der AVR-/ARDUINO-Faden

Beitragvon ange12lo » Mi 6. Sep 2017, 13:37

Ich hole mal diesen Post hoch um keinen neuen zu erstellen.

Ich beschäftige mich aktuell mit den Arduino Pro Mini und Drucksensoren welche circa drei Jahre im Batteriebetrieb laufen sollte.
Nun Aktuell habe ich die Schaltung und das Programm so konstruiert das die Werte einmal in der Stunde übertragen werden, der rest der Zeit legt sich der Arduino, I2C Sensor, und das sende Modul schlafen.
Der Aktuelle Standby Verbrauch liegt bei 42µA mit einer 3.3V Speisung. Im Betrieb gönnt sich die Schaltung 40mA für circa 1-1.5 Sekunden.
Nun meine dilemma. Die Schaltung sollte Batteriebetrieben möglichst lange Laufen. Der Arduino könnte ich auch noch bis 1.8v runter betreiben die I2C Geräte wollen aber von 3-3.3V sehen.

Soll ich nun einen sparsamen Step-Up suchen wie z.b dieser Hier? https://www.digikey.ch/products/de/power-supplies-board-mount/dc-dc-converters/922?k=%20R-78S
Oder Lieber einen Low-Drop Linearregler ala TPS78233.

Beim Linearregler bräuchte ich dann aber wiederum vier Batterien was das ganze dann wieder unhandlicher macht.

hat jemand einen besseren Vorschlag?
Oder kennt einer einen Schaltregler mit einem geringeren Eigenverbrauch als der oben verlinkte?
Finde es Schade 240µW im Schaltregler zu verbraten.
Benutzeravatar
ange12lo
 
Beiträge: 303
Registriert: Mo 12. Aug 2013, 22:22

Re: Der AVR-/ARDUINO-Faden

Beitragvon Anse » Mi 6. Sep 2017, 14:30

Normale Linearregler haben eine hohen Querstrom. Beim 87L05 sind es wenn ich mich richtig erinnere ca. 3,5mA.
Es gibt noch low quiescent current Regler. z.B. LM2936Z mit 15µA im Leerlauf.
Läuft der Arduino eigentlich auf 16MHz?
Anse
 
Beiträge: 848
Registriert: Mo 12. Aug 2013, 21:30
Wohnort: Bühl

Re: Der AVR-/ARDUINO-Faden

Beitragvon ange12lo » Mi 6. Sep 2017, 14:48

Anse hat geschrieben:Läuft der Arduino eigentlich auf 16MHz?

Es ist die 8MHz 3.3V Version.

Als Linearregler hätte ich die TPS78233 Version gewählt, Die hat einen eigenverbrauch ohne Last von 1,3µA.
Ich wollte jedoch vermeiden vier Batterien zu nutzen.
Benutzeravatar
ange12lo
 
Beiträge: 303
Registriert: Mo 12. Aug 2013, 22:22

Re: Der AVR-/ARDUINO-Faden

Beitragvon ferdimh » Mi 6. Sep 2017, 15:31

Das sollte doch einwandfrei mit einer Lithium-Ionen-Zelle gehen.
45µA (42+Regler) * 3 Jahre sind gerade mal 1,2Ah.
Da bleibt eine einzelne 18650 (neu, vollgeladen) sicher über deutlich über 3,5V.
Wenn es AA-Format sein muss, müsste man dann wohl zwei parallel nehmen.
Dass man einen Akku hier nicht sinnvoll als Akku nutzt, halte ich bei den Preisen für verschmerzbar.
Benutzeravatar
ferdimh
 
Beiträge: 5214
Registriert: Fr 16. Aug 2013, 15:19

Re: Der AVR-/ARDUINO-Faden

Beitragvon ange12lo » Mi 6. Sep 2017, 15:57

ich würde ansonst normale Lithium Batterien Kaufen im AA format mit 3.6V habe jedoch keine entladekurve dazu gefunden, wann ist eine Lithium Batterie (nicht Akku) den wirklich leer?
Benutzeravatar
ange12lo
 
Beiträge: 303
Registriert: Mo 12. Aug 2013, 22:22

Re: Der AVR-/ARDUINO-Faden

Beitragvon Bastelbruder » Mi 6. Sep 2017, 18:36

Eine Lithium-Primärzelle ist leer (unter 1%) wenn die angegebene Leerlaufspannung unterschritten wird.
Entweder 3,0 V oder 3,6 V.
Bastelbruder
 
Beiträge: 3846
Registriert: Mi 14. Aug 2013, 18:28
Wohnort: drunt' am Neckar - km142,7

Re: Der AVR-/ARDUINO-Faden

Beitragvon andreas6 » Mi 6. Sep 2017, 18:56

Per Spannungsmessung ist da kaum eine verlässliche Aussage zu bekommen. Bei Messen immer einen Lastwiderstand parallel schalten! An z.B. 100 Ohm zeigt sich sehr schnell der Unterschied zwischen benutzbar oder leer. Die leere Zelle hat fast die Nennspannung, aber einen hohen Innenwiderstand. Es gibt übrigens auch 1,5V-Li-Zellen, die fast am Ende der Kapazität unbelastet immer noch 1,7V zeigen.

MfG. Andreas
andreas6
 
Beiträge: 1697
Registriert: So 11. Aug 2013, 15:09

Re: Der AVR-/ARDUINO-Faden

Beitragvon ferdimh » Mi 6. Sep 2017, 23:10

Wenn du die Anwendung gelesen hättest, wäre dieser Text hinfällig.
Weder 50µA noch 50mA sind für eine 2,5A-Zelle eine Li-Ion-Zelle eine Last von einer Intensität, dass man den Spannungseinbruch berücksichtigen müsste.
Bei Primärzellen kann das anders aussehen (die sind möglicherweise nur für Speichererhaltung gedacht), ich würde aber keine Primärzelle verwenden (weil Akkus nicht schlechter, nicht teurer und besser verfügbar sind).
Eine Google-Bildersuche nach "Li-Ion Entladekurve" gibt einem auch massig Bilder, wie das aussieht...
Benutzeravatar
ferdimh
 
Beiträge: 5214
Registriert: Fr 16. Aug 2013, 15:19

Re: Der AVR-/ARDUINO-Faden

Beitragvon berlinerbaer » Do 7. Sep 2017, 00:11

Ansonsten kannst Du auch prismatische LiPo-Zellen aus dem Modellbaubereich nehmen.

5 Ah sind gar nicht mal so teuer:
https://hobbyking.com/de_de/turnigy-500 ... -cell.html

Vielleicht ist der Formfaktor fürs Gehäuse ja auch vorteilhafter.

Jedenfalls solltest Du damit Laufzeiten hinkriegen, bei denen dann die Akku-Kapazität wahrscheinlich nicht mehr der limitierende Faktor ist.
berlinerbaer
 
Beiträge: 184
Registriert: Di 22. Aug 2017, 05:19
Wohnort: Berlin

Re: Der AVR-/ARDUINO-Faden

Beitragvon andreas6 » Do 7. Sep 2017, 10:05

Bei Primärzellen kann das anders aussehen

Da sieht es definitiv anders aus. Nur auf Primärzellen bezog sich der Messhinweis.

MfG. Andreas
andreas6
 
Beiträge: 1697
Registriert: So 11. Aug 2013, 15:09

Re: Der AVR-/ARDUINO-Faden

Beitragvon Till » Do 28. Sep 2017, 21:31

Moin Moin in die Runde.

Ich habe aktuell folgendes Problem bei dem ich nicht so recht weiter komme
da mir aktuell noch ein wenig das Verständnis für die ganze Programmierung fehlt.

Ich habe eine serielle Schnittstelle auf der ein Arduino mithorchen soll, diese enthält Daten
welche eine Waage an eine Anzeige sendet.

Diese Daten habe ich auch so weit mit dem Oskar sichtbar machen können, sie werden als ASCII übertragen.
So sieht das dann aus wenn einfach nur das Gewicht dort steht:

Bild->zoom


Es wird immer ein Byte übertragen, welches dann von CR abgeschlossen wird.
Jetzt soll der Arduino sobald folgendes auf der Schnittstelle empfangen wird einen Ausgang setzen:
Bild->zoom

Die abgebildeten Daten werden regelmäßig im Abstand von ca. 500-700ms gesendet,
Das W.OK steht dann auch etwa für 5 Sekunden dort.
Ansonsten kann es auch schon mal vorkommen das Warte oder Error gesendet wird,
dies soll allerdings ignoriert werden.

Leider werde ich aus den Befehlen für die serielle Schnittstelle nicht so richtig schlau,
vor allem nicht mit den verschiedenen Datentypen und dem Buffer.

Kann mir da von euch jemand ein bisschen Starthilfe geben?

Gruß Till.
Till
 
Beiträge: 698
Registriert: Di 13. Aug 2013, 16:00

Re: Der AVR-/ARDUINO-Faden

Beitragvon Till » Sa 30. Sep 2017, 03:05

.
Till
 
Beiträge: 698
Registriert: Di 13. Aug 2013, 16:00

Re: Der AVR-/ARDUINO-Faden

Beitragvon ange12lo » Mo 2. Okt 2017, 08:01

Bin nun seit einiger Zeit am entwickeln einer Schaltung die extrem Energie sparend ist.
Nun ich messe mehrmals pro stunde einen Wert über einen I2c Sensor, dann legt sich der Mega wieder schlaffen.
Aktuell läuft der I2c Sensor direkt am Mega und das ohne Pullup Wiedererstände.
Da die Messung mehrere Sekunden dauert und das mehrmals pro Stunde, wird mein Stromverbrauch durch die Pullup Wiederstände erheblich gesteigert.
Habe in diversen Foren gelesen das mindestens 2mA und noch besser 3mA fliessen sollte.
Das liegt aber bei meiner Anwendung mit einer AA Batterie und mindestens drei Jahre Laufzeit nicht drin.
Wer kann mir eine alternative nennen, oder was sind die Risiken wenn der Strom durch die Pullups um einiges kleiner ist?
Benutzeravatar
ange12lo
 
Beiträge: 303
Registriert: Mo 12. Aug 2013, 22:22

Re: Der AVR-/ARDUINO-Faden

Beitragvon Sir_Death » Mo 2. Okt 2017, 11:46

na wenn es jetzt ohne externe Pullups funktioniert, hast du wahrschienich die internen aktiviert. Warum willst du dann noch extra externe setzen? - Wer verzapft solchen Blödsinn?

EDIT: Risiko bei kleinen Pullups: Störanfälliger gegen Einstreuungen. Auf Platinen verwende ich - wo notwendig - üblicherweise (je nach Lagerstand) 10-20k an 5V --> ergibt zwischen 250 und 500µA - bisher keine Probleme.
Sir_Death
 
Beiträge: 1086
Registriert: Mo 11. Mai 2015, 22:36
Wohnort: südlich von Wien

Re: Der AVR-/ARDUINO-Faden

Beitragvon Matt » Mo 2. Okt 2017, 11:54

I²C Abschlusswiderstand ist üblichweise 4,7k , aber höhere Werte ist kein Problem, nur wenn du Geschwindigkeit davon verlangsamert (denn es ist Open Collector_Schaltung, da begrenzt Pullup ihre Anstiegsgeschwindigkeit.)

Prüfmal, ob Sensor auch mit kleinere Spannung klarkommt. (es gibt welcheres I²C Device der mit 2,7V läuft, spezifizert ! (AD7417 ))
Benutzeravatar
Matt
 
Beiträge: 1745
Registriert: So 24. Aug 2014, 21:22

Re: Der AVR-/ARDUINO-Faden

Beitragvon Weisskeinen » Mo 2. Okt 2017, 16:31

Wenn es denn schon externe Pull-up-Widerstände sein müssten, dann kann man die auch schaltbar machen. Besser für's Stromsparen wäre allerdings, die Messzeit zu verkürzen...
Benutzeravatar
Weisskeinen
 
Beiträge: 1811
Registriert: Di 27. Aug 2013, 16:19

Re: Der AVR-/ARDUINO-Faden

Beitragvon Sir_Death » Di 3. Okt 2017, 21:38

Neues Thema zum Arduino: - Just for Information

Eigentlich würde ich es fast in Ärgernis der Woche einstellen, aber lieber hier, dann kann man das vielleicht mal finden / nachlesen.

Wie vor einigen Wochen im "fertiggestellte Projekte" berichtet, habe ich ja eine Modellbahnanlage gebaut, wo 10 Arduino Mega miteinander reden müssen, da ich soviele Portpins brauche.
Die Erkennung, wo sich gerade ein Zug befindet, funktioniert über eine in den Massepfad eingeschliffene Diode, an der der Mega mit seinen Analogpins die Spannung misst.
Leider litt diese Erkennung unter sporadischen ausfällen, bzw. Erkennungen von Zügen, wo keine waren.
Ärgernis der Woche deshalb, da ich inzwischen ca. 30-40 Stunden mit der Fehlersuche verbracht habe.

Fehlerursache war folgendes:
1.) damit die Diode sauber auf Masse liegt, wenn kein Zug da ist, gibt es parallel zur Diode einen hochohmigen Widerstand (100k) gegen Masse, sowie einen 100k als Überbrückung über den MOSFET. Deshalb so hochohmig, damit die Bahn mit der Messspannung sicher nicht losfährt.
2.) Habe ich vor Urzeiten mal gelernt, meine Programme nach dem "EVA"-Modell zu schreiben. (EVA = Eingabe Verarbeitung Ausgabe) sprich schön hintereinander, nicht durcheinander - sonst tut man sich meist beim erweitern des Programms sehr schwer.
3.) Deshalb stehen als erstes die "digitalRead" schön nacheinander, und dann die "analogRead" eins nach dem anderen.

Und dann sind die analog eingelesenen Werte nur noch Mist.
Ursache ist, dass der Mega - soweit ich das verstanden habe - zwischen den analogen Portpins den S/H-Kondensator (Sample and Hold) herumschaltet. Wenn dieser - so wie hier - aus einer hochohmigen Quelle gespeist wird, ist die erste Messung einfach Mist.

Abhilfe: entweder vor jeder analogen Messung ein "delay(1);" oder einfach das gleiche "analogRead" 2 x hintereinander ausführen. Schon geht der Mist.
Details auch nachzulesen hier: https://forum.arduino.cc/index.php?topic=69675.0

Ich hoffe, ich kann jemandem damit ein paar Stunden Fehlersuche ersparen.
Sir_Death
 
Beiträge: 1086
Registriert: Mo 11. Mai 2015, 22:36
Wohnort: südlich von Wien

VorherigeNächste

Zurück zu Allgemeine Diskussion

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 14 Gäste

span