Forum: Mikrocontroller und Digitale Elektronik Klingel macht was sie will. Attiny 24 und GCC


von Jürgen (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

kleine Projektbeschreibung:

2 Türgongs (Spule mit Kern der an Klangplatten donnert. Im Schaltplan 
als L1 und L2 dargestellt)
2 Taster
1 Attiny24 (Takt 8Mhz intern)
Jumper K1 zum einstellen der Zeit.
T1 soll ein Klingeltrafo darstellen.

Taster S2 an Pin A7 wird gedrückt und Gong an B1 soll einmal klingeln.
Die Zeit, die an K1 gejumpert wurde fängt an zu laufen. Ist diese 
abgelaufen soll Gong an B0 zwei mal klingeln. Wird der Taster S1 
gedrückt soll die Zeit unterbrochen sein und Gong an B0 nicht läuten. 
Befindet sich der Controller nicht in der Zeit soll die Taste S1 direkt 
Gong an B0 zwei mal läuten lassen.

Ich hoffe ihr versteht was ich vorhabe. Sonnst einfach nochmal Fragen.

Das Problem:
Sporadisch kommt es vor das Gong an B0 nur einmal gongt?

Sieht so aus wie wenn sich der Controller resetet oder die 
Spannungsversorgung einbricht.

Könnt Ihr mir helfen?
Habe ich Irgendwo vergessen eine Spitze einer Spule abzufangen? Oder die 
delays falsch dimensioniert? Was könnte es noch sein?

Danke für eure Hilfe.
Guten Rutsch ins neue Jahr

Gruß Jürgen

von Jürgen (Gast)


Angehängte Dateien:

Lesenswert?

Entschuldigung, das war das falsche Bild.
Kann ein Admin dies bitte korrigieren?

Hier das richtige.

von Gerd (Gast)


Lesenswert?

Jürgen schrieb:
> Sieht so aus wie wenn sich der Controller resetet oder die
> Spannungsversorgung einbricht.

Ob sich der Controller resettet, kannst du mit einer LED am Portpin 
prüfen, die du nach einem Reset für eine Sekunde ansteuerst. Durchläuft 
der Controller nun tatsächlich nocheinmal einen Reset, siehst du das an 
der aufleuchtenden LED.

Den Einbruch in der Spannungsversorgung kann man am einfachsten mit dem 
Oszilloskop sichtbar machen.

Was sonst so in deiner Software abläuft, kann hier so niemand wissen.

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

und wo ist die reset beschaltung?

floatet der eventuell?

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

PB3(Reset) sollte über einen externen Pullupp auf Plus gezogen und mit 
einem c(10µF)beruhigt werden.

von spess53 (Gast)


Lesenswert?

Hi

>und wo ist die reset beschaltung?
>floatet der eventuell?

Mit einem internen Pull-Up?

MfG Spess

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

Vielleicht wenn man ihn einschaltet, aber ich weiß nicht, ob das 
überhaupt funktioniert, wenn der Reset-Pin nicht deaktiviert ist. Ich 
beschalte ihn immer extern und gut ist.

Zitat aus dem Programm:
1
//Ein - Ausgänge Definieren
2
  DDRB |= (1 << DDB1)|(1 << DDB0); //Pin B1 als Ausgang definieren (Klingel Lager),Pin B0 als Ausgang definieren (Klingel oben)
3
  PORTB |= (1<<PB2); //Pin B2 (Schalter innen) Pull-Up Wiederstand aktivieren
4
  PORTA |= (1<<PA0) | (1<<PA1)|(1<<PA2)|(1<<PA3)|(1<<PA4)|(1<<PA5)|(1<<PA6)|(1<<PA7); //Dippschalter für die Zeiteinstellung Pull-Up Wiederstand; A7 (Taster außen); aktivieren

Da steht nichts von Pullup PB3 on ?

von Kevin (Gast)


Lesenswert?

Wieviel Volt liefert der Trafo?

von spess53 (Gast)


Lesenswert?

Hi

>da steht nichts von Pullup PB3 on

Solange das Reset-Pin nicht als IO-Pin definiert ist (RSTDISBL-Fuse 
nicht gesetzt) gilt das Datenblatt:

Reset Pull-up Resistor  30...60 kΩ.

MfG Spess

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

spess53 schrieb:
> Hi
>
>>da steht nichts von Pullup PB3 on
>
> Solange das Reset-Pin nicht als IO-Pin definiert ist (RSTDISBL-Fuse
> nicht gesetzt) gilt das Datenblatt:
>
> Reset Pull-up Resistor  30...60 kΩ.
>
> MfG Spess

aha  seite 66 ...
1
• Port B, Bit 3 – RESET/dW/PCINT11
2
• RESET: External Reset input is active low and enabled by unprogramming (“1”) the
3
RSTDISBL Fuse. Pullup is activated and output driver and digital input are deactivated when
4
the pin is used as the RESET pin.

gilt das für alle tinys?

von Rudof Reindeer (Gast)


Lesenswert?

Winfried J. schrieb:
> gilt das für alle tinys?
Das verraten dir alle Datenblätter der ATtinies.

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

Rudof Reindeer schrieb:
> Winfried J. schrieb:
>> gilt das für alle tinys?
> Das verraten dir alle Datenblätter der ATtinies.

Ich verneige mich vor Eurer Weisheit.
Namaste

tststs kopfschüttel

von spess53 (Gast)


Lesenswert?

Hi

>gilt das für alle tinys?

Gilt für alle AVRs, denen das RESET-Pin zum IO-Pin konfiguriert werden 
kann.

MfG Spess

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

@spess

Danke für die klare Antwort das macht einiges einfacher.

@Jürgen
Dann Tippe ich mal fängt er über sich eine lange Klingelleitung allerlei 
ein.  Lt. Plan ist da nicht mal ein C oder etwas ähnliches. Ob der 
interne Pullup das alles schluckt was da kommt? Da würde ich mal drüber 
nachdenken.

Aber eine LED(mit R) und eine ein paar Zeilen Debugcode sollten Klarheit 
schaffen, PA6 ist ja noch frei.

Namaste

von Jürgen (Gast)


Lesenswert?

Danke für die vielen Antworten.
Ich wuste hier bekomme ich Hilfe.

Gerd schrieb:
> Ob sich der Controller resettet, kannst du mit einer LED am Portpin
> prüfen, die du nach einem Reset für eine Sekunde ansteuerst. Durchläuft
> der Controller nun tatsächlich nocheinmal einen Reset, siehst du das an
> der aufleuchtenden LED.

Werde ich nachher anbauen und ausprobieren.

spess53 schrieb:
> Mit einem internen Pull-Up?

Verstehe ich das richtig, ich soll den Pull-Up aktivieren.
Quasie so:
1
  PORTB |= (1<<PB2)|(1<<PB3); //Pin B2 (Schalter innen)und Reset PB3 Pull-Up Wiederstand aktivieren

Kevin schrieb:
> Wieviel Volt liefert der Trafo?

~8Volt

Winfried J. schrieb:
> Lt. Plan ist da nicht mal ein C oder etwas ähnliches. Ob der
> interne Pullup das alles schluckt was da kommt? Da würde ich mal drüber
> nachdenken.

Hilf mir ein wennig auf die Sprünge. Meine Ausbildung ist etwas her.
Wo und wieviel C muss ich deiner Meinung nach einbauen?

von MaWin (Gast)


Lesenswert?

Winfried J. schrieb:
> mit einem c(10µF)
kann mir mal jemand die Quelle zu dieser Angabe nennen?
Neues Jahr, alte Sch.... Immer das selbe mit euch.

von InderRuheliegtdieKraft (Gast)


Lesenswert?

MaWin schrieb:
>> mit einem c(10µF)
> kann mir mal jemand die Quelle zu dieser Angabe nennen?
> Neues Jahr, alte Sch.... Immer das selbe mit euch.

Ja die Quelle wüsste ich auch gerne..

Aber MaWin, nimm dir doch mal fürs neue Jahr vor etwas entspannter und 
freundlicher hier aufzutreten ;-)
Wünsche euch allen einen guten Start in 2012!

