Forum: Mikrocontroller und Digitale Elektronik Programmierung


von Coffeejunky (Gast)


Angehängte Dateien:

Lesenswert?

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

von Klaus W. (mfgkw)


Lesenswert?

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.

von skua (Gast)


Lesenswert?

S2.1 und S2.2 dürfen zum programmieren nicht geschlossen sein.

von holger (Gast)


Lesenswert?

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;)

von spess53 (Gast)


Lesenswert?

Hi

Und falls deine LEDs leuchten sollen, wäre es besser sie umzudrehen.

MfG Spess

von xcdark (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Klaus W. (mfgkw)


Lesenswert?

xcdark schrieb:
> Falsch. Wird der Resetpin außer Kraft gesetzt, wars das mit ISP.

stimmt, wenn er Reset per Fuse stilllegt, geht es nicht mehr.

von Coffeejunky (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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?)

von Peter R. (pnu)


Lesenswert?

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.

von Werner (Gast)


Lesenswert?

Peter R. schrieb:
> Die Gruppe mit 4 Schaltern lässt sich mit Dioden zu einer Matrix
> schalten, die nur zwei Leitungen benötigt.

wie geht denn das?

von Coffeejunky (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Peter R. (pnu)


Lesenswert?

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.

von Peter R. (pnu)


Angehängte Dateien:

Lesenswert?

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.

von ... (Gast)


Lesenswert?

Peter R. schrieb:
> Hier eine Skizze, wie ich mir das vorstelle.

Besser wären Taster mit Umschaltkontakt und ein R2R-Netzwerk.
http://de.wikipedia.org/wiki/R2R-Netzwerk

von Maik M. (myco)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.