PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Controller-Funktionstest



Amri
08.08.2005, 22:21
Hallo,
gibt es eine Möglichkeit, zu überprüfen, ob mein Controller kaputt ist?
Meine Schaltung funktioniert nämlich nicht (Verbindungsfehler beim Versuch zu programmieren), ich möchte aber jetzt aber wenn möglich nicht den Controller austauschen um danach festzustellen, dass es gar nicht daran lag...

Ringo
09.08.2005, 14:45
wieviel Strom verbraucht deine schaltung denn?

Meine schaltung mit einem Atmega8 und ISP Ohne irgend einen anderen kram verbraucht ca 8-9mA also wenn dein Strom viel hoöher kanns sein das du irgendwo nen Kurzen drin hast oder du den Controller schon geschruppt hast..

MfG
ringo

Amri
09.08.2005, 16:05
Hm, ich messe gar keinen Strom. Das würde ja dafür sprechen dass der Controller kaputt ist, oder?
Einen Kurzschluss hat's mal gegeben, von daher also gut möglich....

Florian
09.08.2005, 17:17
Absolut garkein Strom würde aber bedeuten, dass der Stromkreis garnicht geschlossen ist.
Mindestens ein paar Milli-, Mikro- oder Sonstewas-Ampere müssen immer fließen!
Wenn also Dein Multimeter im kleinsten Messbereich nichts anzeigt, dann ist der Stromkreis unterbrochen und irgendwo gibt's ne Unterbrechung!
Normalerweise müsste aber wenigstens ein wenig Strom über Peripherie fließen, es sei denn, Du hast garnichts am AVR hängen, dann könnte es sein, dass der kaputt ist, ist aber sehr unwahrscheinlich!

Amri
09.08.2005, 17:39
Naja, genau genommen hab ich zurzeit auch nichts am AVR hängen ;).
Zwischen + und - konnte ich aber immerhin einen Widerstand messen, der Stromkreis muss also geschlossen sein.
Ich habe jetzt mal einen neuen AVR bestellt, dann mal sehen ob sich mit dem neuen was tut.

SprinterSB
09.08.2005, 17:44
hmmm, das kann alles mögliche sein

- Progger-Hardware hat nen Wackelkontakt / ist falsch aufgebaut
- Controller kaputt
- Controller falsch verschaltet
- Fuses verstellt
- Progger-Software falsch konfiguriert

Ist die Schaltung ganz neu?
Oder hatte sie schon mal funktioniert?
Was hast du geändert? Programm / Konfiguration / Hardware...

Amri
09.08.2005, 17:53
Also:
- Progger-Hardware ist OK, an anderen Boards tut alles
- Controller hab ich so verschaltet wie immer
- Die Schaltung ist ganz neu, sie hat nie funktioniert, beim ersten mal Strom anschließen gab's einen Kurzschluss
- ich habe den Controller noch nie programmiert

SprinterSB
09.08.2005, 18:12
Nimm den COntroller raus -- war haben ja gesockelt, oder?
Und such das Problem in der Schaltung. Warscheinlich ist der Controller hinüber. Den auszutauschen braingt wohl nix bevor du deine Schaltung nicht fehlerfrei hast, sonst grillst du den neuen auch sofort.

- Gibt es unbeabsichtigte Lötbrücken, Kurzschlüsse in der Schaltung? Kalte Lötstellen?
- Nochmals das Layout testen und mit den Bauteilen vergleichen. Teilweise sind zB Fehler in den eagle-Bibliotheken.
- Haben noch andere Bauteile Schaden genommen? Wenn die Versorge verpolt / zu hoch war, ist es wahrscheinlich. Weg damit.
- Ist die Versorgungs-Spannung jetzt so, wie sie sein soll?

Amri
09.08.2005, 18:19
Zum Thema Sockel:
Gibt es Sockel für SMD-Controller? Ich habe zwar gesucht aber nichts gefunden, daher dann auch den Controller direkt gelötet.
Der Fehler in der Schaltung habe ich schon gefunden: Es war ein Lötzinnrest zwischen Masse und +5V. Inzwischen ist aber alles OK und es liegt die korrekte Spannung an. Ich warte nur noch auf den neuen Controller.

hacker
09.08.2005, 19:17
ja, es gibt smd sockel...mir sind sie aber nur für etwas größere controller bekannt..was verwendest du denn für ein amtel?

Amri
09.08.2005, 19:58
Mega32 - 44 Pins