von Hubert G. (hubertg)


Lesenswert?

Mir fehlt auch noch ein 100n zwischen VCC und GND direkt am Tiny. Der C3 
sollte ja direkt am 7805 sein.
Resetbeschaltung wurde ja schon erwähnt, 10k und 100n sollten reichen.
Je nsch Strom den die Gong ziehen könnte man noch einen Snubber, 10n / 
10Ohm, zu den Kontakten schalten.
Zusätzliche PullUp an die Tastenleitungen, 1k, wären auch nicht 
schlecht.
Eine Fehlplanung ist meiner Ansicht nach auch, die Relais mit VCC zu 
betreiben, belasten unnötig den Spannungsregler und sorgen für 
Störungen.

von Rolf M. (rmagnus)


Lesenswert?

Es gibt da noch die Appnote von Atmel:

http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf

Da steht allerdings nichts zur Kapazität dieses Kondensators. Lediglich 
folgendes wird dazu erklärt:

************************************************************************
To protect the RESET line further from noise, it is an advantage to 
connect a capacitor from the RESET pin to ground. This is not directly 
required
since the AVR internally have a low-pass filter to eliminate spikes and
noise that could cause reset.
Applying an extra capacitor is thus an additional protection. However, 
note
that this capacitor cannot be present if debugWIRE or PDI is used.
************************************************************************

