Hallo, es gibt zwar schon 2 Beiträge zu diesem Thema, sind aber uralt. Ich habe in Problem mit der genannten Kombination. Mein Test- Programm besteht nur aus einem Eingangs Taster an PB0 (Pullup ein), einer LED mit Vorwiderstand an PB4. Das Programm tut nicht, was es soll! Gehe ich mit der Betriebspannung auf 3,3 Volt runter (am Programmer einstellbar), funktioniert es. Bei Spannungsversorgung über das Board mit 5V-Programm fragt den Taster an PB0 nicht richtig ab- ein einfaches Blinkprogramm tut es aber. Kennt jemand dieses Problem? Gruß Reinhard
> Das Programm tut nicht, was es soll!
Das kann man gut sehen. In Zeile 3 fehlt das Vorzeichen.
Reinhard O. schrieb: > Kennt jemand dieses Problem? "Kennen" tue ich dieses Problem nicht (weil ich Schaltpläne und Datenblätter lesen kann), aber erklären kann ich es (aus genau denselbenen Gründen): Dein ISP-Programmer liegt (beim Tiny13A ziemlich zwingend) auf mindestens einem der in deiner Anwendung benutzten Pins (hier konkret: PB0/MISO). Solange das so ist, wird die Anwendung nicht vernünftig funktionieren. Ziehe also einfach den Programmer ab, während du die Funktion des Programms testest. Dieses (und ähnlich gelagerte) Probleme wird bei den kleinen Tinys auf Grund der geringen Pinzahl natürlich ziemlich häufig auftreten. Deswegen sind sie nicht sonderlich geeignet, um als Anfänger damit zu hantieren. Da nimmt man besser ein größeres Teil und läßt die ISP-Pins anwendungsseitig einfach erstmal in Ruhe. So lange, bis man die schaltungs- und programmiertechnischen Kompetenzen aufgebaut hat, die einem erlauben, ISP und andere Nutzungen derselben Pins erfolgreich miteinander zu verheiraten...
Entschuldigung- ich habe geglaubt, das "Pollin- Board" ist ein Klassiker unter den Testaufbauten. Es ist das Atmel Evaluation- Board Ves. 2.01. Ein ISP- Programmer (In- System Programmer) über den habe ich gelesen, daß man eben gerade im System programmieren kann. Es ist ein STK 500 kompatibler von Diamex (Piacryl- Gehäuse). Ich kann übrigens im beschaltetem Zustand - die 2 belegten PIN's habe ich in meiner Fragestellung benannt- programmieren. Das Programm sind nur eine IF- ELSE Pin Abfrage über PB0 und eine Ausgabe zu PIN PB4. Das "Pollin- Board", wenn ich die Bezeichnung verwenden darf, muß eine Eigenheit haben, welche ich aber nicht erkenne. Ich bin kein Freund von Steckboards. Aber auf dem Steckboard funktioniert das Ganze! Ausser wen einer der Drähte beim zufälligen Berühren abfällt... Das Programm, welches im Endeffekt drauf soll, habe ich auf einem Atmega 88 getestet. Damit ging es. Ich brauche doch für den Atiny 13 nur die Registerbezeichnungen umschreiben (Externer Interrupt, Timer0)?
:
Bearbeitet durch User
Wo hast du den Taster am Pollin Board denn angeschlossen? Und wie? Ziehst du beim Testen auch den ISP Programmer ab?
Den Taster habe ich an PIN B0 angeschlossen. Schliesser gegen Masse. Keinen Taster vom Board- die liegen an +5 V. PINB 0 hat einen internen PullUp. Für mich sieht das genau so aus wie mit dem Steckboard- wie gesagt- für mich! Ich teste verschiedene Varianten- 1. mit Spannungsversorgung aus ISP- Adaper, da bleibt er natürlich dran. Da gibt es hochfrequente Einstreuungen. Wenn ich in die Nähe eines Kabels komme, ändert sich die Helligkeit der LED etwas. 2. mit externer Spannungsversorgung- ohne Programmieradapter sauberste Lösung. Geht ohne Einstreu- Effekte.
:
Bearbeitet durch User
Der Interne Pull-Up Widerstand taugt höchstens was, wenn der Taster direkt neben dem µC sitzt und keine weiteren Leitungen dran hängen. Benutze einen externen Pull-Up Widerstand mit 2,2 bis 4,7k Ohm. Dann hast du weniger unerwünschte Signale auf der Leitung und außerdem wird der Taster länger halten (Stichwort "Wetting Current").
5 cm Kabel auf dem Steckboard. Der Taster soll später mal ein Kanal von einem Fernsteuerempfänger werden. Mit Externem Interrupt abfragen und den Timer 0 steuern ( geht schon so auf dem Atmega 88, der ist mir aber zu groß. Bin wieder auf dem Steckbrett. Habe einen externen 4,7 kOhm Widerstand als PullUp benutzt. Habe so auch die eigenartigen Kabel- Annäherungs-Effekte nicht mehr. Warum ist denn der interne Pullup nicht geeignet?
:
Bearbeitet durch User
> Warum ist denn der interne Pullup nicht geeignet?
Weil er zu hochohmig ist. Jede Leitung ist nebenbei auch eine Antenne.
Je geringer der Widerstand ist, umso stärker wird das empfangene Signal
bedämpft.
So richtig zuverlässig bekommst du es aber nur hin, indem du zusätzlich
kurze Störimpulse entweder per Software heraus filterst oder mit einer
weiteren R/C Kombination abblockst:
1 | Taster 100Ω |
2 | ____ |
3 | |---- ----[===]---+----------------------o zum µC PB0 |
4 | | |
5 | |---||-------------+----[===]---o VCC |
6 | 100nF 4,7kΩ |
Werde mit RC blocken. Warum der Attiny nicht Felge auf dem Polin Board arbeitet, ist noch eine offene Frage...
Weil auf dem Pollin Board einige Zentimeter Leiterbahn (=Antenne) hängen und dann auch noch das Flachkabel und der ISP Programmieradapter.
Gestern hatte ich den Kram erst mal in die Ecke gelegt. Das Board ist wohl nicht so die gelungene Konstruktion. Sehr lange, parallelgeführte Leiterzüge ohne Abschirmung. Abblockkondensatoren zu den IC-Fassungen über zu lange, dünne Leiterzüge. Und dann die Hochohmigkeit meines Schalteinganges, welche aber nur beim Testaufbau mit dem Taster zu tragen kommt. Werde einen Pullup auf eine freie Nachbarfassung stecken und noch mal testen. Und die Taster auf dem Board so verschalten, daß sie gegen Masse schließen. Und Hardware- entprellen.
> Das Board ist wohl nicht so die gelungene Konstruktion
Ja. Ist halt Pollin. Mein Board hatte damals einen 100µF (!) Kondensator
direkt am Reset Pin. Damit kamen (meine) alle drei ISP Adapter nicht
klar.
Flug52 schrieb: > Und die Taster auf dem Board so verschalten, daß > sie gegen Masse schließen. Haben die das nicht schon geändert? Ich meine mich zu erinnern, dass das nur bei den ersten Boards der Fall war. Pin auf Low über internen Transistor und dann hart kurz geschlossen nach VCC. Umgekehrt hat man bei den AVRs einen Pullup, so herum ist im Sinne des Erfinders. Ich hatte diese Platine auch mal und habe mir gleich beim Zusammenbauen 100nF an die Unterseite direkt an die Fassungen gelötet. Um die Taster herum könnte man eine VCC-Leitung suchen, aufkratzen und dann Pullups direkt an die Taster. 4k7-10k würde ich wählen.
Hallo, mein Board ist alt wie die Kohle! Hat auch noch eine serielle Schnittstelle mit 9 poligem Stecker. Zum Testen und flashen des Attiny's reicht es, habe ich mir gedacht. Mit dem aufgestecktem externen Pullup funktioniert es auch auf dem Pollin Board. Habe vor vielen Jahren mal eine Steuerung für meine Heizung programmiert. Dann lagen die Atmels wegen neuer Heizungssteuerung fehlender Anwendungen in der Ecke. Muß erst mal wieder reinkommen. Ein Bekannter wollte halt ein Blinklicht mit Ansteuerung über Servosignal für seinen Modellflieger. Habe leichtsinnig zugesagt...
:
Bearbeitet durch User
Reinhard O. schrieb: > Hat auch noch eine serielle > Schnittstelle mit 9 poligem Stecker. das hat das Board bis heute. Es geht um die Version, es wurden einige Fehler behoben/kleine Änderungen im Design durchgeführt. Aber wenn deines so alt ist, kann das gut sein, dass du eines hast, welches bei den Buttons einfach einen Kurzschluss verursacht. Ich hab sowas in meiner Dummheit mal mit einem tiny2313 gebaut, der lebt immernoch, aber ratsam ist das nicht. Zumal das Risiko gross ist, dass der Controller abstürzt, wenn die Spannung durch den Kurzschluss einbricht.
Reinhard O. schrieb: > Ein > Bekannter wollte halt ein Blinklicht mit Ansteuerung über Servosignal > für seinen Modellflieger. Habe leichtsinnig zugesagt... Die Blinkfrequenz soll sich ändern, oder einfach nur blinken, wenn an? Wenn Zweiteres: ServoSignal abzweigen -> Diode -> (evtl Transistor) -> R+Blink-LEDs Blink-LEDs gibt's auf die schnelle im Euroladen in irgendwelche Blinkfunzeln/LED-Kerzen. Ansonsten bei den üblichen Versänden (wahrscheinlich auch billiger als 1€/Lampe=LED).
Hallo, die Steuerung funktioniert ja schon mit einem Atmega88. Der Attiny13 hat ja nur einen 8 bit-Timer. Getestet habe ich das mit dem AT88, weil ich dort über USART Werte ausgeben und besser die Funktion prüfen kann. Jetzt soll das auf den kleinen AT13A. Natürlich gibt es im China Land fertige Lösungen. Hat der Bekannte auch, kommt aber mit der Parametrierung nicht klar. Bevor ich mich in diese nutzlose Gerätschaft einarbeite, wollte ich es halt auf den Attinys ausführen, welche ich noch herumliegen habe...
Reinhard O. schrieb: > Bevor ich mich in diese nutzlose Gerätschaft > einarbeite, wollte ich es halt auf den Attinys ausführen, welche ich > noch herumliegen habe... Das ist auf jeden Fall ein schönes, nicht allzugrosses, Projekt. Dabei kommt man auch irgendwann mal zum Punkt und gibt nicht auf, weil zuviel aufgehalst. Fallstricke gibt's aber einige. Ich habe AVRs schon ein paar Jahre nicht mehr angefasst und vor kurzem an der Transistortester-Software etwas machen wollen, das dauerte zwei Abende, bis ich mal soweit war. Die Änderung war dann in ~15min erledigt.
So, jetzt funktioniert Alles, wie gewollt. Das Board etwas modifiziert (Taster gegen Masse, IC Spannung abgeblockt). Es hat etwas gedauert, bis ich durch die Beschreibung des Attiny13 durchgeblickt habe. Habe zu spät erkannt, daß ein externer Interrupt eben nicht gleich PinChange Interrupt ist. Obwohl die Registerbeschreibung fließend ineinander übergeht und der Pin auch extern ist. Zwischendurch auf einen ATtiny45 gewechselt. Dann aber wieder mit dem AT13. Die schwebten schon kurz über der Mülltonne! Mit den passenden Registern klappt es natürlich. Die 8Bit Auflösung des Timer0 reicht, um mein Servosignal auszuwerten und damit ein Blinklicht zu schalten.
:
Bearbeitet durch User
Stefanus F. schrieb: > Ja. Ist halt Pollin. Mein Board hatte damals einen 100µF (!) Kondensator > direkt am Reset Pin. Häh? Keines der generischen Pollin-Evaluationboards, weder die V1.x noch die V2.x hatte jemals auch nur irgendeinen Kondensator am Reset-Signal, schon gar keinen von 100µF. Alles, was da als externe Resetbeschaltung vorhanden war, war ein Pullup nach Vcc (einheitlich für V1.x und V2.x als "R3" bezeichnet und mit 10kΩ angegeben. Und einen Transistor, der das Signal auf Low gezogen hat, wenn man das auf den Boards verbaute RS232-Interface benutzt hat. Für das aktuelle V2.x kann das jeder selbst bei Pollin nachsehen, für das olle 1.x lade ich mal das Manual hoch... > Damit kamen (meine) alle drei ISP Adapter nicht > klar. Eher wohl: Du kamst nicht mit der Realität klar. Was allerdings nicht sehr verwunderlich ist, da du schon die mitgelieferten Schaltpläne ganz offensichtlich nicht lesen konntest...
>> Ja. Ist halt Pollin. Mein Board hatte damals einen 100µF (!) Kondensator >> direkt am Reset Pin. > Eher wohl: Du kamst nicht mit der Realität klar Solche Beschimpfungen kannst Du Dir sparen, sie sind unpassend. Offensichtlich sind die Unterlagen, die Dir vorliegen unvollständig.
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.