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
Diese "Beispielschaltung" ist in der I2C-Spezifikation von Philips drin: zwei Mosfets. Geht ziemlich einfach.
Hallo Michael, Ich habe den Grasshopper mit einem Tiny24 per I2C verbunden und zwar so,daß der Tiny zwar mit 5 V versorgt war, aber die Pullup Widerstände an 3,3V lagen. Was soll ich sagen, läuft ohne Probleme. Es ist zwar keine sehr gute Lösung, funktioniert aber. Gruß Sebastian
Huhu Sebastian, bist Du so gut evt. den Code fuer mich zu posten (Grasshopper)? Das wuerde mir einiges ersparen, wenn ich ein Anwendungsbeispiel habe. lg, Michael
Hallo Michael, Im Anhang befindet sich mein I2C Versuch ;-) Ich habe es mit i2c-dev gelöst. Ist nichts großes, es wird die Prozessorauslastung ausgelesen und auf ei I2C Display geschickt. Die I2C Geschichte hab ich fest im Kernel drin. Gruß Sebastian
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
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 ;-)
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
Claude, gibt es zu MMC irgendwo eine ausfuehrlichere Doku? Eine wichtige Frage: Welche Geschwindigkeit ist damit moeglich? Mit ein paar Kilo rumknorpsen ist fuer meine Anwendung leider nicht ausreichend! Heisst es im Magazin (falls es denn jetzt erschienen ist) gibt es keine Doku? Gruss, Michael
Also was Du damit sagen wolltest ist "nein", richtig? Das macht Mut...
Michael G. wrote: > Also was Du damit sagen wolltest ist "nein", richtig? Ich will Dir den Downloadlink zeigen. > Das macht Mut... Jep, Mut die Ärmel hochzukrämpeln ;-) Gruß Sebastian
Naja ich will das nich komplett selber implementieren wenn sich jemand schonmal die Arbeit gemacht hat. Wichtig ist halt dass die Geschwindigkeit passt. So SPI-Loesungen usw. kommen nicht in Frage.
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.
Danke soweit. Nochmal kurz zurueck zu meinem Originalanliegen. Man sollte den hopper doch an I2C direkt mit 5V betreiben koennen, oder? Der AP7000 sollte doch 5V-resistent sein? Oder gibt es da anderweitig Probleme?
Ich hab mal bissel gesucht auch im Datenblatt aber was konkretes findet man nicht :( Och da isses ich hab's gefunden: Input High-level Voltage 2.0 VVDDIO+0.3 V So ein Mist aber auch...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.