Forum: Mikrocontroller und Digitale Elektronik ATMega16+Bascom+STK500: Nicht alle Ports werden Ausgänge:-(


von Pauline (Gast)


Lesenswert?

Hallo Forum,

ich beschäftige mich seit ein paar Tagen mit 
Microcontroller-Programmierung.
Meine Ausstattung: STK500, ATMEGA16 und Bascom Demoversion.

Ich habe eine einfaches Programm geschrieben, das einfach nur alle ports 
blinken lassen soll. Der ATMEGA16 war neu und ich habe auch schon einen 
anderen probiert. Ich habe keine Fuses verändert.

Erst dachte ich das STK500 wäre kaputt und ich habe es zurückgeschickt. 
Reichelt hat mir umgehend Ersatz (ein Neues) geschickt. Aber genau das 
Gleiche passiert.

neben der üblichen CPU Definition und der Frequenzeinstellung habe ich 
folgenden Code:
------------------------------------
config porta = output "Hier blinken nur 4 Ausgänge
config portb = output "Hier blinken alle außer Ausgang 7
config portc = output "Hier blinken alle 8 Ausgänge !!
config portd = output "Hier blinken nur 3 Ausgänge, einer ist immer an

do
porta = 255
portb = 255
portc = 255
portD = 255
waitms 50

porta = 0
portb = 0
portc = 0
portD = 0
waitms 50

loop
---------------------------------------
Ist der ATMEGA defekt, das STK500 oder was mache ich falsch? Laut 
Datenblatt hat das Teil doch 32 Ein/Ausgänge. Warum kann ich nicht alle 
als Ausgänge nutzen - heul...

Danke!!! Pauline

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Nicht heulen, Schaltplan des STK500 studieren!

Der Atmega16 allein hat zwar 32 programmierbare I/O Leitungen. Aber 
einige davon werden von dem dem STK500 Board benutzt, z.B. damit du den 
Atmega seriell ansprechen kannst.

Zudem kannst du den Atmega16 überlasten, wenn du gleichzeitig alle 
Ausgänge benutzt und z.B. auf 32 Pins über die LEDs je 20 mA Strom 
gibst. Immer die Absolute Electrical Ratings im Datenblatt (ziemlich 
hinten) beachten!

Wenn du ein Projekt hast, bei dem du viele I/O Leitungen brauchst, gibt 
es meistens eine bessere Lösung als die I/O Leitungen direkt am AVR 
anzuschliessen.

Viele Leitungen haben Sonderfunktionen, die man lieber nutzen will als 
damit zu klimpern. Stichwort Multiplexing und Porterweiterung im 
Tutorial.

Wenn du - wie du schreibst - keine Fuses geändert hast, wundert mich das 
Ergebnis bei PORTC. Ab Werk ist die Sonderfunktion JTAG aktiv und da 
dürften keine 8 blinkende LEDs zu sehen sein. Kenne mich mit BASCOM aber 
nicht so aus, vielleicht dreht das da was.

von Spess53 (Gast)


Lesenswert?

Hi

Der einzige Port bei dem es bei einem neuen ATMega16 Probleme gibt, ist 
Port C wenn die JTAG-Fuse nicht abgeschaltet ist.
Bist du sicher, das der ATMega im richtigen Sockel steckt?

MfG Spess

von Turbotoni (Gast)


Lesenswert?

Du schreibst nicht, welche Ports nicht als Ausgänge funktionieren, aber 
ich nehme mal an, das es sich um Port C handelt.

MfG Turbotoni

von H.Joachim S. (crazyhorse)


Lesenswert?

würde sich aber im falschen Sockel nicht flashen lassen, oder?
Das Stromargument zieht auch nicht, da im STK500 die LEDs über 
Transistoren geschaltet sind.

von Spess53 (Gast)


Lesenswert?

Hi

>würde sich aber im falschen Sockel nicht flashen lassen, oder?

Also ich habe es nicht probiert, aber Programmierleitungen liegen auf 
den gleichen Pins. Und der Strom könnte, wohl gemerkt könnte, sich der 
AVR auch über Portpins holen. Habe ich schon gehabt.

MfG Spess

von H.Joachim S. (crazyhorse)


Lesenswert?

Ich habs auch noch nicht probiert, tue ich jetzt auch nicht extra :-)

