nicht normal. Standardmäßig sind alle Ports nach dem Einschalten auf Input, also hochohmig. Lies dir das mit dem JTAG durch, den kannst du mit den Fuses abdrehen.
nicht normal. Standardmäßig sind alle Ports nach dem Einschalten auf Input, also hochohmig. Lies dir das mit dem JTAG durch, den kannst du mit den Fuses abdrehen.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Das JTAG-Interface ist eine Programmier und Debugschnittstelle. Die Mega-Controller werden standartmässig mit aktiviertem JTAG ausgeliefert. Damit PortC richtig genutzt werden kann, muss man das JTAG-Enable Bit in den Fusebits des Controllers löschen. Dadurch deaktivierst du das Interface und du kannst den PortC richtig nutzen.
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Wunderbar,
danke für die schnellen Erläuterungen, ich lese mich gerade in das Thema ein, war ja gut das ich mich mit dem Thema mal an euch wende, kam mir komisch vor mit dem Verhalten der I/O Ports. Wenn ich das nicht hinkriege mit dem JTAG-Enable Bit löschen melde ich mich nochmal.
> Wieso sind die LEDs an wenn ich den Roboter anschalte ?
Ganz einfach:
Der Bootloader schaltet diese Pins auf EINGANG mit PULLUP.
Das wird gemacht um zu verhindern das irgendwelche angeschlossene Hardware die Pins zu stark belastet (weil z.B. Ausgang gegen Ausgang treibt).
Der Bootloader weiss ja nicht was angeschlossen sein wird.
Die Pullups sind aktiviert weil die Ports auf ein definiertes Potential gelegt werden müssen wenn nichts angeschlossen ist. Sonst fangen die sich ggf. Störungen ein und das Eingangsflipflop schaltet ständig schnell hin und her, was einiges an Energie benötigen kann.
Das ist also völlig normal so.
Und nein das hat rein gar nichts mit dem JTAG Interface zu tun, das sollte deaktiviert sein.
Daran kannst Du auch ohne ISP Programmiergerät nix ändern.
MfG,
SlyD
Super,
also muss ich mir deswegen keine Sorgen machen vowegen Spannungsabfall usw. ich dachte ich belaste die Outports in diesem ZUstand des uP etwas zu sehr oder so...
ICh finde es aber trotzdem Komisch, wenn ich in der Libary die I/O Ports als Ausgang definiere sowie auf LOW dann machen sie das zwar, aber erst wenn ich das Programm starte, vorher wenn ich nur anschalte sind sie auf 5V.
Nicht gerade sehr stromsparend...
Gruß Christian
> ICh finde es aber trotzdem Komisch, wenn ich in der Libary die I/O Ports als Ausgang definiere sowie auf LOW
Dein Programm läuft zunächst gar nicht. Das wird erst gestartet wenn der Bootloader den Sprung dahin ausführt![]()
Hallo,
danke SlyD für den Link. Ich habe das ganze nun in sowiet verstanden:
1: Für die INitialisierung des JTAG Interfaces oder dessen Umänderung kann ich nur über entsprechende Hardware (ISP als Schnittstelle) überhaupt einfluss nehmen. also NICHT mit dem USB interface
2: Die I/O PORT's sind wenn man Spannung anlegt an uP grundsätzlich erstmal an
3: Drücke ich den Start Taster wird das Programm in den Bootloader geladen, wo u.a. die Ports ihre anfangszustände nach der INitialisierung annehmen. in meinem Fall Ausgang auf low( habe ich Umgeändert in der Libary für die Portinitialisierung
Kann man das Thema so auffassen ?
Hallo
Ein externer PullDown (Widerstand vom Pin zu GND) könnte die Pegel an den Basen der Transistoren Richtung 0V ziehen obwohl der Bootloader die internen PullUps aktiviert hat. Im Datenblatt des Mega32 wird unter "DC Characteristics" für den "I/O Pin Pull-up Resistor" ein Wert von 20k bis 50k angegeben. Mit dem Datenblatt des Transistors und U=R*I sollte das machbar sein.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
> danke SlyD für den Link.
Welcher Link? Ach Du meinst wohl die automatisch vom Forum aufs RN Wiki gesetzten Links?
> 2: Die I/O PORT's sind wenn man Spannung anlegt an uP grundsätzlich erstmal an
Nein sind sie nicht. Nur ein interner schwacher Pullup Widerstand ist aktiv (den kannst du auch auf low runterziehen
mit kleinerem externen Pulldown, braucht natürlich Energie...)
Du kannst Dein "Problem" ganz einfach lösen indem Du die Sache invertierst.
LED aus wenn der Port high und umgekehrt. Wird sowieso oft so gemacht.
> 3: Drücke ich den Start Taster wird das Programm in den Bootloader geladen,
Der Bootloader ist auch ein Programm. Da wird nix reingeladen.
Der Bootloader schreibt das Programm ab Adresse 0 in den Flash Speicher.
MfG,
SlyD
Lesezeichen