ATmega328p interne Pullups auf MOSI und MISO aktivieren

OP #5454235
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
(Firma: Vescomp)
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.
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)
Gast
> 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?
OP
>  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 :)
Gast
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?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.