Hi,
ist das JTAG Interface bei deinem Chip per Fusebits ausgeschaltet?
Hallo an alle,
zurzeit betreibe ich LED`s an den I/O Ports PC5 und PC7. Mir sind folgende Fragen aufgetreten:
1: Wenn ich den Roboter anschalte, liegen bereits 5 Volt am Ausgang dieser Ports an.
2: Lege ich dann die BAsis meines Transistors für die Treiberschaltung der LED an fängt die LED an zu leuchten, aber schwach zu leuchten, die Spannung am Ausgang des Ports bricht auf 2.6 VOlt zusammen.
3: Starte ich mein einfaches Programm LEuchten die LEDs normal hell und alles Funtioniert normal
Wieso sind die LEDs an wenn ich den Roboter anschalte ? ICh finde so richtig keine Lösung.
hier noch mein Programm zum testen:
Danke und viele Grüße,Code://includes #include "RP6ControlLib.h" // The RP6 Control Library. // Always needs to be included #include "RP6I2CmasterTWI.h" // I2C Master Library //defines // Main funcktion int main(void) { initRP6Control(); DDRC |= IO_PC7; // PC7 Ausgang DDRC |= IO_PC5; // PC5 Ausgang // Low writeString_P("So mal ein microfon test\n"); startStopwatch1(); sound(180,80,25); sound(220,80,0); // Simple "Alarm" Sound using setBeeperFrequency function: while(true) { if(getStopwatch1() > 4000) { PORTC |= IO_PC7; // High PORTC |= IO_PC5; // High sound(180,80,25); sound(220,80,0); } if(getStopwatch1() >8000) { PORTC &= ~IO_PC7; // Low PORTC &= ~IO_PC5; // Low setStopwatch1(0); } } }
Christian
Hi,
ist das JTAG Interface bei deinem Chip per Fusebits ausgeschaltet?
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
Wow,
wie bitte ? Ich verstehe gerade Bahnhof... Was ist das ?
OK habge gerade mal gegoogelt : http://www.mikrocontroller.net/articles/JTAG aber schlau werde ich daraus nicht, zumal wenn man in der tabelle Schaut über die Portbelegung nichtmal alle I/O Pins über dieses JTAG zu verfügen scheinen...
ISt das denn normal das beim einschalten des Roboters alle I/O Pins auf High stehen ?
Gruß Christian
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 ?
Lesezeichen