Hallo
Ich steh jetzt vor einem Rätsel. Bei der Schaltung sind wie man sehen
kann alle Pins belegt und im Programm sind daher auch alle mit
Funktionen belegt.
Im Grunde möchte ich wissen, ob es möglich ist den Prozessor (ATTiny84)
nach dem erstmaligen Programmieren wieder zu flashen und so ein anderes
Programm wieder rauf kopieren zu können.
mfg
Coffeejunky
ja, warum nicht?
Zum Überschreiben wird /Reset gezogen, dadurch ist die sonst übliche
Funktion aller Pins stillgelegt. Daß alle Beinchen normalerweise benutzt
werden, verhindert also nicht das Überschreiben mit einem neuen
Programm.
Alle LEDs falsch rum. 7805 ohne 100n Kondis geht gar nicht.
Die LED am Reset Pin wird, selbst wenn sie richtig rum
drin sitzt, dafür sorgen das der ATiny nicht losläuft.
Wenn der Reset Pin auf Ausgang für die LED programmiert
wird, dann geht ISP nicht mehr. Aus die Maus;)
Klaus Wachtler schrieb:> ja, warum nicht?>> Zum Überschreiben wird /Reset gezogen, dadurch ist die sonst übliche> Funktion aller Pins stillgelegt. Daß alle Beinchen normalerweise benutzt> werden, verhindert also nicht das Überschreiben mit einem neuen> Programm.
Falsch. Wird der Resetpin außer Kraft gesetzt, wars das mit ISP. Und der
TS wird weder den Willen noch die Möglichkeit haben, per HV zu
programmieren. Sinniger wäre es, auf den Quarz zu verzichten oder die
Taster per ADC einzulesen.
Das erste was ich rausnehmen würde, ist der Spannungsteiler am +5V
Zweig. Der im 9V Zweig ist die Batterieüberwachung, soweit klar. Aber
der Sinn der Überwachung des 5V Zweiges erschliesst sich mir nicht
wirklich. Wozu soll der gut sein? Solange die 9V (Batterie?) da sind,
hast du auch 5V. Und wenn die Batteriespannung anfängt abzufallen merkst
du das im 9V Zweig bis eine Grenze unterschritten wird, an der der 7805
keine 5V mehr produzieren kann. Diese Grenze ist aber bekannt bzw. kann
ausgemessen werden und mit den 9V in Beziehung gesetzt werden. Ergo:
Dieser ADC liefert mir keine Information, die ich nicht auch anders
kriegen könnte -> weg damit -> Pin frei für die LED.
erstmals danke für die infos :D
1) auf den Quarz verzichten ist leider für mich nicht möglich da es für
das projekt sehr wichtig ist zeit und frequenz genau zu arbeiten ...
daher der Quarz
2) bei dem 9V Spannungsteiler ... teile ich die Spannung auf 4,5V runter
und mit dem 5V Spannungsteiler erreiche ich eine konstante ref-Spannung
für den Komperator
>S2.1 und S2.2 dürfen zum programmieren nicht geschlossen sein.
das könnte man durch SMD Jumper lösen welche man nach dem programmieren
verbindet
und zusammenfassend muss ich um das programmier problem zu lösen den
resetpin frei bekommen und die MISO MOSI SCK leitungen beim
programmieren durch schalter / Jumper ... von der schaltung nehmen
Coffeejunky schrieb:> und zusammenfassend muss ich um das programmier problem zu lösen den> resetpin frei bekommen und die MISO MOSI SCK leitungen beim> programmieren durch schalter / Jumper ... von der schaltung nehmen
Wenn du die Taster nach GND schalten lässt und dafür die internen Pullup
Widerstände nimmst, brauchst du keine externen Pulldown mehr und somit
sind dann auch die MISO/MOSI/SCK nicht mehr beeinträchtigt (obwohl sie
das bei 300k auch so nicht gewesen wären, macht aber nix: die Pulldown
braucht kein Mensch)
Das behebt das Reset Problem noch nicht, aber irgendwie musst du einen
Pin freikriegen. Die Sache mit dem Komperator überzeugt mich nicht
wirklich. Eine gemessene SPannung kann ich auch im Programm mit einem
fixen Wert vergleichen. Dazu braucht es keinen Komperator (oder hat der
Tiny keinen vollwertigen ADC?)
Wieso die 4,5V für den Komparator extern erzeugen?
Die interne Refspannung des Kontrollers verwenden: die ist zwar kleiner,
aber da kann man die zu prüfende Spannung entsprechend herunterteilen.
Wozu die LED am Reset-Anschluss? Die zeigt höchstens das proggen an, und
das macht auch das Programmiergerät bzw. die Software dazu.
Die Gruppe mit 4 Schaltern lässt sich mit Dioden zu einer Matrix
schalten, die nur zwei Leitungen benötigt.
Oder, wenn die vier Schalter nicht an 5V liegen sondern mit einer
Widerstandskette verbunden sind, lässt sich über eine analog-Messung die
Schaltereinstellung ermitteln. Dann reicht ein einziger (analog-)
Eingang für die vier Schalter.
also ich hab jetzt mein problem gelöst ... und zwar hab ich jetzt den 5V
Spannungsteiler entfernt ... dafür teil ich die 9V auf ca 1V runter und
lasse eine AD-Wandlung laufen mit der internen 1,1V Ref-Spannung
Bin auf eine Andere Möglichkeit auch noch gekommen. Denn im Grunde
bewirkt der Externe Interrupt nur das erneute Starten der
Frequenzgeneration nach 20 Minuten ... daher hätte ich auch die
Möglichkeit gehabt diesen zu entfernen und statt desen einen Reset des
gesamten Programms durchzuführen
Somit bekomme ich den Reset-Pin frei bzw. könnte ihn als Start statt dem
Externen Interrupt verwenden
>Die Gruppe mit 4 Schaltern lässt sich mit Dioden zu einer Matrix>schalten, die nur zwei Leitungen benötigt.
Kanns mir vorstellen, dass es die Möglichkeit gibt eine Matrixschaltung
zu erstellen. Leider ist mir nicht ganz klar wie diese aussieht.
>Oder, wenn die vier Schalter nicht an 5V liegen sondern mit einer>Widerstandskette verbunden sind, lässt sich über eine analog-Messung die>Schaltereinstellung ermitteln. Dann reicht ein einziger (analog-)>Eingang für die vier Schalter.
Danke für den Tipp mit der analogen Auswertung. Es ist wirklich eine
gute Alternative wenn man noch weniger Pins verbrauchen möchte.
Matrix: da hatte ich so etwas wie Charlieplexing im Hinterkopf, zusammen
mit der Vorstellung abwechselnd die pins als Ausgang bzw. Eingang zu
schalten, auch noch mit wechselnder Polung, als 5V und Gnd. Nachdem ich
mir das genauer überlegt habe, bin ich jetzt auf dem Punkt, dass das mit
der Matrix ein Schnellschuss (in den Ofen) war.
Das mit der analogen Auswertung der Tasten, diese an Widerständen, geht
aber durchaus. Nur muss man da mit den Widerstandswerten etwas
jonglieren, dass die (max)16 möglichen Schaltfälle spannungsmäßig gut
verteilt sind.
Hier eine Skizze, wie ich mir das vorstelle.
Man müsste da noch einmal mit einer Simulation drübergehen und alle 16
mögliche Schalterstellungen durchprobieren.
Eventuell könnte man dann r5,r6 durch einen einzelnen pulldown oder
pullup-Widerstand ersetzen.
hier mein Vorschlag:
- R1 weglassen -> internen Pull-Up verwenden
- R5, R6, R7, R10 weglassen und S1-4 gegen Masse schalten -> internen
Pull-Up verwenden
- V1+R3 an PA4 und S2 an PA1
- Lautsprecher-Schaltung an PA6(->Timer1) und S1 an PA7
- Kondensatoren an den Linearregler
Dann hängt der ISP am AVR, einer LED und 2 Transistoren, das sollte er
verkraften.