Forum: Mikrocontroller und Digitale Elektronik Atmega16 Pins funktionieren nicht


von mb (Gast)


Lesenswert?

Hallo an alle.
Ich wollte mit dem Atmega16 eine Binäruhr bauen. Ich wollte die 
Schaltung testen und einige LEDs gingen nicht.
Nachdem ich am Mikrocontroller die Ausgangsspannung gemessen hatte 
musste ich feststellen, dass an den Ports PC2, PC3, PC4, PC5 keine oder 
eine sehr geringe Spannung anliegt, obwohl ich sie im Programm 
angeschaltet habe.
Da ich noch einige Pins am µC frei hatte, habe ich mir gedacht, dass ich 
einfach andere Pins nutze.
Ich wollte PB3, PB4, PB5 und PB6 nutzen doch auch dort keine/zu wenig 
Spannung.

Ich habe schon an 2 Mikrocontrollern gemessen. Bei beiden das selbe.
Was kann der Fehler sein?

von Karl H. (kbuchegg)


Lesenswert?

JTAGEN in den Fuses abschalten!

Das JTAG der Prozessoren ist aktiv und hat die Pins am Port C unter der 
Fuchtel.

von Karl H. (kbuchegg)


Lesenswert?

> Da ich noch einige Pins am µC frei hatte, habe ich mir gedacht,
> dass ich einfach andere Pins nutze. Ich wollte PB3, PB4, PB5 und
> PB6 nutzen doch auch dort keine/zu wenig Spannung.

Das sollte allerdings nicht sein.
Programm?


(Ins blaue geraten: Du hast die Pins nicht auf Ausgang geschaltet)

von Falk B. (falk)


Lesenswert?


von Falk B. (falk)


Lesenswert?

Mann bin ich langsaaaaaamm ;-)

von mb (Gast)


Lesenswert?

Vielen Dank für die schnellen Antworten.
Wie kann ich das JTAG abschalten? Ich nutze BASCOM.
In dem verlinktem Artikel habe ich nichts dazu gefunden.

von Uwe (de0508)


Lesenswert?

Naja das steht immer im Datenblatt des µC und mit einem ISP Programmer, 
kann man die Fuse-Bits dann auch ändern.
Zum anderen auch per Programm zur Laufzeit ausschalten --> Datenblatt.

Ich nutze gerne dieses Tool: http://www.engbedded.com/fusecalc/

von Hannes L. (hannes)


Lesenswert?

mb schrieb:
> Wie kann ich das JTAG abschalten? Ich nutze BASCOM.
> In dem verlinktem Artikel habe ich nichts dazu gefunden.

Ins Datenblatt schaun und nach JTD suchen. Das Deaktivieren von JTAG 
geht auch in Software (auch unter Bascom!), man muss sich dazu nicht an 
den Fuses vergreifen.

...

von Karl H. (kbuchegg)


Lesenswert?

Hannes Lux schrieb:
> mb schrieb:
>> Wie kann ich das JTAG abschalten? Ich nutze BASCOM.
>> In dem verlinktem Artikel habe ich nichts dazu gefunden.
>
> Ins Datenblatt schaun und nach JTD suchen. Das Deaktivieren von JTAG
> geht auch in Software (auch unter Bascom!), man muss sich dazu nicht an
> den Fuses vergreifen.

Wobei JTAGEN harmlos ist.
Im Brennprogramm die Fuses einlesen, JTAGEN in die andere Stellung 
schalten und vom Brennprogramm schreiben lassen.

Solange du den Zyklus Einlesen-Ändern-Schreiben einhältst, kann 
zumindest bei dieser Fuse nichts passieren.

von mb (Gast)


Lesenswert?

Hannes Lux schrieb:
> Das Deaktivieren von JTAG
> geht auch in Software (auch unter Bascom!), man muss sich dazu nicht an
> den Fuses vergreifen.

Was muss ich dazu in Bascom schreiben?

Karl Heinz Buchegger schrieb:
> Wobei JTAGEN harmlos ist.
> Im Brennprogramm die Fuses einlesen, JTAGEN in die andere Stellung
> schalten und vom Brennprogramm schreiben lassen.

Meinst du mit Brennprogramm PonyProg?

Welche Methode ist die bessere? In Bascom oder über das 'Brennprogramm'?

von Karl H. (kbuchegg)


Lesenswert?

mb schrieb:

> Meinst du mit Brennprogramm PonyProg?

Wenn das das Brennprogramm ist, das du benutzt ... ja, warum nicht.

Wie überträgst du denn dein Programm in den µC?
Das ist dein Brennprogramm. Und dieses Brennprogramm hat eine 
Möglichkeit die Fuses vom µC auszulesen und auch wieder zu schreiben. 
Das Brennprogramm, welches mit BASCOM mitkommt, kann das 
selbstverständlich auch tun.

