Forum: Mikrocontroller und Digitale Elektronik AT91SAM9G20 startet nicht mit Pufferbatterie


von ... (Gast)


Lesenswert?

Ich habe ein Board mit einem AT91SAM9G20. Auf diesem Board ist eine 3V 
Batterie, die, wenn sie reingesteckt ist, den 32kHz Oszillator und den 
real time timer weiter laufen lässt. Sinn des ganzen ist, das die 
Software die Uhrzeit auch nach einem Ausfall der Versorgnungsspannung 
behält.

Ich betreibe das Board nicht mit Linux. Ich habe mir einen kleinen 
Bootloader programmiert, der von dem Bootloader im ROM vom NAND Flash in 
den SRAM kopiert und ausgeführt wird. Mein Bootloader initialisiert dann 
den SDRAM und kopiert die eigentliche Firmware vom NAND Flash in den 
SDRAM, initialisiert die MMU, aktiviert den Daten- und Instructioncache 
und springt dann zum Startvektor der Firmware.

Solange ich die Batterie nicht reinstecke funktioniert das alles so wie 
es soll. Mit Backupbatterie verhält sich der Controller irgendwie 
anders. Mein eigener Bootloader wird nicht ausgeführt und im SRAM steht 
nur Müll, wenn ich mich mit JTAG verbinde und den SRAM auslese.
Das Problem ist nur, im Datenblatt steht da nicht viel, außer das in 
diesem Fall ein wake-up reset durchgeführt wird. Kann mir jemand sagen, 
was bei dem wake-up reset anders ist? Es sieht so aus als würde der 
Bootloader im ROM des Controllers, der die Software aus dem NAND Flash 
liest, nicht ausgeführt werden.

von m_oh (Gast)


Lesenswert?

Hallo,

der Post ist zwar schon alt, aber ich wollte mal nachfragen,
ob sich das Problem mittlerweile gelöst hat????

Aktuell hab ich nämlich das gleich Problem.

Kann hier jemand weiter helfen ???

von Hartmut (Gast)


Lesenswert?

Hallo,

ich habe das selbe Problem mit einem AT91SAM9G25,
mit Backup-Batterie bootet dieser nicht wenn die Haupt-Stromversorgung 
zugeschaltet wird, selbst wenn ich die Signale "NRST" oder "WKUP" (beide 
mit 100k Pullup) kurz auf Masse ziehe passiert nichts;
trenne ich die Batterie ab und schalte die Stromversorgung ein dann 
startet das System einwandfrei;
kennt nochjemand das Problem?

Gruß Hartmut.

von Sascha (Gast)


Lesenswert?

Hallo,
warum braucht der Chip beim Kaltstart, also Power On ca. 1 Sekunde zum 
starten und bei gezogenem Reset nur ein paar Milisekunden ?
Ich benutze den 9G10 und ich habe über das Reset Problem einmal eine 
Abhandlung gelesen, kann mich aber nicht mehr an die AppNode erinnern.
Es hing mit dem Spannungsregler und den 2 Reset Eingängen, sowie mit der 
Core und IO Spannung zusammen. Die Core und IO Spannung muss dann mit 
einer gewissen Schaltung zuschalten.
Ich habe das mit der Batt. gleich gelassen und eine externe Epson RTC 
eingesetzt.

Gruß Sascha

von Sascha (Gast)


Lesenswert?

Hallo,
noch ein Nachtrag, hängt am externen BUS ein NAND-Flash dran?
Dann kann es unter umständen passieren, das der BUS blockiert bleibt. 
Rückspannungen von der Batt. auf die Core und IO (BUS-Spannung) prüfen.
Dann bootet der Chip nicht mehr weil der BUS blockiert ist.
Gruß Sascha

von Hartmut (Gast)


Lesenswert?

Hallo zusammen,

ich glaube ich habe eine Lösung gefunden:
bei mir kam die 3.3V für VDDIO später als die VDDCORE, das habe ich 
geändert;
beim EVAL-Board ist es auch so das die 3.3V anliegen und daraus die 
VDDCORE gewonnen wird,
bei mir kommt jetzt auch die VDDCORE erst nach den 3.3V und die Boards 
die vorher verzögert oder garnicht booteten laufen jetzt problemlos;

Gruß Hartmut.

von Sascha (Gast)


Lesenswert?

Hallo Hartmut,
genau das habe ich mit der Powersequence auch gemeint. Am besten ist es 
den VCC-Core Regler nachgeschaltet dem VCC-IO Regler zu setzen, dann ist 
das kein Problem. Mit Syncron Rectifier Reglern dürfte das auch kein 
Problem sein. So habe ich mein Design ganz einfach aufgebaut.
Aber vorsicht, wenn der Reset in einer SDRAM Read-sequence kommt gibt 
der Chip keinen Clock mehr an das SDRAM aus und das SDRAM bleibt auf 
Ausgabe stehen, somit ist der BUS geklemmt. Dann kein Booten mehr über 
diverse Speicher möglich. Also den second Bootloader immer im seriellen 
Flash benutzen.

Gruß Sascha

von Hartmut (Gast)


Lesenswert?

Hallo Sascha,

in dem Chip-Dokument "doc11032.pdf" Kapitel 46.13 gibt es eine Grafik 
mit der Erläuterung das VDDIO nach VDDCORE kommen soll damit POR 
funktioniert,
oder habe ich das falsch verstanden?

Gruß Hartmut.

von Sascha (Gast)


Lesenswert?

Hallo Hartmut,
kann bei atmel das doc11032.pdf leider nicht finden.
Aber wenn durch die VCCIO der Reset gesteuert wird, sollte der Core 
vorher schon startklar sein.
Das hat auch mit dem SDRAM nichts zu tun.
Sondern das mit dem SDRAM ist der zweite Fehler der passieren kann damit 
der Prozessor z.B. durch einen WDT Reset oder auch externen Reset nicht 
mehr bootet.
Ansonsten sind die Chips bis jetzt doch relativ zuverlässig (9G10).

Gruß Sascha

von Hartmut (Gast)


Lesenswert?

Hallo Sascha,

doc11032.pdf ist altes "SAM9G25 Complete", im aktuelle Dokument vom 
AT91SAM9G25 ist es Kapitel
46.15 Power Sequence Requirements:
da steht das VDDCORE und VDDBU den POR steuern,
VDDIO soll nach VDDCORE kommen ?!

mfG Hartmut Dahlke.

von Sascha (Gast)


Lesenswert?

Hallo Hartmut,
danke, ich werde mal Heute Abend mit meinem Speicheroszi die Sapnnungen 
aufnehmen und als Bild einstellen, mal sehen wie das bei mir aussieht. 
Jedenfalls startet der Chip bei mir sehr zuverlässig (ich würde mal 
sagen zu 100%).
Gruß Sascha

von Sascha (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
so anbei wie versprochen die Oszi Bilder der Messungen. Man sieht also 
deutlich die VCC-Core Spannung, die mit 1.2V als erstes vorhanden ist.
Der Reset lässt allerdings eh lange auf sich warten. Da sollte es kein 
Problem geben.
In Abhängigkeit dazu habe ich noch die Anderen Spannungen gemessen.
Die Eingangsspannung ist +24V und geht durch einen Syncronrectifier 
Regler von LT auf 5V runter. Von den 5V geht ein Syncronrectifier Regler 
auf VCC Core 1.2V (TI) und für die VCC IO Spannung ein Syncronrectifier 
von AD.

Gruß Sascha

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
Noch kein Account? Hier anmelden.