Hallo! Ich habe ein Projekt das HW-mässig auf einem Arduino Pro Mini basiert - kann über die IDE mit den gleichen Anschlüssen programmiert werden (Schaltplan im Anhang). Modifikationen gegenüber dem Original-Pro Mini (https://www.arduino.cc/en/uploads/Main/Arduino-Pro-Mini-schematic.pdf): Spannungsversorgung ATmega über Dioden (D6, D7) B140HW-7 (https://www.tme.eu/ro/details/b140hw-7/diode-schottky-smd/diodes-incorporated/) und LED an PD5 statt PB5. Zusätzlich zwei Anschlüsse für TFT-Displays an SPI mit Pegelwandler inkl. geschaltete Hintergrundbeleuchtung (PD3), Schaltregler zur 5V-Speisung. D2...D5 sind MBR0540 und L1 hat 22uH. Problem: Firmware funktioniert soweit, wenn Speisung von Schaltregler erfolgt. FW sieht eine serielle Verbindung zur Parametrisierung vor, bei der der Schaltregler keine Spannung erhält. Durch die zusätzlichen Entkopplungsdioden (D6, D7) sollte das auch keine Problem sein - nur der ATmega wird gespiesen. Aber in diesem Modus resettet der ATmega sobald entweder ein Zugriff auf das Display (Zeile 84), oder auf den Transistor für die Hintergrundbeleuchtung (Q1) erfolgt (Zeile 92). Ich konnte das mit einem minimalisierten "Sketch" einkreisen, siehe Anhang. Mit dem Oszilloskop habe ich die Versorgungsspannung am ATmega kontrolliert soweit das ging. Einen sichtlichen Einbruch gibt es nicht. Ich habe einen Einbruch vermutet, was aber unlogisch ist. U4 (ein SN74LVC245A https://www.tme.eu/Document/17347b0da61751aef74cc0cdbad7ac12/SN74LVC245A.pdf) erlaubt Eingangsspannungen bis 5.5V selbst wenn er keine Speisung hat, so wie ich das DaBla verstehe. Auch der Zugriff auf Q1 mit LOW sollte keine Auswirkung haben, vor allem weil ja +5V nicht vorhanden sind. Warscheinlich bin ich völlig auf dem Holzweg, deswegen frage ich jetzt hier, ob jemand eine mögliche Erklärung sieht. Danke fürs Drüberschauen! Gruss Chregu
Die ist dafür da, dass wenn der Programmierer DTR/RTS hoch zieht am Anfang, dieser Pegelwechsel als einzelner Impuls übertragen wird um den Reset auszulösen. Das mache ich bei meinen ATTinys in etwa genauso. Es fehlen aber Widerstand und Diode. https://github.com/SpenceKonde/megaTinyCore/blob/master/megaavr/extras/Ref_Reset.md
:
Bearbeitet durch User
Christian M. schrieb: > erlaubt Eingangsspannungen bis 5.5V selbst wenn er keine Speisung hat eher nicht: "The inputs can accept voltages to 5.5 V at any valid VCC" valid wäre irgendwas zwischen 1.65 und 3.6 V
Ja, ok, ich habe mich auf: "VI Input voltage 0 5.5 0 5.5 0 5.5 V" bezogen. Ohne Einschränkungen der Versorgungsspannung. Gruss Chregu
Kann es sein, daß der 74 245 interne Klemmdioden hat, über die Du die 3,3V aus dem ATMega zu versorgen probierst und dadurch irgendwie ein Reset über das FT232-Modul oder so ausgelöst wird? Übrigens finde ich die Idee mit dem Reset-Kondensator nicht gut, der Reset-Eingang des AVR ist recht hochohmig, mit so einem Kondensator da dran reicht der kleinste Störungs-Spike, um einen Reset auszulösen.
Ben B. schrieb: > Übrigens finde ich die Idee mit dem Reset-Kondensator nicht gut, der > Reset-Eingang des AVR ist recht hochohmig, mit so einem Kondensator da > dran reicht der kleinste Störungs-Spike, um einen Reset auszulösen. Hallo, es gibt noch den 10k Pullup. Mir sind keine Probleme bekannt. Für ein Hobbyboard okay. Ist ja sicherlich nicht im Industrieeinsatz.
Mal spaßenshalber versucht, den Reset des AVR hart auf 5V zu legen, um diese Fehlerquelle auszuschließen? Oder der AVR hat doch ein Register, wo drinsteht was einen Reset ausgelöst hat. Angenommen das Programm crasht nicht, schreibt doch was kurzes, was das ausliest und in einen Blinkcode für eine LED oder so umsetzt, vielleicht findet man darin weitere Informationen. Ist doch schon wieder alles Rätselraten hier.
Ben B. schrieb: > den Reset des AVR hart auf 5V zu legen, um diese Fehlerquelle > auszuschließen? Noch nicht, aber DAS könnte die Lösung sein! Der 10k liegt ja auf +5V vom Schaltregler, der - tataaa - keine Spannung liefert. Die Spannung kommt wahrscheinlich von der Schottky-Diode, die auch in Sperrrichtung relativ viel Strom fliessen lässt. Ben B. schrieb: > finde ich die Idee mit dem Reset-Kondensator nicht gut Ich auch nicht, aber ist halt üblich bei Arduino... Gruss Chregu
> Noch nicht, aber DAS könnte die Lösung sein! Der 10k liegt ja auf > +5V vom Schaltregler, der - tataaa - keine Spannung liefert. Dann kann das nicht funktionieren wenn dieser Schaltregler nicht läuft. Der interne PullUp am RESET des AVR ist viel hochohmiger als 10k, ich glaube im Bereich von 30..50k oder noch mehr, dadurch wird der Anschluss durch den 10k (gegen die 0V am Schaltregler-Ausgang) sehr weit heruntergezogen. Vorsicht beim Brücken des Reset mit der AVR-Betriebsspannung falls der Schaltregler keine Rückwärtsspannung mag. Über den 10k könnte sich genug davon aufbauen, daß es für eine Beschädigung reicht wenn man Pech hat.
Das hat Kicad automatisch gemacht. Ich weiß, ein bisschen unübersichtlich, habe mich auch gewundert - und kontrolliert... Gruss Chregu
FYI, für den Kondensator AREF-GND würde ich 10nF statt 100nF nehmen. 10nF sind völlig ausreichend, und reduziert die für das Umschalten der AREF-Quelle nötige Zeit auf ein Zehntel. LG, Sebastian
Sebastian W. schrieb: > für den Kondensator AREF-GND würde ich 10nF statt 100nF nehmen. > 10nF sind völlig ausreichend Oh danke für den Tipp! Habe mal kurz durch das DaBla gescrollt, wo finde ich den entsprechenden Hinweis? Ich habe mich an der Schaltung von Arduino orientiert. Christian M. schrieb: > Ben B. schrieb: >> den Reset des AVR hart auf 5V zu legen, um diese Fehlerquelle >> auszuschließen? > > Noch nicht, aber DAS könnte die Lösung sein! Der 10k liegt ja auf +5V > vom Schaltregler, der - tataaa - keine Spannung liefert. Die Spannung > kommt wahrscheinlich von der Schottky-Diode, die auch in Sperrrichtung > relativ viel Strom fliessen lässt. Es war genau das! Habe das beim Prototypen mal gefädelt, jetzt funktioniert es! Vielen Dank! Gruss Chregu
Christian M. schrieb: > Oh danke für den Tipp! Habe mal kurz durch das DaBla gescrollt, wo finde > ich den entsprechenden Hinweis? Ich habe mich an der Schaltung von > Arduino orientiert. Hier wurde das Thema diskutiert: Beitrag "AVR AREF intern: 100n zu GND wirklich hilfreich?". LG, Sebastian
> Es war genau das! Habe das beim Prototypen mal gefädelt, > jetzt funktioniert es! Na gugg, freut mich! :) 100 oder 10 nF am AREF... das wird wohl nur relevant, wenn man tatsächlich zwischen mehreren Referenzspannungen umschalten muss und ich versuche sowas zu vermeiden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.