> Welche Methode ist die bessere? In Bascom oder über das 'Brennprogramm'?

In deinem Fall würde ich die Fuses wählen.
Aus dem ganz einfachen Grund, dass du, solange du keinen JTAG-Programmer 
hast, das JTAG nie brauchen wirst. Es kommt dir aber bei jedem neuen 
Programm, welches du schreibst in die Quere, wenn du es nicht ein für 
allemal abschaltest. Und das geht nur mit den Fuses.

Deine Alternativen sind also:
Per BASCOM bei JEDEM Programm, welches du schreibst abschalten (und wenn 
du darauf vergisst bedeutet das erst mal Fehler suchen, bis du dich 
daran erinnerst).
Oder eben einmalig per Fuse abschalten und danach ist das Thema für 
diesen µC für dich gegessen und du brauchst dich in weiterer Folge bei 
den nächsten Programmen nicht mehr darum kümmern.

Die Frage ist also nicht, was ist generell besser, denn wenn es 
abgeschaltet ist (egal wie), ist es abgeschaltet. Die Frage ist, 
brauchst du es jemals oder ist es etwas, was dir die nächsten 5 Jahre 
Prügel zwischen die Beine wirft, wenn du darauf vergisst.

Und NB: Irgendwann musst du sowieso an die Fuses ran. Das bleibt dir 
nicht erspart.

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

In BASCOM unter:

Programm Chip / Lock and Fuses

von mb (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Die Frage ist,
> brauchst du es jemals oder ist es etwas, was dir die nächsten 5 Jahre
> Prügel zwischen die Beine wirft, wenn du darauf vergisst.

Ich glaube, ich brauche es die nächsten 5 Jahre eher nicht.
Wie kann ich es in PonyProg abschalten?

von Dietrich L. (dietrichl)


Lesenswert?

mb schrieb:
> Ich wollte PB3, PB4, PB5 und PB6 nutzen doch auch dort keine/zu wenig
> Spannung.

Da bleibt immer noch die Frage, warum es bei Port B nicht geht.

Also doch:
- Schaltung zeigen
- Programm zeigen

Gruß Dietrich

von Karl H. (kbuchegg)


Lesenswert?

mb schrieb:
> Karl Heinz Buchegger schrieb:
>> Die Frage ist,
>> brauchst du es jemals oder ist es etwas, was dir die nächsten 5 Jahre
>> Prügel zwischen die Beine wirft, wenn du darauf vergisst.
>
> Ich glaube, ich brauche es die nächsten 5 Jahre eher nicht.
> Wie kann ich es in PonyProg abschalten?

Welchen Teil von

Fuses einlesen
JTAGEN umstellen
Fuses brennen

hast du nicht verstanden?
Ein wenig in Eigenregie in den Menüpunkten deines Brenn-Programms zu 
stöbern hat noch nie jemanden geschadet. Alles was in den Menüpunkten 
nicht nach Schreiben klingt ist erst mal harmlos. Bei allem was nach 
'Write' also 'Schreiben' klingt, stell erst mal sicher, dass du so 
einigermassen weißt, was du tust, ehe du draufklickst.
Und bei allen Menüpunkten, deren Text mit "..." endet, kannst du sowieso 
recht bedenklos erst mal die Auswahl treffen, weil die 3 Punkte dir 
sagen, dass da vom Programm sowieso noch was kommt. Meistens geht dann 
erst mal ein Dialog auf, in dem das Programm noch weiteres wissen will 
oder sonstiges präsentiert, ehe dann die eigentliche Aktion gemacht 
wird.


Ach ja.
Ob das jetzt im Pony 'Fuse' heißt oder irgendwie anders, weiß ich nicht 
mehr. Ist schon zu lange her.
Aber soviele Möglichkeiten gibts ja eh nicht, was man vom µC auslesen 
lassen kann. Du findest das schon. WEnn ein Dialog aufgeht, in dem ein 
Haufen Checkboxen sind, von denen eine mit JTAGEN beschriftet ist, dann 
bist du richtig. Auslesen lassen - Ändern - Schreiben lassen.

von Uwe (Gast)


Lesenswert?

Alle VCC und GND Pins angeschlossen (JA AUCH AVCC und AGND) !?

von mb (Gast)


Lesenswert?

Uwe schrieb:
> Alle VCC und GND Pins angeschlossen (JA AUCH AVCC und AGND) !?

Ja habe ich.

Karl Heinz Buchegger schrieb:
> Ein wenig in Eigenregie in den Menüpunkten deines Brenn-Programms zu
> stöbern hat noch nie jemanden geschadet.

Dann werde ich jetzt mal schauen.

von mb (Gast)


Lesenswert?

Es funktioniert jetzt. Vielen Dank!!

Ich habe in PonyProg bei Command > Security and Configuration Bits den 
Hacken bei JTAGEN entfernt und alles funktioniert.

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.