Aber 10µF erscheinen mir übertrieben.

von Simon K. (simon) Benutzerseite


Lesenswert?

10µF sind zu viel. Das ist wohl aus der Zeit, wo Controller im 
Allgemeinen noch keine Startup-Delays eingebaut hatten (Um auf das 
korrekte Schwingen des Quarzes zu warten). Aber das geht beim AVR ja 
intern. Demnach gibt es nur noch den Grund mit Noise, wie Rolf Magnus 
schon zitiert hat. Hier reichen aber auch wenige Nanofarad.
Ist m.M. auch nur in stark verseuchter Umgebung und bei langer 
RESET-Leitung nötig.

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

Die 10µ sind bei mir Gewohnheit und kein Beinbruch(sorry). Seit 6502 
haben sie mir noch jeden Reset sauber gehalten und 10k-10µ sind nun kein 
Drama wenn es nicht schneller gehen muss, oder die Klingel nicht per 
Reset starten soll wie meine daheim und auch da habe ich 10-10 drin 
drin.

Die Tasterleitung über einen Tiefpass zu ziehen soll auch nur Störungen 
fernhalten welche den internen 30k Pullup leicht ausnocken könnten 
(Langdrahtantenne/Klingeltaszterleitung)

Ansonsten immer noch der selbe Tonfall bei den AllesBeserwissern?
Euch auch ein gutes neues Jahr, wie allen hier sonst auch.

Namaste

von Jürgen (Gast)


Lesenswert?

MaWin schrieb:
> Neues Jahr, alte Sch.... Immer das selbe mit euch.

Ich wollte es eigentlich auch das letzte Jahr fertig haben.

Gerd schrieb:
> Ob sich der Controller resettet, kannst du mit einer LED am Portpin
> prüfen, die du nach einem Reset für eine Sekunde ansteuerst. Durchläuft
> der Controller nun tatsächlich nocheinmal einen Reset, siehst du das an
> der aufleuchtenden LED.

Hab ich gemacht und siehe da er führt tatsächlich einen Reset durch.

Hubert G. schrieb:
> Resetbeschaltung wurde ja schon erwähnt, 10k und 100n sollten reichen.

Das probiere ich jetzt. Die 10k ist klar. Von Vcc auf PB3. Aber die 
100n, müßen die von PB3 auf GND oder auch auf Vcc? Ich denke auf GND,

Gerd schrieb:
> Den Einbruch in der Spannungsversorgung kann man am einfachsten mit dem
> Oszilloskop sichtbar machen.

Kann ich leider erst morgen prüfen. Habe hier kein Oszi

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

