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!
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.
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.
Ü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.
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.
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.
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.
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.
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!
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.
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.