Forum: Mikrocontroller und Digitale Elektronik persistente GPIO-Konfiguration


von Simon B. (nomis)


Lesenswert?

Hallo allerseits.

Ich suche nach einer Möglichkeit, die Bootpins einer CPU "nachträglich" 
umzukonfigurieren. Eine Möglichkeit wäre ein IC, das eigentlich nicht 
mehr als ein paar bit EEPROM darstellt, und diese auf seinen Anschlüssen 
rausführt.

Eine Overkill-Möglichkeit wäre vermutlich einer von den kleinen AVRs, 
der (unprogrammiert) seine IO-Pins als Eingänge konfiguriert hat, die 
Bootpins können also mit Pullup/downs auf die gewünschte initiale 
Konfiguration gelegt werden. Später kann der AVR dann mit einem 
Minimalprogramm programmiert werden, welches die Pins als Output mit 
konfiguriert und so den Bootmodus der CPU persistent ändern.

Das einzige was hier nicht passt, ist dass ein attiny[4,5,9,10] gerne 
mit 5V programmiert würde, die CPU aber nur 3.3V IO-Pins hat. Wenn da 
jetzt noch Pegelwandler etc. dazwischen müssten, wird es endgültig 
Overkill...

Fallen Euch Alternativen ein? Es muss nicht unbedingt eine reversible 
Lösung sein, obwohl das schick wäre...

Viele Grüße,
        Simon

von Karl H. (kbuchegg)


Lesenswert?

Ich bin nicht sicher, ob ich verstanden habe warum es geht. Aber für 
mich klingt es, also ob du krampfhaft nach einem Ersatz für ein 
Mäuseklavier suchst.
http://produkt.conrad.de/45973183/dil-schalter-10-polig.htm

von Simon B. (nomis)


Lesenswert?

Joh, ein Mäuseklavier, das ich von der CPU aus umschalten kann  :)

Viele Grüße,
        Simon

von Peter D. (peda)


Lesenswert?

Simon Budig schrieb:
> Ich suche nach einer Möglichkeit, die Bootpins einer CPU "nachträglich"
> umzukonfigurieren.

Was sind denn Bootpins?
Was für eine CPU?


Peter

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Simon Budig schrieb:
> Es muss nicht unbedingt eine reversible
> Lösung sein
Hä? DU kannst natürlich einfach eine normale GLassicherung nehmen mit 
möglichst kleinem Auslösestrom, dann einmal vom uC kurzschließen und 
schon hast du dein eigenes EPROM. Wenn du Sicherungshalter nimmst kannst 
du sogar das ganze bei Bedarf "reversibel" machen ;)

von Frank K. (fchk)


Lesenswert?

Simon Budig schrieb:
> Hallo allerseits.
>
> Ich suche nach einer Möglichkeit, die Bootpins einer CPU "nachträglich"
> umzukonfigurieren. Eine Möglichkeit wäre ein IC, das eigentlich nicht
> mehr als ein paar bit EEPROM darstellt, und diese auf seinen Anschlüssen
> rausführt.

Dafür gibt es sogenannte State Saver:

http://de.farnell.com/ramtron/fm1107/fram-state-saver-dual-3v-sot-23/dp/1688863

fchk

von Simon B. (nomis)


Lesenswert?

Erstmal vielen Dank für die Antworten.

Die FRAMs sind cool, Samples sind bestellt   :)
(wobei mich etwas irritiert, dass in den Datenblättern anscheinend nix 
über den Auslieferungszustand des Speichers drinsteht...)

Eine Sicherung ist natürlich auch möglich, allerdings erstaunlich 
teuer...

Um die Frage nach den Bootpins noch zu beantworten:

Es gibt diverse CPUs (Blackfin, diverse ARM-Varianten) die kein Flash 
oder Eeprom enthalten (wie man das z.B. von den AVRs kennt). Damit die 
an ihr Programm/Betriebssystem zum Ausführen kommen, haben die einen 
ROM-Bootloader eingebaut, der z.B. das Programm aus NOR-Flash laden und 
dann anspringen kann. Das muss aber nicht die einzige Möglichkeit sein: 
Es gibt CPUs die von USB, Ethernet, NAND-Flash, etc. pp. booten können.

Der ROM-Bootloader muss irgendwoher die Information bekommen, welche der 
möglichen Optionen er denn nun verwenden soll. Typischerweise gibt es 
für diesen Zweck eine Handvoll von sog. Bootpins, die der Hardwerker auf 
einen definierten Pegel legt und damit festlegt, dass die CPU z.B. aus 
dem NAND booten soll.

Wenn das System also aus dem NAND booten soll und man die Pins 
entsprechend konfiguriert, hat man ein Problem: wie kriegt man ein 
initiales System auf die Hardware? Entweder man kauft vorprogrammiertes 
NAND oder man bespielt das System via JTAG o.ä. Beide Optionen haben 
ihre Lästigkeiten.

Wenn man die Bootpins aber so gestaltet, dass die einmal umkonfiguriert 
werden können, könnte man die Hardware so (fertig) bauen, das Gerät 
einmal an z.B. Ethernet anschließt, die CPU in ein Spezialprogramm 
bootet, welches (auch wieder fix über Ethernet) das eigentliche 
Betriebssystem ins NAND flasht und anschließend die Bootpins 
umkonfiguriert. Dann ist das System fertig und kann nicht mehr "aus 
Versehen" neu geflasht oder gar gebrickt werden, weil zufällig im 
Netzwerk ein Bootserver was halbwegs passendes liefert...

Viele Grüße,
         Simon

von Stefan Kunz (Gast)


Lesenswert?

Also wenn du so vorgehen willst, kannst du auch gleich das Programm über 
Jtag in den Nand schieben, da ich keinen Chip kenne, der einen 
eingebauten Bootloader über Ethernet hat. Und wenn du über Ethernet 
flashen willst, mußt du das Programm auch erstmal da reinbekommen, also 
wofür doppelten aufwand betreiben? nebenei kannste auch einfach PullUp 
Widerstände nehmen und die bei Bedarf rein und raus löten.

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.