ATmega328p interne Pullups auf MOSI und MISO aktivieren

OP #5454235
Lesenswert?

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) #5454257
Lesenswert?

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.
#5454268
Lesenswert?

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 #5454303
Lesenswert?

> 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 #5454322
Lesenswert?

>  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 #5454338
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren