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.
Wurstfinger --> Mikrocontroller --> ESD --> Input --> Kaput
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" |
6 | #define F_CPU 8000000UL /* Quarz mit 8 Mhz */ |
7 | #endif |
8 | |
9 | void initIO_Ports(void) |
10 | { |
11 | DDRA = 0; |
12 | PORTA = 0; |
13 | |
14 | DDRB = 0; |
15 | PORTB = 0; |
16 | |
17 | DDRC = 0; |
18 | PORTC = 0; |
19 | |
20 | DDRD = 0; |
21 | PORTD = 0; |
22 | } |
23 | |
24 | void long_delay(uint16_t ms) |
25 | { |
26 | for(; ms>0; ms--) _delay_ms(1); |
27 | } |
28 | |
29 | int main(void) |
30 | { |
31 | uint8_t Port_blinken = 0; |
32 | initIO_Ports(); |
33 | |
34 | for (;;) |
35 | { |
36 | if (Port_blinken == 0) |
37 | { |
38 | Port_blinken = 1; |
39 | |
40 | PORTA = 0xFF; |
41 | PORTB = 0xFF; |
42 | PORTC = 0xFF; |
43 | PORTD = 0xFF; |
44 | } |
45 | else |
46 | { |
47 | Port_blinken = 0; |
48 | |
49 | PORTA = 0; |
50 | PORTB = 0; |
51 | PORTC = 0; |
52 | PORTD = 0; |
53 | } |
54 | long_delay(500); |
55 | } |
56 | return 0; |
57 | } |
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? ...
Das Pseudonym "dunno" ist treffend gewählt ;-) (umgangssprachlich für "don't know") Gruß Gerd
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
@ Hannes
> DDRA = 0;
Vertippt ... Eingang sollte es werden.
dunno.. schrieb: > Oo.. ->als ausgang.. Gut, dann brauche ich meine (humorvoll-ironisch gemeinte) Frage nicht mehr präzisieren... ;-) ...
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.
Hallo, ADC und PortA riechen sehr nach nicht beschaltetem AVCC/AGND. Solange hier kein Schaltplan vom TO gepostet ist, ist alles nur Spekulation.
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.
Wer zweifelt schon gern an der eigen Unfehlbarkeit? fg duck und wech
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 ...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.