Guten Tag Zusammen, ich habe eine kurze Frage - vielleicht auch unnötig, aber ich verstehe es gerade nicht. Folgendes: Ich verwende einen Arduino Nano (nur die Hatdware aus bequemlichkeit, Klon aus Fernost) der über ein AVRISP mkII programmiert wird. Programmiere am Mac mit Visual Studio Code und avr-gcc. Also keine Arduino Software. Ich habe einen Drehgeber mit Taster angeschlossen. Interne Pullups des ATmega328p auf 1 gesetzt, mit Drehgeber und Taster verbunden dann nach GND geführt. Nun tut das ganze mit meiner Auswertung und Debouncing einwandfrei. Da ich in der Endausbaustufe etliches an IO‘s Belege, wollte ich die beiden Pins PB4 und PB5 hier mit nutzen. Also MOSI und MISO der SPI Schnittstelle auf A und B des Drehencoders legen. Preisfrage: Warum kann ich auf PB4 und PB5 die internen Pullups nicht aktivieren? Geht weder wenn ich das AVRISP mkII abstecke oder anstecke. Ich messe keine 5V am Eingang. Geht das nur wenn ich die SPI deaktiviere (SPIEN -> 1)? Viele Grüße Andreas
Andy Y. schrieb: > Warum kann ich auf PB4 und PB5 die internen Pullups nicht aktivieren? Weil du es falsch machst - nicht PB4 und PB5 sondern PB3 und PB4: MOSI ist PB3 und MISO ist PB4 und pull-up kann aktiviert werden. ATMEL sagt folgendes:
1 | • MISO/PCINT4 – Port B, Bit 4 |
2 | MISO: Master Data input, Slave Data output pin for SPI channel. When the SPI is enabled as a Master, |
3 | this pin is configured as an input regardless of the setting of DDB4. When the SPI is enabled as a Slave, the data direction of this pin is controlled by DDB4. When the pin is forced by the SPI to be an input, |
4 | the pull-up can still be controlled bythe PORTB4 bit. |
5 | |
6 | • MOSI/OC2/PCINT3 – Port B, Bit 3 |
7 | MOSI: SPI Master Data output, Slave Data input for SPI channel. When the SPI is enabled as a Slave, this pin is configured as an input regardless of the setting of DDB3. When the SPI is enabled as a Master, the data direction of this pin is controlled by DDB3. When the pin is forced by the SPI to be an input, the pull-up can still be controlled by the PORTB3 bit. |
:
Bearbeitet durch User
Welcher Prozessor ist da drauf? Kenne zwar keinen, bei dem an diesen Pins was besonderes wäre, aber wer weiss... An SPIEN liegt es nicht, da solltest du auch vorsichtig sein, geht aber via ISP sowieso nicht zu ändern. DDRx=0? PORTx=1? Evtl. hast du die SPI angeschaltet (SPI!=ISP, auch wenn die meist die gleichen Pins benutzen)
H.Joachim S. schrieb: > Welcher Prozessor ist da drauf? zuerst ATmega328 später bei clone meist ATmega328p echt jetzt die Frage? wer es wissen will ist mit google schneller
> Warum kann ich auf PB4 und PB5 die internen Pullups nicht aktivieren?
Ohne Quelltext ist diese Frage schwer zu beantworten.
Ich kann es jedenfalls ohne besondere Tricks anwenden zu müssen.
Wie sieht den dein Programm aus?
> Weil du es falsch machst - nicht PB4 und PB5 sondern PB3 und PB4: > MOSI ist PB3 und MISO ist PB4 und pull-up kann aktiviert werden. Sorry natürlich die meinte ich. Bin im Schaltplan verrutscht. > Welcher Prozessor ist da drauf? ATmega328p > Ohne Quelltext ist diese Frage schwer zu beantworten. > Ich kann es jedenfalls ohne besondere Tricks anwenden zu müssen. Auf anderen IO‘s tut es. Wenn es bei Dir tut reicht mir das. Dann versuche ich es mal rudimentär auf einem alten STK500. Mich wurmt mehr das ich die Lösung nicht kenne. Das Problem selbst juckt mich peripher. Aber wenn hier jeder sagt, es müsste tun dann will ich wissen was bei mir schief läuft :)
Vielleicht haben die Chinesen die internen Pull-Up Widerstände mit einem Seitenschneider heraus geschnitten :-)
Andy Y. schrieb: >> Ohne Quelltext ist diese Frage schwer zu beantworten. >> Ich kann es jedenfalls ohne besondere Tricks anwenden zu müssen. > > Auf anderen IO‘s tut es. Wenn es bei Dir tut reicht mir das. Du möchtest also den Fehler verursachenden Code geheim halten... Und dennoch: Andy Y. schrieb: > Mich wurmt mehr > das ich die Lösung nicht kenne. Fällt dir der Widerspruch in deiner Erwartungshaltung nicht auf?
Unabhängig davon, dass du das Problem finden solltest - die internen Pullups sind eh zu hochohmig, auch wenn es erstmal funktioniert. 3k3 oder 4k7 sind günstige Werte.
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.