Forum: Mikrocontroller und Digitale Elektronik Tiny15 Ausgang PB5


von Uwe Blank (Gast)


Lesenswert?

Hallo kann mir jemand sagen ob sich Port B5 ganz normal als Ausgang
ansprechen lässt , ich meine mit SBI und CBI ?
Habe das jetzt einmal probiert geht irgend wie nicht, nachdem man aber
den Reset eingang dafür abschalten muß kann ich ihn nicht mehr
umprogrammieren. OK es fehlt jetzt ein Ausgang kann ich noch mit leben
aber beim nächsten soll es funktionieren.

Danke für eure Hilfe . (hoffe ich doch)

von ...HanneS... (Gast)


Lesenswert?

Das Datenblatt (Seite 4) meint dazu:

Port B is a 6-bit I/O port. PB4..0 are I/O pins that can provide
internal pull-ups (selected for each bit).
_PB5 is input or open-drain output._
The use of pin PB5 is defined by a fuse and the special function
associated with this pin is External Reset.
The port pins are tristated when a reset condition becomes active, even
if the clock is not running.

Fazit:
Wenn du auf Reset (und damit auf ISP) verzichtest, dann kannst du ihn
als Eingang oder als Open-Drain-Ausgang nutzen, nicht aber als
Tristate-Ausgang...

von Klaus (Gast)


Lesenswert?

Entweder isp programmien! dann haste 5 pins
seriel programmien und fuse bit setzen dann hast 6 pins
achtung fuse bit wird eingebrannt!
dh.:du kannst dann nurmehr seriell(zb.:mit stk 500 programmien)
programmien!
am besten so programmien dass du nichtmehr umprogrammieren musst!
mfg Klaus

von ...HanneS... (Gast)


Lesenswert?

Na "SERIELL" ist ISP auch. Man kommt nur noch mit dem
"High-Voltage-Programmiermodus" ran, also mit dem Programmer, der 12V
an Reset legt.

von Steffen (Gast)


Angehängte Dateien:

Lesenswert?

Die Theorie ist klar. Ich habe das Handbuch x-fach gelesen.
RSTDISL Fuse ist programmiert.

Aber ich kann das Pin nicht als Output nutzen. Ich habe eine LED über
eine Vorwiderstand an +3V geschaltet. Die LED leuchtet immer, egal was
ich am PORTB,5 ausgebe. In der Dokumentation ist für das I/O-Register
PORTB erst gar kein PB5 definiert. Wie kann man PB5 also ansteuern?

Anbei der Sample-Sourcecode, leider ohne Funktion!

von Steffen Brandt (Gast)


Lesenswert?

Ich habe nach langen Recherchen selbst die Lösung gefunden.

Das Port PB5 kann nicht über das Register PORTB angesteuert werden.
Stattdessen muss DDRB benutzt werden.

sbi DDRB,DDB5  ; PB5 auf GND (Open-Drain-Transistor ein)
cbi DDRB,DDB5  ; PB5 hochohmig (Open-Drain-Transistor aus)

Voraussetzung: Fuse-Bit RSTDIBL ist programmiert

von Thorsten (Gast)


Lesenswert?

> Das Port PB5 kann nicht über das Register PORTB angesteuert werden.

Stimmt, laut Datenblatt ist Bit 5 von Port B nicht definiert. Da geht
man ja irgendwie nicht so gleich davon aus. Schräge Sache, es gibt
immer wieder ganz gemeine Fallen. Genauso die Sache beim Atmega128. Bei
dem werden ja nicht etwa MISO und MOSI für ISP benutzt, sondern
plötzlich RXD0 und TXD0. Die machen das doch alles extra :)

von Uwe (Gast)


Lesenswert?

Also doch noch, vielen vielen Dank an alle die sich bemüht haben.

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
Noch kein Account? Hier anmelden.