I2C am Grasshopper mit 5V

OP Persönliche Seite #904322
Lesenswert?

Hi Forum,

ist es moeglich, durch die 5V-toleranten Eingaenge des AP7000 am 
Grasshopper ein I2C-Device mit 5V anzuschliessen? Ist die Rueckrichtung 
3V3->5V dann ein Problem? Auf dem 5V-System kommt ein Mega8 zum Einsatz.

Wie wuerde man am besten zwischen einem 3V3 und einem 5V-System fuer das 
I2C einen level shifter entwerfen? Vielleicht existiert hierzu irgendwo 
eine Beispielschaltung?

Danke fuer Eure Antworten.

Michael
#904486
Lesenswert?

Daß Du Dir noch ein /dev/i2c-0 erstellen mußt, brauch ich wohl nicht 
sagen, oder ?
Sonst guck mal in der toolchaindoku dev-interface, da ist alles gut 
dokumentiert.

Andere Frage, hast Du schon MMC am laufen ?
Ich hab mir irgendwie eingebildet, daß ein Artikel in Embedded Projects 
Journal darüber erscheinen sollte und hab wie blöd darauf gewartet :-(

Gruß Sebastian
#904559
Lesenswert?

Hallo Sebastian ,
MMC ist ziemlich einfach. Nur die Pins des Sockels 1:1 mit den MCI Pins 
des Grasshopper verbinden, an D0 bis D3 und CMD einen Pullup von ca. 15k 
nach VCC 3.3V . Du musst aber noch im icnova_base.c ein Platform Device 
für das MCI anlegen ( Copy Paste aus dem NGW100 setup.c ) und natürlich 
im Kernel Config das Atmel MCI Interface anschalten.
Ich würde aber mir einen neuen Kernel holen, am besten direkt aus 
Haavard Skinnemoens Git. Bei älternen Kernel gibt es ein Problem mit dem 
DMA Controller.

PS: Würdest Du deinen Tiny24 Code teilen? Bastel gerade an einem NiMh 
Ladecontroller auf Basis Tiny261 rum der mal als Teil eines Grasshopper 
Handhelds dienen soll. Und der USI treibt mich in den Wahnsinn ;-)
#905238
Lesenswert?

Hallo Claude,

Danke für die Tips, es ist nicht so, daß ich nichts probiert hätte ;-)

Ich habe die MMC Slot Verdrahtung 1:1 von NGW100 übernommen, inklusive 
Pullups.
Nur Carddetect und Writeprotect Pins konnte ich so nicht von NGW100 
abkupfern, weil die wohl beim Grasshopper nicht ausgeführt sind :-(
Frage, sind die denn nötig ?
Und wenn ja, in welcher Datei muß ich das ändern ?
Ich hab mir eigentlich alles im Kernels MMC Ordner angeschaut, richtig 
schlau bin ich da nicht geworden.

Mit dem Platformdevice hört sich das gut an, das muß ich mal probieren.
Beim Kernel hab ich den Atmeldevice aktiviert, da sollte es eigentlich 
keine Probleme geben.

Tja, USI I2C habe ich eigentlich von einer Atmel Appnote abgeguckt, es 
ist im Assembler, hilft Dir das ? Wenn ja kann ich Dir gerne was Posten.
 Peter Dannegger hat vor kurzem einen I2C Sniffler gepostet, schau mal 
hier
Beitrag "I2C (TWI) Sniffer" hab selber noch nicht 
geguckt, aber man kennt nur erstklasige Projekte von ihm .

Gruß Sebastian
#905615
Lesenswert?

Das Interface läuft mit bis zu 25MHz und 4bit Parallel. Sollte einiges 
an Datendurchsatz schaffen. Bei mir konnte ich locker MPEG2 Files mit 
dem Mplayer auf dem Grasshopper anschauen. Das Interface unterstüzt auch 
SD-HC und SDIO Karten (WLAN etc), wobei letzteres noch relativ jung im 
Kernel ist und mit dem Atmel_MCI noch nicht richtig laufen soll.
Wichtige Files liegen in :
/build_avr32/linux-XXXX/arch/avr32/boards/icnova .
Das C File icnova_base.c ist für den Grasshopper, Platform Device für 
MCI(SD Interface) kann man sich aus icnova.c rauskopieren. Die Detect 
und Write Protect Pins kann man auf beliebige GPIOs legen , hab sie bei 
mir aber nicht angeschlossen und und im struct deswegen GPIO_PIN_NONE 
zugewiesen.
In der Init Funktion muss natürlich noch at32_add_device_mci rein.
Siehe Docu zu Platform Devices :
linux-XXX/Documentation/driver-model/platform.txt

Hoffe hab jetzt nicht zuviel schwachsinn geschrieben, hab mein Notebook 
mit der Grasshopper Toolchain gerade nicht da und daher alles aus dem , 
morgens um 8 suboptimal funktionierenden, Kopf geschrieben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren