Hallo zusammen,
Kann es vielleicht sein, dass die uC nicht überprüft werden?
Ich habe zwei atmega16, bei einem ist der adc kaputt, bei anderem ist
der Port a kaputt.
Ist das normal, und wie geht man damit um?
Valentin schrieb:> bei einem ist der adc kaputt, bei anderem ist> der Port a kaputt.
Selbes Datum auf den ICs vermerkt? Oder Port A in derselben Schaltung
mit dem gleichen Fehler (an-)getötet?
mfg mf
Hi
>Kann es vielleicht sein, dass die uC nicht überprüft werden?>Ich habe zwei atmega16, bei einem ist der adc kaputt, bei anderem ist>der Port a kaputt.
Wie hast du das festgestellt?
MfG Spess
Einen kurzen Test werden die Chips vermutlich schon durchlaufen, und
wenn es nur das Programm ist für die Kalibrierung des internen Taktes.
Bei der Gelegenheit wäre auch auch ein kurzer Test möglich - kostet aber
natürlich Zeit.
>Ich habe zwei atmega16, bei einem ist der adc kaputt, bei anderem ist>der Port a kaputt.>>Ist das normal, und wie geht man damit um?
Man schliesst AVCC und AGND an.
Ansonsten hast du beide wohl selbst getötet.
Natürlich gibt es eine Prüfung. Die Kunden würden sich "bedanken", wenn
ihr Gerät wegen eines defekten µC nicht funktioniert. Sollen sie die
Chips etwa selber testen? Natürlich kann trotzdem einmal ein defekter
Chip "durchrutschen", aber das ist halt sehr, sehr unwahrscheinlich.
Dass gleich zwei Chips defekt sind, ist daher sogar unwahrscheinlich im
Quadrat. :-)
Wenn die eigene Schaltung die ICs nicht gekillt hat, tippe ich eher auf
falsche Lagerung. Wo kommen die µCs denn her? Via ebay?
Normalerweise werden Chips im Einzeltest auf dem Wafer noch getestet, um
schlechte zu markieren und auszusondern.
Bei den fertigen Bauteilen nimmt man nur noch Stichproben. Der
Produktionsprozeß Bonding und Molding ist wohl so ausgereift, daß man da
nichts mehr groß befürchtet. Stichproben geben aber auf jeden Fall auch
einen Hinweis, wenn da wirklich was schief läuft.
Festgestellt habe ich dass indem ich sie beide getestet habe.
Ein m16 habe ich bei pollin, und den anderen vor kurzem bei reichelt
gekauft.
Beim m16(reichelt) liegt an jedem Ausgangspin des PortA 1,5 V anstatt
4,3 V wie beim m16(pollin).
Kann man in so einem Fall das Widerrufsrecht nutzen, und sich den uC
ersetzen lassen?
Weil, der ist ja im prinzip nicht brauchbar.
MfG
Valentin
Valentin schrieb:> Festgestellt habe ich dass indem ich sie beide getestet habe.
Toll! Ganz toll. Ist natürlich die perfekte Antwort auf die Frage "wie".
> Beim m16(reichelt) liegt an jedem Ausgangspin des PortA 1,5 V anstatt> 4,3 V wie beim m16(pollin).
Das sind beides Spannungen, die nie an einem Ausgang anliegen sollten.
Schaltung? Die Dinger wirst du zu 99% selbst gekillt haben.
Nun, ich wusste nicht genau, wie ich auf die Frage "wie" antworten
sollte. War nicht Böse
gemeint.
Eine Schaltung gibt es nicht, der uC befindet sich auf einem Steckbrett
mit Quarz, zwei 22 pF kerkos., und 100 nF für Betriebsspannung .
Als Programm nutze ich eine selbstgeschriebene PC-Software(die ich hier
bald präsentieren werde) die es mir ermöglicht alle Datenregister eines
AVRs auszulesen und zu beschreiben.
Klingt schon witzig...
Du schaffst es nicht einmal nen ADC zum Laufen zu bringen, ohne den µC
zu Schrotten und willst hier ein eigenes Programm zum Auslesen aller
Register vorstellen...:-D
Ist bei dir Nachts eigentlich auch kälter wie draußen, oder was für en
Zeug rauchst du denn??
du kannst dir sicher sein, dass die µc's noch auf dem waver vermessen
wurden, und dass die nach dem bonding und dem molding nochmal einen
final test gesen haben. wenn irgend einer dieser tests angeschalgen
hätte, wäre der betreffende µc ausortiert worden.....
Es scheint so als ob du bei dem Programm noch unsicher bist, schau mal
hier in das Tutorial und in die Beispiele.
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
Damit solltest du die Pins deines AVRs testen können:
(die AVR sind eigentlich ganz schön robust)
Die Pins sind als Ausgang definiert, es werden aber immer die
PullUp-Widerstände zugeschaltet und wieder abgeschaltet.
Wenn du jetzt eine LED direkt (oder mit Vorwiderstand) an die Pins
hältst sollte sie im 1 Sekunden Takt blinken.
1
#include <avr/io.h>
2
#include <util/delay.h>
3
4
#ifndef F_CPU
5
#warning "F_CPU war noch nicht definiert, wird nun mit 8000000 definiert"
Mike J. schrieb:> Die Pins sind als Ausgang definiert, es werden aber immer die
^^^^^^^
> PullUp-Widerstände zugeschaltet und wieder abgeschaltet.
Ähhhm, wirklich? - Wie geht das?
...
Valentin schrieb:> Ist das normal, und wie geht man damit um?
Wie man damit umgeht: Mit etwas weniger Hybris an die Sache rangehen. In
mindestens 99% der Fälle sind weder der Hersteller des Controllers noch
der Compiler schuld, wenn irgendwas nicht so läuft wie gedacht.
Normal ist: Wenn man schon im Titel des Thread klar macht, dass man die
Schuld beim Anderen sucht, im Text aber dann deutlich wird, dass
summarum wenig Ahnung vorhanden ist, dann folgt unweigerlich die Nemesis
in Form süffisanter und ironischer Antworten.
Gerd schrieb:> Das Pseudonym "dunno" ist treffend gewählt ;-)>> (umgangssprachlich für "don't know")>> Gruß Gerd
Oo.. ->als ausgang..
mea culpa. asche auf mein haupt...
- ich werd nie wieder vor dem ersten kaffee irgendwo querlesen..
promised.
mfg
Mike J. schrieb:> Vertippt ... Eingang sollte es werden.
Ist mir klar, wollte ich aber nicht unwidersprochen stehen lassen, damit
sich nicht irgendwann Jemand darauf beruft und das für ein gottgegebenes
Naturgesetz hält. Heutzutage, wo (fast) Jeder vom Anderen abschreibt und
nur noch Wenige verstehen was sie tun, sollte man Irrtümer
(Flüchtigkeitsfehler) nicht einfach so stehen lassen. Hat also nix mit
persönlichen Angriffen zu tun.
...
Logisch, die Dinger werden auf dem Wafer getestet, schon um das
Verpacken der defekten zu sparen. Die "Eingehäusten" werden in der Regel
nochmals getestet.
Gilt nicht unbedingt für die AVR, aber die verschiedenen
Selektions-Stufen-
(z.B. Frequenz) werden bei diesen Tests ermittelt. Beim AVR könnte das
auch das Cal.-Byte des Internen Oszillators sein.
Ich tippe eher auf Handling-Fehler, bei Originalverpackter Ware, die
noch keiner angefaßt hat, sollte kein defektes Teil sein. Der Fehler
kann durchaus auch beim Versender oder dessen Lieferanten ("Industrie-
Überbestände") aufgetreten sein.
Valentin schrieb:> Eine Schaltung gibt es nicht, der uC befindet sich auf einem Steckbrett> mit Quarz, zwei 22 pF kerkos., und 100 nF für Betriebsspannung .
Ein Steckbrett ist keine Umgebung für reproduzierbare Tests jeglicher
Art.
ESD würde ich ausschließen. Kenne keinen, der niemanden kennt, der schon
mal einen AVR per ESD kaputt gekriegt hat.
Du hast aber immer noch keinen Schaltplan angegeben, auch wenn die
Schaltung noch so einfach ist.
Was hast du alles wo angeschlossen?
Simon K. schrieb:> ESD würde ich ausschließen. Kenne keinen, der niemanden kennt, der schon> mal einen AVR per ESD kaputt gekriegt hat.
Du scheinst einen recht einseitigen Bekanntenkreis zu haben. ;-)
> Ein Steckbrett ist keine Umgebung für reproduzierbare Tests jeglicher> Art.
Doch schon, man muss halt die Grenzen davon kennen (parasitäre Effekte,
Strombelastung, Zuverlässigkeit der Kontakte...), für das bisschen
AVR-Basteln reichts locker.
Der TO hat höchstwahrscheinlich nur Vcc, nicht jedoch AVcc
angeschlossen. Da passt zu dem Fehlerbild des nichtfunktionierenden
PortA.
Hat Holger allerdings oben schon erwähnt.
Fragezeichen, kannst du mir Bitte sagen, wie man mit einem Programm die
Hardware kaputt machen kann!
Dass habe ich bis jetzt noch nicht geschaft.
Die von mir beschriebenen Fehler sind irgendwie anders zustande
gekommen.
A. K., du hast recht, man darf die Schuld nicht immer bei Anderen
suchen.
Aber wenigstens ist der Herstellen jetzt von der Fehlerquelle
ausgeschlossen.
Ich möchte mich an dieser Stelle bei allen, die meine Frage in der
Überschrift kompetent beantwortet haben, ganz herzlichst Bedanken.
Die, die mich hier als Vollideoten abgestempelt haben, nur weil ich
nicht so gut mit Hardware umgehen kann, werden es noch sehen, was für
ein Tolles, Hilfreiches, und Funktionsfähiges Programm ich da
geschrieben habe.
Mit freundlichen Grüßen
Valentin
Valentin schrieb:> Fragezeichen, kannst du mir Bitte sagen, wie man mit einem Programm die> Hardware kaputt machen kann!
Geht. An GND oder VCC gehängten Pin mit unpassendem Pegel auf Ausgang
programmieren. Kurzfristig macht er das mit aber auf Dauer geht das
thermisch in die Hose, spätestens wenns gleich der ganze Port ist.
Das ist aber kein Programmfehler, sondern ein Hardwarefehler (ein Fehler
in der Beschaltung des uCs). Der uC geht kaputt, weil man den Pin
kurzschließt, und der Strom größer als 40 mA ist (5 V / 20 Ohm = 250 mA)
.
Ich sagte doch bereits schon, dass ich kein Vollideot bin. Ich weiß halt
nicht Alles. Bin nicht Perfekt. Bin nur ein Mensch, der versucht etwas
Umzusätzen.
MfG
Valentin
Valentin schrieb:> ch weiß halt nicht Alles. Bin nicht Perfekt.
Erwartet auch keiner. Allerdings kann man dir ohne Infos von deiner
Hardware nicht helfen. Daher warte ich noch auf einen Schaltplan oder
ein Bild vom Aufbau wenigstens.
:-)
Valentin schrieb:> Das ist aber kein Programmfehler, sondern ein Hardwarefehler (ein Fehler> in der Beschaltung des uCs).
Wenn man erst das Programm schreibt und dann blöderweise die Pins
kurzschliesst ist es ein Hardwarefehler.
Wenn man hingegen zuerst die Platine mit beispielsweise DIP-Switches zur
Konfiguration an ein paar Portpins vorsieht und dann zu dämlich ist, den
Port richtig zu initialisieren, dann ist es ein Programmfehler.
Es gibt auch Controller, die man völlig ohne solche externen Einflüsse
programmgesteuert ins Jenseits schicken kann. Die AVRs gehören aber m.W.
nicht dazu.
Valentin schrieb:> Der uC geht kaputt, weil man den Pin> kurzschließt, und der Strom größer als 40 mA ist (5 V / 20 Ohm = 250 mA)> .
Wenn man mehrere Pins mit hohen Strömen belastet, z.B. einen ganzen Port
mit 8 bits, oder 2 Ports, da kann man den µC auch noch killen. Oder er
arbeitet nicht mehr sauber. Denn man überbeansprucht dann die
Gesamtstromaufnahme des µC, und ist da vielleicht mal schnell bei einem
halben Ampere. Das steht aber auch im Datenblatt.
Ich arbeite hier öfter noch mit älteren SAB80C517A, das sind
8051-Derivate. Die Pins können nur einen TTL-Baustein treiben, also
Sinkstrom 1,6mA. Das genügt auch für die meisten Anwendungen. Trotzdem
hänge ich da mal LEDs mit 5mA dran, weil ich keine Lust habe, noch einen
Treiberbaustein dazwischen zu setzen. Fürs Hobby geht das schon mal, und
wenn es nur 3 LEDs sind, sowieso.
Mit 300mA Stromaufnahme beanspruche ich hier gerade einen 8255. Das ist
ein I/O-Portexpanderbaustein aus älteren Systemen. Habe da 16 LEDs OHNE
Vorwiderstand dran, und er wird ganz schön warm. Ich machte das auch
nur, weil ich noch Massen dieses alten Bausteines besitze. Und die Pins
bei der LED-Spannung sowieso abregeln, also kein voller Kurzschluß. Das
Ding läuft aber tatsächlich tagelang, passiert ist nichts. Bei Defekt
wird er einfach umgesteckt, ist nicht eingelötet.
Einen vollen Kurzschluß an den Pins habe ich noch nicht getestet, das
hält der Baustein sicherlich nicht dauerhaft aus. Möglicherweise bricht
aber auch die VCC zusammen, denn sie ist ja bei einem kleinen µC-System
selten auf Ampere-Ströme ausgelegt.
Mit neuen gekauften Bauteilen gehe ich selbstverständlich manierlich um.
Bei Schrott, den ich sowieso vor der Schrottpresse rettete, ist es nicht
immer so wichtig.
Simon K. schrieb:> ESD würde ich ausschließen. Kenne keinen, der niemanden kennt, der schon> mal einen AVR per ESD kaputt gekriegt hat.
Zustimm.
Selbst im trockensten Winter, wo die statischen Entladungen schon
richtig weh tun, habe ich noch keinen AVR killen können.
Aber kürzlich war hier ein Thread, wo auch einer seine AVRs gekillt hat.
Schlußendlich lags an seinem Netzteil, daß beim Ausschalten hoch lief
und die 5V weit hinter sich ließ.
Auch rate ich davon ab, USB zum Basteln zu benutzen.
Theoretisch ist USB über den PC geerdet, aber die Praxis sieht oft
anders aus (Erdausgleichsströme bei verschiedenen Stromkreisen, Pfusch
des Elektrikers, Übermalen des Schutzkontakts beim Renovieren usw.).
Mit einem erdfreien Labornetzteil oder notfalls ne 2-polige Wandwarze
mit 7805 dahinter, ist man erheblich sicherer.
Peter
Peter Dannegger schrieb:> Aber kürzlich war hier ein Thread, wo auch einer seine AVRs gekillt hat.> Schlußendlich lags an seinem Netzteil, daß beim Ausschalten hoch lief> und die 5V weit hinter sich ließ.
So einen ähnlichen Fall hatt ich früher einmal: Ich benutzte ein — wie
sich im Nachhinein herausstellte — minderwertiges Netzgerät, dessen Reg-
ler beim Ausschalten einer Lötstation an der gleichen Steckdosenleiste
einen riesigen Schreck bekommen hat. Das äußerte sich darin, dass erst
der Voltzeiger kurz und kräftig nach oben schnellte, dann der Amperezei-
ger, und dann konnte ich einen Mikroprozessor für 50DM zu Grabe tragen
:-(
Eine darauffolgende eingehende Untersuchung des Sachverhalts zeigte
aber, dass der Fehler nicht dem Prozessorhersteller angelastet werden
konnte ;-)
Seither habe ich nie wieder einen Mikroprozessor/-controller getötet.
Valentin schrieb:> Die, die mich hier als Vollideoten abgestempelt haben, nur weil ich> nicht so gut mit Hardware umgehen kann, werden es noch sehen, was für> ein Tolles, Hilfreiches, und Funktionsfähiges Programm ich da> geschrieben habe.
Das Problem an der Stelle hier ist nur, dass du ja zugibst nicht
sonderlich bewandert zu sein, aber gleichzeitig die Fehler erst mal bei
anderen suchst (Siehe Thread-Titel).
Sowas ist in "diesem Gebiet" eher fehl am Platze und sehr hinderlich,
wenn man eine Schaltung debuggt. Denn da sollte man erst mal anfangen
die Fehler bei selbstgebauten Sachen zu suchen und nicht bei fertigen
ICs.
Als Erstes möchte ich mich bei Allen bedanken, die sich die Zeit
genommen haben, um mir zu helfen. Ich habe Heute etwas Experimentiert,
und das ist dabei rausgekommen.
@Floh, und Marvin M.
Ihr habt Beide recht, als ich AVCC mit der Betriebsspannung verbunden
habe, funktionierte plötzlich PortA als Ausgang!
Ich meine gelesen zuhaben, dass AVCC nur den ADC und AC mit sauberer
Spannung versorgt, und nicht den digitalen PortA.
@Simon K.
Ich habe bereits, weiter oben, zugegeben, dass ich nicht gerade wie ein
Profi aussehe, wenn ich die Schuld auf Andere abschiebe.
Wollt Ihr jetzt bei mir ein Exempel statuieren?
@A. K.
Du wolltest mich dumm aussehen lassen. Du hast es geschaft. Gratuliere.
@Fragezeichen, wirst du mich dann loben?
Bei deinen Kommentaren wird das eh nix...
Ich kann nur sagen, es macht einfach Spaß.
Ich konnte in kürzester Zeit alle möglichen Funktionen
(Spannungsreferenz, Eingangskanal, Ergebnisausrichtung, Triggerquelle,
Vorteiler) ändern, ohne nur eine Zeile Code geschrieben, compiliert, und
übertragen zuhaben. Der ADC funktioniert tadellos. Und sogar
gleichzeitig mit dem Ausgangport A. Schalte ich mit meiner Software z.B.
den AusgangsPinA.0 auf 1, dann messe ich den wert 1023, schalte ich
diesen auf 0, dann messe ich den wert 0.
Danke nochmal an Alle.
Mit freundlichen grüßen.
Valentin
PS: Und ich wollte schon den uC umtauschen!
>@Floh, und Marvin M.>Ihr habt Beide recht, als ich AVCC mit der Betriebsspannung verbunden>habe, funktionierte plötzlich PortA als Ausgang!>Ich meine gelesen zuhaben, dass AVCC nur den ADC und AC mit sauberer>Spannung versorgt, und nicht den digitalen PortA.
Und damit hätte das Thema gestern Abend um 23:55 beendet sein
können. Wer nicht hören will muss fühlen;)
Der Mann ist Anfänger auf dem Gebiet. Freut Euch mit ihm, daß sein
Kontroller elektrisch "überlebt" hat.
Merke: Eine Schaltung, die auf Anhieb funktioniert ist fehlerhaft.
;-)
MfG Paul
Stimmt holger, dich habe ich woll übersehen.
Hier ist der Grund, wieso ich nicht sofort auf dich gehört habe.
Beim m16 von Pollin funktioniert PortA als Ausgang auch wenn man avcc
offen lässt.
Beim m16 von Reichelt funktioniert das nicht ganz.
Was mich noch sehr interessiert, ist.
Wenn man den ADC mit einer Referenzspannung, die kleiner als 2 V ist,
auf dauer betreibt, geht der ADC dann kaputt?
MfG
Valentin
Paul Baumann schrieb:> Der Mann ist Anfänger auf dem Gebiet. Freut Euch mit ihm, daß sein> Kontroller elektrisch "überlebt" hat.
Machen wir doch, ich zumindest freu' mich.
>> Merke: Eine Schaltung, die auf Anhieb funktioniert ist fehlerhaft.
Das ist Ansichtsache... ;-)
>> ;-)> MfG Paul
...