PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : EEPROM (Tiny13) löscht sich selbst - warum?



DIYLAB
27.05.2006, 08:55
Moin Ihr da draußen,

ich habe ein EEPROM Problem und weiß nicht warum..
Es geht um einfache Fahrtregler für den Modellbau.
Benutzt wird ein Tiny13, der über einen Jumper programmiert werden kann. Der Jumper geht einmal an einen beliebigen Pin des Controllers und verbindet den Pin mit Masse wenn der Jumper gesteckt ist.
Der Pin ist als EIngang geschaltet, mit aktiviertem Pull-up Widerstand.
Ist der Jumper offen und der Controller erkennt beim Programmstart ein HIGH, dann geht der Regler in den Programmiermodus.
In Diesem wird die Nullpunkt- und Vollgasstellung gelernt und im EEPROM des Controllers abgelegt.
Ist der Jumper beim Programmstart gesteckt und der Controller erkennt ein LOW, dann ist er im normalen Betriebsmodus und holt sich die beiden Werte aus dem EEPROM.

Soweit zur Funktion, die auch reproduzierbar zu Hause immer funktioniert. Leider haben mittlerweile bereits 4 User das Problem, dass der Controller die Werte im EEPROM verliert!

Ich kann mir das schlecht erklären, darum meine Bitte an Euch - welche Möglichkeiten gibt es, dass ein MC seinen EEPROM einfach so löscht?

Noch ein paar Infos..
- Der Reset-Pin des Tiny13 ist in diesem Fall komplett abgeschaltet nach dem Programmieren und hat keine weitere Außenbeschaltung.
- Brownout ist ON bei 4V
- Watchdog läuft
- Die beiden Werte werden NICHT in die ersten Speicherzellen des EEPROM geschrieben, sondern in die Mitte des EEPROM.

Kann mir Jemand ein paar Denkanstöße liefern, warum sich das EEPROM löscht?

Viele Grüße,
Bruno

DIYLAB
28.05.2006, 20:06
Moin,

schade. So ein, zwei Denkanstöße hatte ich schon erwartet, aber scheinbar kennt niemand diese Art Problem?
Ich habe beim neuen Layout einen Resetbaustein vorgesehen - mal sehen ob es hilft.

Danke Euch fürs Lesen 8-[

LG,
Bruno

Madgyver
28.05.2006, 20:10
Die ultimative Info wäre natürlich noch Quellcode, ohne kann nicht sagen was falsch läuft. Wenn du den noch zur verfügung stellst wäres das echt super.

Hanni
28.05.2006, 20:27
Mein Tip:

a es sich um Modellbau handelt (in dem Fall ein Fahrtenregler) könnte ich mir durchaus vorstellen, das dieses Problem durch Wechselfelder verursacht wird.
Versuch mal den Tiny abzuschirmen .. oder rück mal mit nen paar mehr details raus ... also z.B. unter welchen Umständen sich der EEPROM löscht.

Grüße,

da Hanni.

DIYLAB
28.05.2006, 22:28
...also z.B. unter welchen Umständen sich der EEPROM löscht.

Moin Hanni,

angeblich soll nach der Programmierung der EEPROM-Inhalt ca. 10 Minuten gehalten werden und ist dann vor dem nächsten Einsatz "verschwunden".
Das heisst, der User programmiert dann in diesem Fall den Fahrtregler vor dem Einsatz neu und fährt los. Das meint zunmindest ein User.
Bis zum Akku-Ende läuft dann das Modell Störungsfrei durch.
Auch ein Reset des MC tritt während dieser Zeit nicht auf.
Meine ersten Versionen mit fester Umsetzungstabelle und nicht programmierbar hatten das gleiche Layout und die MC liefen Störungsfrei.
Deswegen möchte ich die elektromagnetischen Wechselfelder fast ausschließen (primär Bürstenfeuer) - es sei denn, Diese wirken sich wirklich nur auf das EEPROM aus - mhhh?

Die 10 Minuten sollte man nicht zu ernst nehmen, da ich glaube, dass der Effekt beim Ausschalten des MC kommt.

Ich habe hier etwas intesessantes gefunden -> http://www.mikrocontroller.net/forum/read-1-54361.html
Darum probiere ich den Resetbaustein, der dann für definierte Pegel am Reseteingang bringt. Es ist eine 4V Version.
Mal gucken ob es wirkt..

Viele Grüße,
Bruno

E-Fan
29.05.2006, 13:30
So ein ähnliches Problem hab ich mit meinem ATtiny2313 auch. Es betrifft aber kurioser Weise nur eine einzige Speicherzelle des EEproms.
Versuch mal den Controller so gut wie nur irgent möglich von den anderen Verbrauchern zu entkoppeln (Die Aus- und Eingänge über Optokoppler, die Spannungsversorgung zusätzlich durch Dioden etc.)
Ich vermute das im Einschaltmoment Spannungsspitzen auftreten die auf den Controller einstreuen und das eine oder andere Bit manipulieren wodurch der Programmablauf gestört werden könnte.

LuK-AS
29.05.2006, 16:13
Pack da mal einen 100µF Elko und einen 100nF Kerko direkt neben dem AVR an Plus und Minus dranne, damit sind alle Störungen beseitigt die aus dem Netz kommen könnten, den Reset-Pin mit einem 10K Pullup an Plus hängen damit dieser nicht im Betrieb anfängt zu wabbeln. Ich weis jetzt nicht genau ob man beim Tiny in den Fuses diese Option einstellen kann aber da sollte abgeschaltet sein, dass der EEProm beim proggen durch welches Programm (Bascom, C, Pascal) auch immer nicht wieder überschrieben wird. That´s it !

Habe das bei meinen ganzen 7 Prozzis auf meinem SANN5050 auch gemacht, funtz prima mit den EEProm-Daten.

Gruss Clemens

DIYLAB
29.05.2006, 20:30
Pack da mal einen 100µF Elko und einen 100nF Kerko direkt neben dem AVR an Plus und Minus dranne, damit sind alle Störungen beseitigt die aus dem Netz kommen könnten, den Reset-Pin mit einem 10K Pullup an Plus hängen damit dieser nicht im Betrieb anfängt zu wabbeln.

Moin Clemens,

jo - danke!
Anbei mal die alte Version. Da hab ich direkt unter dem MC (also auf dem Bottom-Layer) einen 100n Kerko und ein Stückchen weiter den 100µF Elko. Beim neuen Layout kommt dann noch der Resetbaustein an den Reset-Pin.
Ich frage mich eh, ob es sinnvoll war, den Reset bis jetzt immer abzuschalten - das ist vielleicht nicht so effektiv wie entweder einen 10K nach Plus am Reset oder ein Resetbaustein... denke ich.
Mal sehen - die neuen Platinen kommen in einer Woche, dann bin ich schlauer O:)

http://www.hydroworld.de/forum/7z_top.jpg

http://www.hydroworld.de/forum/7z_bottom.jpg

Viele Grüße,
Bruno