Forum: Mikrocontroller und Digitale Elektronik Grasshopper ICNOVA mit Opto zum schalten; Pegel kurz LOW beim Initialisieren des GPIO


von Volker J. (Firma: inqbus it-Consulting) (volkerjaenisch)


Angehängte Dateien:

Lesenswert?

Hallo Microcontroller Spezialisten !

Wir haben hier ein ICNova-Board mit dem AVR AP7000. Wir fahren es unter 
linux 2.6.26.
Dieses soll zum Treiben von 24 Schalkanälen verwendet werden, die TTL 
Pegel (3.4V, 0.7 mA) schalten sollen.

Die Schaltung (siehe Anhang) über den Opto ist uns gelungen und 
funktioniert auch.
Wir haben nur ein Problem. Der Standard-Pegel des GPIO nach dem Booten 
ist HIGH (kann man das ändern?).

Initialisieren wir den Port aber :
1
cd /config/gpio
2
mkdir test1
3
cd test1
4
echo "3" > gpio_id
5
echo "0x0f" > pin_mask
6
echo "0x0f" > oe_mask
7
echo "1" > enabled

geht der gpio Pegel kurzzeitig auf Low und unser OPTO schaltet durch.
Dies wollen wir natürlich nicht haben.

* Gibt es eine Möglichkeit dem Controller beizubringen dies nicht zu 
tun?
* Z.B. die Möglichkeit die gpio-Pegel standardmässig auf LOW zu haben?

Wenn es nicht möglich ist die Pegel zu invertieren.
* Wie können wir am einfachsten den kurzen Pegelwechsel HIGH-LOW-HIGH 
kompensieren, dass sie nicht bis zum OPTO durchschlagen.

Wir sind für jede Idee offen.

Beste Grüße

Volker

von Werner B. (werner-b)


Lesenswert?

Da wird euch nichts anderes helfen als ein eigener Kerneltreiber.
Ich habe mir vor einiger Zeit die Implementation für die gpio im Atmel 
AVR32 Kernel angesehen. Zum ein-/ausschalten von bunten LEDs 
geschrieben, da stört solch ein kurzer Pegelwechsel nicht.

von Volker J. (Firma: inqbus it-Consulting) (volkerjaenisch)


Lesenswert?

Danke  Werner B.!

Ich hatte so etwas schon befürchtet. Ich fiel aus allen Wolken als ich 
das festgestellt hatte. So was ist definitiv nicht industrietauglich.

Ich werde mir den Treiber mal anschauen. Vielleicht gibts ja eine 
möglichekeit das zu fixen oder eine neuere Variante. Habe gelesen für 
2.6.27 gibts sowieso eine neue API für GPIO.

Volker

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.