Amri
11.08.2005, 16:33
Mit einem neuen Controller funktioniert es jetzt - besser gesagt, hat es funktioniert :(
Der Controller wurde erkannt, beim ersten mal programmieren kam aber eine Meldung, dass es einen Fehler beim Schreiben der Fuse-Bits gegeben hat. Jetzt wird er nicht mehr erkannt.
Was nun?

SprinterSB
11.08.2005, 23:44
Ich vermute mal, daß durch den Fehlversuch die Fuses *irgendwie* gesetzt sind. Mit deim Controller kommst du wohl nicht weiter, weil du nicht mehr ran kommst.
Oben hast du was von Kurzschluss geschrieben. Womöglich sind andere Komponenten auf deiner Schaltung in Mitleidenschaft gezogen, PC-Port nicht mehr 100% in Ordnung oder das Netzgerät liefert keine saubere Spannung / ist defekt, oder ein Erdungsproblem bei Laptop.
Oder du hast noch ne Zinnbrücke/schlechte Lötstelle übersehen.

Ferndiagnose ist da schwer, vor allem ohne Schaltplan.

Björn
12.08.2005, 09:59
Hi,

könnte es sein dass du bei den Fuses nur die CKSel Häckchen entfernt hast? Dann wäre der Fall klar... (spreche aus aktueller Erfahrung, nech SprinterSB :D )

Gruß, Björn

Amri
12.08.2005, 11:02
Ja, die Häkchen sind entfernt. Allerdings nicht wegen mir, sondern weil das in meinem Programmer stadardmäßig so eingestellt ist.
Eigentlich dürfte das aber doch nichts machen, weil ich einen externen Quarz in der Schaltung habe. Es könnte allerdings sein, dass vielleicht einer der Kondesatoren kaputt ist. Muss ich gleich mal austauschen und ausprobieren.

@SprinterSB:
Kurzschluss, Zinnbrücken und schlechte Lötstellen kann ich ausschließen. Ich habe die komplette Platine neu gelötet und danach jede einzelne Leiterbahn, jede Lötstelle und jeden Pin an allen Bauteilen mit dem Multimeter überprüft, bevor ich die Spannung angelegt habe.
Der Programmer ist auch in Ordnung, der funktioniert noch. Und mit dem Netzgerät hatte ich auch noch nie Probleme.

Björn
12.08.2005, 11:04
Siehe hier:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=104459&highlight=#104459

Gruß, Björn

SprinterSB
12.08.2005, 11:20
Ja, die Häkchen sind entfernt. Allerdings nicht wegen mir, sondern weil das in meinem Programmer stadardmäßig so eingestellt ist.
Eigentlich dürfte das aber doch nichts machen, weil ich einen externen Quarz in der Schaltung habe.
Ein Progger sollte von selber NIE die Fuses/Locks verstellen, sondern nur, wenn du es ihm sagst. Alle Clock-Fuses auf Null bedeutet *nicht*, daß er mit Quarz läuft. Hab ich gestern glaub was an Björn geschrieben.


[...] und danach jede einzelne Leiterbahn, jede Lötstelle und jeden Pin an allen Bauteilen mit dem Multimeter überprüft, bevor ich die Spannung angelegt habe.
Wenn du ein Multimeter auf Widerstandsmessung einstellst, dann gibt es eine Spannung auf die Bauteile und guckt, ob ein Strom fliesst. Wenn du sogar Dioden damit auf Durchgang testen kannst, reicht die Spannung sogar aus, ne LED zum leuchten zu bringen. Mit dieser Spannung zB zwei benachbarte Pins einem Chips auf Kurzschluss auszuwünscheln, ist nicht unbedingt eine gute Idee.
Das ist ein weiterer Grund ICs zu sockeln...

Amri
12.08.2005, 11:45
Zu den Fuse bits:
Mit dem Programmer hab ich die Programmierungssoftware gemeint, da ist standardmäßig 0000 für CKSEL eingestellt. Soweit ich weiß hatte ich diese Einstellungen aber immer so gelassen, und es hat immer funktioniert.
Das heißt jetzt also, dass ich auf 1111 (External Crystal/Ceramic Resonator) umstellen muss und dann an XTAL1 einen Takt erzeugen muss, also abwechselnds 0V,5V,...? Das kann ich ja mit einem anderen Controller machen.

Wenn du ICs sockelst, kannst du mir dann sagen wo du 44-Pin-SMD-Sockel herbekommst? Ich würde ja gerne sockeln, finde aber keine Sockel...

Amri
12.08.2005, 12:38
Ich habe jetzt an XTAL2 erst einmal von Hand einen Takt erzeugt und siehe da: Mein Programm, das ich beim ersten Programmierversuch draufgespielt hatte, ist "gelaufen" (d.h. zwei LEDs haben geleuchtet, mehr war in dem Programm auch nicht drin). Dann habe ich XTAL2 mit einem Pin von einem anderen Controller verbunden und an diesem Pin immer zwischen 0V und 5V gewechselt. Die Configuration Bits wurden somit neu programmiert, bei den Security Bits gab's dann einen Fehler, wahrscheinlich weil er dann ja auf Quarz umgestellt hat. Danach habeich den Quarz und die Kondensatoren wieder eingebaut. Der Controller wird aber weiterhin nicht erkannt...

SprinterSB
12.08.2005, 12:55
ZU den Fuses:
Falls die wirklich auf extern stehen, dann

- liest du dir genau durch, wie die Fuses stehen und wie sie sein sollen
- du nachst dich schlau, was dein Progger unter 0, 1, programmed, not programmed, Häkchen oder nicht-Häkchen, etc versteht
- legst du einen externen Takt an
- brennst die Fuses wie sie sein sollen (zB Quarz)
- betreibst die Schaltung mit Quarz

Durch Umstellen der Fuses ändern sich die Eigenschaften von XTAL1 und XTAL2. Nach dem auf das Fuse-Setzen folgenden RESET kann es also sein, daß dein externen Taktgenerator und der XTAL1 des AVRs sich in die Quere kommen. Um Schäden zu vermeiden daher mein Vorschlag von oben, nen Widerstand zwischen Extern und XTAL1 zu verwenden. Für Quarz brauchst du den natürlich nicht.

Wenn du einen 2ten laufenden AVR, kannst du auch von dessen Takt was abzweigen. Da müsst ich jetzt ins Manual gucken wie das geht, aber das hast du bestimmt vor dir liegen ;-)