achja,

Klingeltaster an Reset ist zwar nicht meine Idee aber eine Gute, 
anschließend an den Job kann der µC ins Koma (Tiefschlaf) gelegt und per 
erneutetem Reset geweckt werden.

Namaste


Das Programm sieht dann so aus
1
reset
2
3
Was ist denn hier los?
4
5
Dipschalter auslesen. 
6
Uhr fragen wie spät es ist. 
7
8
Tabelle nachschauen wo solle es klingeln 
9
10
Ergebnis an  PortB legen 
11
12
Pulsen falls geplant oder Melodie / Ttakt abspielen
13
14
Gute Nacht

Namaste

von Simon K. (simon) Benutzerseite


Lesenswert?

Winfried J. schrieb:
> Die 10µ sind bei mir Gewohnheit und kein Beinbruch(sorry).
Super Argument! ;-)

> Seit 6502
Genau das Argument habe ich doch schon im Voraus widerlegt. Damals war 
das als Reset-Delay notwendig. Heute ist sowas im Chip integriert.

> haben sie mir noch jeden Reset sauber gehalten und 10k-10µ sind nun kein
> Drama wenn es nicht schneller gehen muss, oder die Klingel nicht per
> Reset starten soll wie meine daheim und auch da habe ich 10-10 drin
> drin.
Nunja, es ist in erster Linie unnötig. Je nach Programmer können die 
10µF auch fies sein, wenn die beim Eintritt in den Reste direkt auf 
Masse entladen werden müssen.
Bei DebugWire gibt es auch Probleme, wie man aus dem Zitat oben lesen 
kann.

Zum Thema kann ich nur sagen: Zeig ein Bild des Aufbaus. Das Problem 
könnte durch ungünstige Leitungsführung entstehen.

von Heinz (Gast)


Lesenswert?

> Aber MaWin, nimm dir doch mal fürs neue Jahr vor etwas entspannter und
> freundlicher hier aufzutreten ;-)

Er braucht nicht freundlicher zu sein, es reicht schon das Forum zu 
wechseln :)

von Kraftbrühe (Gast)


Lesenswert?

Hubert G. schrieb:
> Eine Fehlplanung ist meiner Ansicht nach auch, die Relais mit VCC zu
> betreiben, belasten unnötig den Spannungsregler und sorgen für
> Störungen.

Guter Punkt!

von Jürgen (Gast)


Lesenswert?

Hubert G. schrieb:
> Eine Fehlplanung ist meiner Ansicht nach auch, die Relais mit VCC zu
> betreiben, belasten unnötig den Spannungsregler und sorgen für
> Störungen.

Ich glaube Du hast recht. Der fehler tritt immer nur dan auf wenn die 
Gongs dran hängen. Ohne Gong höre ich die Relays klakern und die LED 
bleibt aus.Wie löse ich dieses Problem?

Die 100n möchte ich denoch reinbauen. Weis aber immernoch nicht wo hin?

von Hubert G. (hubertg)


Lesenswert?

Einmal 100n sollten zwischen VCC und GND so nahe wie möglich beim Tiny.
Wenn es ohne Gong funktioniert würde ich die Snubber testen.
Parallel zu den Relaiskontakten 10n und 10 Ohm in Serie.

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

na dann schauen wir noch mal isn spec
1
3.1 External RESET switch
2
3
If an external switch is connected to the RESET pin it is important to add a series resistance.  
4
Whenever the switch is pressed it will short the capacitor, the current through the switch can have high peak values.
5
 This will cause the switch to bounce and give steep spikes in 2-10ms periods until the capacitor is discharged.

10ms/10kohm= 0,000 001 As/V = 10µF

wenn du also den widerstand noch kleiner wählst wie im App note 330 Ohm
dan wird das C sogar noch größer.

ach ja die die Dauer der einfangbaren Spikes hängt von der Antennenlänge 
ab.

von spess53 (Gast)


Lesenswert?

Hi

Aus welcher Spec stammt denn dein Zitat? Auf jeden Fall nicht aus dem 
Datenblatt des ATTiny24.