von Pauline (Gast)


Lesenswert?

Hallo

sorry ich habe portc und Portb oben in meiner Beschreibung vertauscht.
portc liefert nur 7 Ausgänge und bei portb leuchtet alles.

Und ja, der atmega sitzt im richtigen Sockel (rechts im orangenen von 
den LEDs gesehen).
Fuses habe ich keine geändert!
Ein- zwei hätten mich nicht gewundert. aber das an porta UND an porte 
nur drei-vier Ausgänge gehen kann ich nicht glauben.
hängt es vielleicht mit der bascom Demo zusammen? Das Programm hat doch 
nur 1% vom Speicherbedarf laut dem popup was da kommt...
Auf jeden Fall schon mal danke! Morgen schaue ich mal ob ich einen 
Schaltplan vom stk500 finde und ich schaue mir den mal an!

lg pauline

von Spess53 (Gast)


Lesenswert?

Hi

>Und ja, der atmega sitzt im richtigen Sockel (rechts im orangenen von
>den LEDs gesehen).

Der muss aber in den Linken (rot). Bezeichnung SCKT3100A3.

MfG Spess

von Turbotoni (Gast)


Lesenswert?

Auf jedenfall muss man die JTag-fuse ändern, sonst funktionier port C 
nicht.

Das manche ports nicht als Ausgang funktionieren, kann auch an Bascon 
liegen, aber nicht an der abgespeckten Version sondern scheint ein 
generelles problem zu sein.

Ich hatte mal Probleme mit PortB unter Bascom, habe dann das Programm 
auf C umgeschrieben, und danach keine Probleme mehr.

MfG Turbotoni

von Schüler (Gast)


Lesenswert?

Pauline schrieb:
> Erst dachte ich das STK500 wäre kaputt und ich habe es zurückgeschickt.
> Reichelt hat mir umgehend Ersatz (ein Neues) geschickt. Aber genau das
> Gleiche passiert.

hihi...man hätte auch mit eine multimeter die spannung der nicht 
leuchtenden pins messen können um einen defekt des stk500 
auszuschließen... ;)

von Hannes L. (hannes)


Lesenswert?

Turbotoni schrieb:
> Auf jedenfall muss man die JTag-fuse ändern, sonst funktionier port C
> nicht.

Quatsch... JTAG lässt sich per Software abschalten. Dazu muss man einem 
Neuling nicht den Rat geben, ohne Wissen an den Fuses zu basteln.

>
> Das manche ports nicht als Ausgang funktionieren, kann auch an Bascon
> liegen,

Wieso??? - Wenn die richtige Definitionsdatei eingebunden ist, dann 
sollte (darf) es da keine Probleme geben.

> aber nicht an der abgespeckten Version sondern scheint ein
> generelles problem zu sein.
>
> Ich hatte mal Probleme mit PortB unter Bascom, habe dann das Programm
> auf C umgeschrieben, und danach keine Probleme mehr.

Aha, das ist also der Beweis, dass Bascom nicht funktioniert?

Nein, ich bin kein Bascom-Verfechter, aber was Du da schreibst, glaube 
ich nicht so einfach.

>
> MfG Turbotoni

...

von Paul Baumann (Gast)


Lesenswert?

Nein, das liegt sicher nicht an Bascom.

Wahrscheinlich hängt es damit zusammen:
Zitat Pauline:
>neben der üblichen CPU Definition und der Frequenzeinstellung habe ich
>folgenden Code:...

Die "üblichen" CPU-Definitionen hast Du nicht mitgeschickt. Vielleicht
sind sie etwas unüblich.
;-)
MfG Paul

von Pauline (Gast)


Lesenswert?

Ähhhm...hallo!

Es ist wohl was dran, dass Frauen rechts und links gerne vertauschen.
Der ATMEGA war wie Spess53 im falschen "roten" Sockel.
Und kaum stecke ich ihn um - schon funktionierts :-) freu!

Vielen Dank an Euch!
LG Pauline

von Spess53 (Gast)


Lesenswert?

Hi

Na ja. Wenigstens hast du nicht gegrillt. Dann steht ja jetzt deinem 
Einstieg in die Welt der µCs nichts mehr im Weg.

MfG Spess

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.