Ik heb een atmel atmega16 aangeschaft. Na wat gepruts had ik hem eindelijk aan de gang met uisp en deze programmer: http://www.captain.at/electronics/atmel-programmer/
Het testprogrammatje voor het ledje heb ik er in kunnen schieten en het werkte. Totdat ik uisp nog een keer draaide om iets te veranderen in de code. Vanaf dat moment doet hij helemaal niets meer
Het ledje knippert niet meer en uisp geeft deze foutmelding:
An error has occurred during the AVR initialization.
* Target status:
Vendor Code = 0xff, Part Family = 0xff, Part Number = 0xff
Probably the wiring is incorrect or target might be `damaged'.
Ik denk dat ik iets fout heb gedaan. In de tussentijd (voor dat hij niets meer deed) had ik nog wat lopen prutsen met de schakeling (breadboard). Weet iemand een manier om te testen of dit ding nog leeft? Of kan ik er vanuit gaan dat het echt over is.
Hoe snel gaat zo'n ding uberhaupt kapot? Reset zonder weerstand met 5V of GND verbinden? Vcc en GND ompolen? IO poorten direct op 5V of GND? Is dit allemaal dodelijk?
Ik heb wel eea. met de kleinere zitten spelen, en die dingen kunnen best een hoop hebben (meer dan ik verwacht had overigens). Ik ben niet zo lomp geweest om de voedingsspanning er verkeerd om op te zetten. Al het andere van wat je opnoemt hoeft niet direct dodelijk te zijn (maar dat betekent niet dat het dat niet is). Nog enige kans op statische electriciteit?
Het is idd echt lomp om de spanning om te draaien... (voor zo ver dat ik het weet heb ik het ook niet gedaan) Waarom doen ze er in godsnaam niet nog een extra diode in die de boel beveiligd?
Omdat er een iemand is die zo dom is de spanning om te draaien? Aan jou verkopen ze weer een nieuwe, in productie (waar ze toch het geld verdienen) gebeurt dat niet zo snel. En anders verkoopt de leverancier toch een hele nieuwe PCB. Levert hem ook weer meer op.
WilToyo
Maak me niet gek, ik ben al gek.
Op 9 november 2005 11:54:26 schreef Metaal:
An error has occurred during the AVR initialization. * Target status: Vendor Code = 0xff, Part Family = 0xff, Part Number = 0xff Probably the wiring is incorrect or target might be `damaged'.Ik denk dat ik iets fout heb gedaan. In de tussentijd (voor dat hij niets meer deed) had ik nog wat lopen prutsen met de schakeling (breadboard). Weet iemand een manier om te testen of dit ding nog leeft? Of kan ik er vanuit gaan dat het echt over is.
Hoe snel gaat zo'n ding uberhaupt kapot? Reset zonder weerstand met 5V of GND verbinden? Vcc en GND ompolen? IO poorten direct op 5V of GND? Is dit allemaal dodelijk?
Reset met GND of VCC verbinden kan geen kwaad.
VCC en GND ompolen heb ik ook weleens gedaan, alleen was dat niet langer dan een seconde, de uC deed het nog steeds!!! (was een ATmega128) IO poorten direct op VCC gaat alleen die poort kapot.
aan de melding te zien is je uC overleden
Marcel
AVR C tutorial http://expand.xs4all.nl/avr
Zoiets is mij ook wel eens overkomen met een AT90S2313. Die bleek in protectie modus gegaan te zijn (lock bits aan). De programmer kan de AVR dan niet meer uitlezen en dus ook niet herkennen. Als dat het geval is kan je dat oplossen door het AVR type te forceren in de programmer en vervolgens de AVR te wissen. Daarna moet die weer uit te lezen zijn. Werkt ook dat niet kan je het nog proberen met een HVP (High Voltage Programming). Dat is o.a. nodig als je de reset pin uitgeschakeld hebt.
Een AVR sloop je niet zomaar, ze zijn vrij robuust. Maar voeding ompolen lijkt me vrij destructief. Een poort kortsluiten (door deze direct aan VCC of GND te hangen) zal waarschijnlijk alleen de betreffende poort opblazen, niet de hele controller. De reset los laten hangen moet gewoon kunnen. De ATmega16 heeft toch een interne pull-up op de reset pin? Een met de reset aan GND doet de controller niets, want je reset hem immers, maar je sloop hem er zeker niet mee.
Bedankt voor de tips Marcel! Ik ga als ik zo thuis ben dat in ieder geval even proberen. Ik hoop dat het daar aan ligt.
Ik heb inmiddels nog een kleine test gedaan: een LED in serie zetten met de voeding van de atmel. Deze gaat (zachtjes) branden, en dat lijkt me geen goed teken. Een atmega16 zou 1.1 mA trekken, en een LED heeft toch 20mA nodig?
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
een led kan tot 20ma hebben , maar de meeste geven bij 1 ma al een beetje lcht hoor. alst een Hief is branden die full power bij 3 milliampere.
ompolen is levensgevaarlijk voor een chip als je geen stroombegrenzing op je voeding hebt. bij experimenteren aan dergelijk prul : zet je stroomlimiet op 50 mA. dan overleven ze ompolen zonder problemen.
er zit een parasitaire thyristor in elke chip ( die krijg je cadeau bij het maken van een chip en kan je er niet uithalen ) bij ompolen slaat die aan en veroorzaakt een kortsluiting. als je daar niet te veel stroom door pompt overleeft de ganse boel.
te veel stroom is gedefinieerd als 'de Die wordt warmer dan 150 graden' dus dat hangt van de verpakking en de grootte van de 'Die' af en de omgevingstemperatuur. als je je vingers er niet aan verbrand is er niks aan de hand .. ( hehe en't rijmt nog ook
)
bij de meeste controllers zitten er currentr limiters op de io poorten. poorten kortsluiten naar grond of voeding zouden ze moeten kunnen overleven ... maar tis in idere geval geen best idee. wat ik wel eens deed bij dergelijk 'experimenteerwerk op breadboard , is een voetje maken met allemaal 220 ohm weerstandjes. alleen de power , ground en crystal aansluitingen gingen rechtstreeks.
als er dan een kritsluiting ontstond was de stroom gelimiteerd tot 25 milliampere , of tussen twee pinnen tot 12,5 milliampere. dus ging er niks kapot , en de 220 stoort in een digitaal systeem niet .
elektron_
beetje gek
Interessante stuf hier.
Stel ik heb een AVR, en ik wil alle poorten testen.
Hoe ga je dan te werk ? ( ik vraag geen programma, wel actieplan)
Waarom ?, ik heb een AVR met 4 verdachte poort-pinnen, Ik plaats een andere en dezelfde poorten werken niet goed.
Maar ik test maar vlug met een Voltmeter en een
pull-up werstand en LCD die de status moet geven.
Maak een looplichtje en hang aan elke output port een LED. Het is niet waterdicht, maar geeft wel een indicatie. [edit]Voor het geval bij iemand dat muntje niet gevallen was: een LED met voorschakelweerstand[/edit]
Voor input: maak een output hoog bij een specifieke input. 1-op-1 doorgeven dus. doe je het precies andersom om de andere helft te testen.
Beiden niet zalig makend, maar wel een redelijke indicatie.
[Bericht gewijzigd door Marco69 op ]
elektron_
beetje gek
Op 9 november 2005 17:39:35 schreef Marco69:
Voor input: maak een output hoog bij een specifieke input. 1-op-1 doorgeven dus. doe je het precies andersom om de andere helft te testen.
Deze laatste is wel een beetje speciaal, maar dat moet lukken ja. Maar ik zou er wel een weerstandje tussen hangen, want stel je heb één kapotte poort en je wil die testen met een andere: heb je er meteen 2 defekte.
Neen, stel dat je wat stoeit met steeds dezelfde chip denk ik dat zo een standaard test printje wel interessant zou zijn. Meteen komt mij de vraag op:
-> kan je midden in een programma een port
als volgt van status doen veranderen ?
Tristate > Output > Tristate > Input
[Bericht gewijzigd door elektron_ op ]
Om nog even terug te komen op het testen met die led in serie met de voeding: ik heb nu (eindelijk!!!) een multimeter gekocht (ik schaam me dood), en heb dus even het verbruik gemeten: 6,5 mA! Veel te hoog dus! Lijkt me dus dat er echt iets stuk is. Alleen ik snap niet goed waarom. Ik had wel even het ompolen genoemd, maar dat is dus hoogstwaarschijnlijk niet gebeurt. Kan statische electriciteit zo'n ding ook makkelijk slopen?
Ik heb ook wel eens problemen gehad met het uitlezen van de device IDs.
Ik had een programma dat de SCK pin aanstuurde (hoog of laag maakte).
Als je dit gelijk doet in je programma dan kun je hem niet meer programmeren. Je moet dan zorgen dat je hem in reset mode opstart en dan voor het programeren zeer kort de reset hoog maakt en dan weer laag om te programeren.
Zie ook dit uit de datasheet omtrent serieel downloaden:
"Apply power between VCC and GND while RESET and SCK are set to 0;. If a crystal is not connected across pins XTAL1 and XTAL2, apply a clock signal to the XTAL1 pin. In some systems, the programmer cannot guarantee that SCK is held
low during Power-up. In this case, RESET must be given a positive pulse of at least two XTAL1 cycles duration after SCK has been set to 0."
Suc6 verder