Beim ATTiny24 lässt sich ein Resetdelay von 14CK + 64 ms einstellen. Da 
ist dein unsinnig großer Kondensator überflüssig. 100n reichen.

MfG Spess

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf

dort geht es um HW Maßnahmen für robustes Schaltungsdesign.

von Jürgen (Gast)


Lesenswert?

Bitte nicht streiten.!

Erst mall danke für die zahlreichen Antworten und Diskusionen.
Wir sind der Lösung recht na.

Ich habe das hier befolgt:

Hubert G. schrieb:
> Einmal 100n sollten zwischen VCC und GND so nahe wie möglich beim Tiny.

Der Gong der zwei mal gongt funktioniert jetz tadelos. Der Gong der ganz 
am anfangt und alle 10 Sekungen gongt zickt etwas rum. Ist aber genau 
der selbe. Löst einen Reset aus.

Ligt das immernoch am Reset Pin?

Ich habe hier einen Elko 10µF rumligen. Da ihr euch nicht einig werdet 
probier ichs einfach mall aus. Die Frage ist jetzt aber immer noch 
zwischen GND und PB3 oder Vcc und PB3?

von ich (Gast)


Lesenswert?


von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?


von Jürgen (Gast)


Lesenswert?

Somit zwischen PB3 und GND. Elko geht?

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

ja

von Jürgen (Gast)


Lesenswert?

Schluss für heut. Keine Lust mehr!!!

von Edi R. (edi_r)


Lesenswert?

Ohne mich in den Streit einmischen zu wollen, möchte ich doch auf einen 
Rechenfehler aufmerksam machen:

Winfried J. schrieb:
> 10ms/10kohm= 0,000 001 As/V = 10µF

Das ergibt doch 1 µF, oder?

von Gerd (Gast)


Lesenswert?

Jürgen schrieb:
> Der Gong der ganz
> am anfangt und alle 10 Sekungen gongt zickt etwas rum.

Offensichtlich sind da Entstörmaßnahmen an den Gongspulen nötig.

Wenn du morgen ein Oszilloskop zur Verfügung hast, schau mal nach, ob 
bei eingeschalteten Gongs die Spannung hinter dem Spannungsregler 
zusammenbricht, bzw. ob Überspannungsspitzen beim Abschalten der Gongs 
vor und hinter dem Regler zu sehen sind.

Vielleicht reicht es schon, die Gongspulen über einen niederohmigen 
Widerstand (4,7...10 Ohm) zu betreiben, damit diese die 
Versorgungsspannung nicht ganz so stark in die Knie zwingen.

Eventuell helfen auch Varistoren parallel zu den Gongspulen.

von ich (Gast)


Lesenswert?

Jürgen, schalte doch bitte auch noch eine Schutzdiode (mindestens 
1N4001) parallel zum 7805.

von Karl (Gast)


Lesenswert?

Aus der Praxis:
Die Relais ziehen ein wenig Strom. Deshalb ist es sicher kein Luxus, an 
Vcc noch einen 100uF Elko zu löten. C1 ist auch ein wenig "dünn". 470uF 
sind sicherlich besser. Eine Diode - wie schon gesagt - von Pin 3 nch 
Pin 1 von IC2 verlängert dessen Lebensdauer ;-) und ein (keramischer) 
0,1uF Kondensator direkt an Pin 1 und Pin 14 von IC1 wirkt manchmal 
Wunder...

Nun zum Reset-Problem: Er wird vermutlich durch einen Spannungseinbruch 
ausgelöst. Ganz besonders dann, wenn es sich bei Tr1 um einen 
handelsüblichen, kurzschlussfesten Klingeltrafo handelt. Der Gong zieht 
eine ganze Menge Strom!
Einfach mal den Relaiskontakt 3-4 brücken und die Spannung an Pin 1 des 
IC2 messen. Es müssen mindestens 8V sein. Wenn die Spule des Gong zu 
dampfen beginnt, bitte aufhören - lach.

Viel Glück
 

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.