Mit SMT kann ich dir nicht weiter helfen. Ich arbeite mit DIL.
Evtl PLCC 44 oder SMD PLCC 44 vom Reichelt?

Georg-Johann



-

Amri
12.08.2005, 13:11
Was meinst du genau mit "vom Takt etwas abzweigen"?

SprinterSB
12.08.2005, 13:37
Da hängst den Taktausgang des einen an den Takteingang des anderen.

Amri
12.08.2005, 13:46
Und was genau soll dann passieren?

SprinterSB
12.08.2005, 14:12
Der eine µC bekommt sein Takt von dem anderen µC.
Ist fast wie Starthilfe beim Auto ;-)
Nur daß nu nicht den Anlasser laufen lassen willst, sondern die Fuses wieder zurecht biegen willst.


Crystal Oscillator

XTAL1 and XTAL2 are input and output, respectively, of an inverting amplifier which can be configured for use as an On-chip Oscillator, as shown in Figure 11. Either a quartz crystal or a ceramic resonator may be used. The CKOPT Fuse selects between two different Oscillator amplifier modes.

When CKOPT is programmed, the Oscillator output will oscillate a full rail-to-rail swing on the output. This mode is suitable when operating in a very noisy environment or when the output from XTAL2 drives a second clock buffer. This mode has a wide frequency range.

When CKOPT is unprogrammed, the Oscillator has a smaller output swing. This reduces power consumption considerably. This mode has a limited frequency range and it cannot be used to drive other clock buffers.

Wenn du das so machen willst, dann musst du also CKOPT im Helfer-µC auf 0 setzen, damit der Treiberausgang XTAL2 genug Power hat, um auch den Eingang XTAL1 des Ersten mitversorgen zu können.

Oder du nimmst nen normales I/O-Port und machst nix ausser den zu toggeln.

Georg-Johann

Amri
12.08.2005, 16:04
Mein Problem ist aber im Moment, dass der Controller, seit ich einmal die Fuse Bits verändern konnte, weder auf den Quarz, noch auf meinen extern erzeugten Takt reagiert. An was könnte das liegen?

SprinterSB
12.08.2005, 18:14
Hmmm, also ich dachte, er reagiert auf den externen Takt...?
Falls du Pach hast, hast du dich aus deinem AVR ausgesperrt und kommst via ISP nicht mehr dran.
Weiter kann ich dir auch nicht helfen, ausser vielleicht den Rat, nen Progger zu benutzen, der keine so blöden AUtomatismen hat wie unaufgefortert Fuses umzustellen.

Gruß, Georg-Johann

Amri
12.08.2005, 18:22
Ja, er hat auf den externen Takt reagiert. Dami konnte ich dann CKSEL verändern und seitherreagiert er nicht mehr.