Hallo,
kann mir jemand sagen was da los ist?
Ich habe einen alten Atmega32 mit diesen kann ich ohne Probleme ein LCD
mit meinen eigenen Routinen ansteuern.
Nun hab ich hier ein paar nagelneue Atmegas, welche ich mit dem
identischen Programm wie auf dem alten Atmega bespielt, nur leider
lässt sich das LCD nicht initialisieren.
Hab herausgefunden, wenn ich die Peter Fleury Routinen nehm gehts.
Hab diese Routinen aufgespielt, anschließend wieder gelöscht und meine
eigenen LCD Routinen aufgepsielt.
Und siehe da es funktioniert!?
Ich weiß hier irgendwie nicht weiter?! Woher kommt das und wie kann das
sein?!
Ich habe bemerkt dass die Neuen AVR's immer wieder Probleme machen.
Ich hatte mir einen ATmega8 beim elektronikladen um's Eck gekauft, und
der wollte den Port B einfach nicht ansteuern.
Als ich ihn zurückbrachte, habe ich mit dem Verkäufer alle neuen AVR's
durchgetestet.
Von 20 AVR's hat nur einer keine Fehler gezeigt.
Alle anderen wollten sich entweder nicht programieren lassen, hatten
probleme mit dem internen Rom, gaben beim ADC immer 2FF zurück, oder
hatten andere macken.
So wies aussieht hat Atmel gewaltige Probleme mit seinen AVR's
mfg Sepp
Na ja, das glaube ich nicht so ganz ...
Wir haben hier in den letzten 12 Monaten rund 2.000 Atmels verbaut
(Atmega16, 32 und 64), kaputt war davon kein Einziger.
Gruß, Peter
Könnte es sein, dass Atmel Exemplare aus 'schlechteren' Serien
bevorzugt so verkauft, dass sie an den Kleinkunden gehen, während
Grosskunden von solchen Serien gezielt verschont werden?
Schaltest du die Datenrichtung des Port um, um das Busy Signal von der
LCD zu lesen?
Wenn ja, um einen kompletten Port von zB Input auf Output zu
umzuschalten genuegt es nicht einfach nur das DDR Register
umzuprogrammieren.
>Ich hatte mir einen ATmega8 beim elektronikladen um's Eck gekauft,>und der wollte den Port B einfach nicht ansteuern.>Als ich ihn zurückbrachte, habe ich mit dem Verkäufer alle neuen>AVR's durchgetestet.>Von 20 AVR's hat nur einer keine Fehler gezeigt.
Vielleicht hat der Laden keinen antistatischen Boden?
Ich kann mich an einen Münchner Laden vor etlichen Jahren erinnern,
da schlurften die Verkäufer über den Plastikboden daß es nur so eine
Freude war, griffen mit ihren ungeerdeten Wurstfingern in die
nicht-antistatischen Plastikboxen mit den ICs und steckten sie in die
nicht-antistatischen Plastiktüten.
Den IC den ich damals gekauft hatte funktionierte übrigens auch nicht.
Also dass mit der Statik ist ausgeschlossen.
Dieser Laden ist gleichzeitig eine Reperaturwerkstatt.
Da ist dierekt hinter dem Tresen die Werkbank.
Der Verkäufer und Inhaber ist immer über ein langes Kabel am Arm
geerdet und packt alle Bauteile nie mit den Fingern an.
Er arbeitet nur mit Speziellen Antistatik-Säckchen in die er die Teile
dierekt von der Stange hineinfallen lässt.
Natürlich verpackt er alles einzeln.
Ich vermute dass es Atmel so macht wie es mr. chip geschrieben hat.
mfg Sepp
@Sepp:
Ich habe in den letzten Jahren sicherlich an die 40-50 (oder mehr?)
Atmels der unterschiedlichsten Typen verbastelt (vom AT90S2313 über
4433, Mega-8, Mega-16 bis zum Mega-32) und niemals Probleme gehabt.
Gekauft habe ich sie in Kleinmengen von 5 bis max. 10 Stück. Ganz im
Gegenteil, die Dinger sind für meine Begriffe recht robust und man muss
schon sehr grob mit ihnen umgehen, um sie kaputt zu bekommen.
Vielleicht ist auch Dein Programmer defekt oder hat einen Fehler im
Timing?
Das ursprüngliche Problem von Chris würde ich auch auf Timingprobleme
zurückführen.
Hi thkais
Dass mein Programmer spinnt hätte sein können.
Doch wenn mein Programmer bei den Mikrocontrollern die ich zu Hause
rumliegen habe funktioniert und genau die gleichen Probleme mit dem
Programieradapter vom Geschäftsbesitzer unter Verwendung von 2 PC's
und Verwendung von PonyProg und YAAP auftreten, dann liegt's
höchstwarscheinlich an den Chip's.
Hat es ja auch.
Es hatte sich herrausgestellt dass aus irgend einem Grund µC's
verkauft wurden, die man als Ausschuss aussortiert hatte.
Und ich stimme dir zu.
Dass Problem mit dem LCD dürfte am Timing gelegen haben.
Ich hatte mal dass Problem dass das Timing hart an der Grenze war und
dadurch das Display gesponnen hat, sobald siech die Themperatur
geändert hat.
mfg Sepp
@Peter
NoNa
Ich werde die Datenrichtung auf Ausgang lassen wenn ich einlesen will.
Jetzt aber ernsthaft.
Wieso soll es nicht reichen wenn man in's Datenrichtungsregister die
Datenrichtung einträgt um von Ausgeben auf Einlesen zu schalten?
Erklähre mir bitte etwas näher.
mfg Sepp
Hi Peter
Warum gleich so ausfallend?
Diese Weise der Datenrichtungsänderung ist mir schon seit einiger Zeit
bekannt.
(Ja ich gebe es zu, ich lese die Datenblätter und Beschreibungen
mindestens 1 mal durch bevor ich etwas in Betrieb nehme.)
Es tut mir leid dass ich diese Weise der Richtungsänderung als bekannt
vorrausgesetzt und desswegen nicht ausdrücklich erwähnt habe.
mfg Sepp
Hallo und danke für die rege Diskussion.
Also am Timing kann's doch eigentlich garnicht liegen! Denn wie
gesagt, neuer Atmega -> Code aufgespielt, funzt nicht.
Andere Code aufgespielt -> funzt!
Wieder ersten Code aufgespielt -> funzt jetzt auch wunderbar!
Das Timing wird durch den Code erzeugt, wenn mich nicht alles täuscht,
und hier wurde nichts verändert.