An einem Atmega32 der mit 16MHz läuft habe ich an Port B 4 Stück Dreh-encoder angeschlossen. DDRB = 0x00; // rotary inputs PORTB = 0xFF; // enable pullups Wenn keiner daran dreht, dann verhalten sich diese wie offene Taster, also ca. 20cm Kabel. Wegen diesen 20cm Kabel geht jetzt die ISP Programmierung auf den Leitungen PB5-7 nicht mehr: avrdude: Device signature = 0x000000 Wenn ich den Stecker mit dem Kabel zu den Dreh-encodern entferne, dann geht's wieder. Kann ich das irgendwie entstören, so dass ich den Stecker mit dem Kabel zu den Dreh-encodern dran lassen kann ?
Paul H. schrieb: > Wenn keiner daran dreht, dann verhalten sich diese wie offene Taster, > also ca. 20cm Kabel. Sicher? Gewöhnliche Encoder mit AB-Signal verbinden auch wenn keiner Dreht je nach Stellung einen oder beide Signalausgänge mit dem Gemeinsamen Anschluss. Ansonsten können die 20cm Kabel auch stören. Einfach mal nur mit dem Kabel probieren, und den Encoder abklemmen.
Paul H. schrieb: > Wenn keiner daran dreht, dann verhalten sich diese wie offene Taster Wenn dem so wäre, dürften sie die Programmierung nicht behindern. Was sagt denn das Datenplatt der Drehenkoder dazu?
Ich erlebe Ähnliches bei dem Tiny10, aber da habe ich die als Ausgang und das Programmieren funktioniert auch nur mit getrennter Peripherie. In einigen Atmel Dokumenten, so auch doc8169.pdf, weisen die auf Probleme beim Programmieren hin, auch auf zu verwendende Kapazitäten, aber sie schreiben auch, das betrifft jetzt aber speziell PDI beim Xmega, dass man die Pullups und Kapazitäten trennen soll, während des Programmierens. Vielleicht ist das ein generelles Problem. Werde mal verschiedene Varianten bei dem ATTiny10 ausprobieren und dann schreib ich das, wenn gewünscht.
Hi
>Wenn keiner daran dreht, dann verhalten sich diese wie offene Taster,
Wenn es mechanische Encoder sind, dann verhalten sie sich wie Schalter,
nicht wie Taster.
Die Lösung deines Problems ist in der AppNote AVR042 beschrieben.
MfG Spess
Roland ... schrieb: > Sicher? Ja, hab ich gemessen. nur wenn die Position zwischen 2 Rasten befindet, dann schaltet er zum mittleren pin durch. so sieht das Bauteil aus: http://i.bosity.com/office_cache/259/14002056/220000011315191619_14002056_3_image.jpg Ich hab meine IOs nun etwas anders verteilt. Flashen funktioniert wieder – auch nachdem ich PB4(SS) und PB5(MOSI) wieder als Eingang für einen Rotary Encoder benutze. PB6 und PB7 habe ich jetzt frei gelassen - sie werden nur noch beim flashen verwendet. http://blog.cipworx.org/laserman/2013/12/29/home-cockpit-baubericht-teil-4/
Serienwiderstände 1kΩ in die entsprechenden ISP Leitungen rein.
Jump and feel good! Ein Jumper, der alternativ die Verbindung zum ISP oder zum Encoder herstellt und das Problem ist gegessen. In der Luxusversion: Schalter vorsehen. Es gibt auch Umschalter in DIP-switch-größe. Eine dauerhafte Lösung, sollte einschließen, dass der Encoder genau zwischen zwei Stellungen steht und Dir das Programmieren zur Freude macht.
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.