PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Günstiges LCD-Modul mit I2C-Bus für den ASURO



Ronny10
10.02.2007, 11:28
Das war eigentlich meine Antwort auf einen anderen Beitrag hier im Forum. Aber da wahrscheinlich einige User nach einer günstigen Lösung für ein I2C-BUS-Anzeigemodul suchen:

Wer die Anschlüsse ADC2 und ADC3 für einen I2C-Bus verwenden will, sollte sich mal das Schaltbild des ASURO genauer ansehen! Die beiden ADC-Kanäle liegen über 20KOhm Widerstände (R14 und R15) auf Masse (GND). Wenn man, wie es der I2C-Bus erfordert, die Leitungen SDA und SCL über 10KOhm nach VCC (4,8V Versorgungsspannung) legt, baut man damit einen Spannungsteiler auf der die 4,8V an den Leitungen SDA und SCL auf 3,2V reduziert. Damit funktionieren dort angeschlossene Slave-Module nur in Ausnahmefällen! Also R14 und R15 auslöten und dann die Leitungen über 10KOhm mit Vcc verbinden! Ein preisgünstiges LCD mit I2C-Bus gibt es bei roboterteile.de PICAXE-LCD mit RTC (Uhrenbaustein).
http://roboter-teile.de/Shop/themes.....php?artikelid=54&source=2
Das funktioniert 100%tig (verwende ich selbst). Bei diesem Modul sind die Pull-Up-Widerstände für den I2C-Bus schon eingebaut.

Gruß, Peter (Ronny10)

damaltor
10.02.2007, 14:50
hmm... die i2c-erweiterung aus dem asurowiki funktioniert einwandfrei, und zwar offensichtlich bei mehreren leuten. die hat zwar eigene pullups, aber entfernt hab ich auf der platine des asuros nix. warum geht das dann?

edit: dein link geht leider nicht, die punkte in der mitte werden in die adresszeile übernommen.

Ronny10
10.02.2007, 20:07
http://roboter-teile.de/Shop/themes/kategorie/detail.php?artikelid=54&source=2

Der sollte jetzt funktionieren!

@damaltor: Das sollte auch nur ein Hinweis auf
eine mögliche Fehlerquelle sein! Wenn deinem
I2C-Modul die 3,2V reichen, um so besser.

Peter (Ronny10)

damaltor
10.02.2007, 20:20
also ist es einfach so, dass dem baustein das ausreicht, und dass andere da empfindlicher drauf reagieren?

sag mal auf dem datenblatt deines displays steht dass es im i2c modus mehr oder weniger unbrauchbar ist, es wäre nur "a dumb i2c slave" und viele funktionen wären nicht zu nutzen ohne den seriellen anschluss. stimmt das? was hältst du von dem display "LCD03" vom gleichen anbieter? lies mal im datenblatt, ist es wirklich so einfach dass man nur die entsprechenden befehlswerte per i2c an das modul senden muss? denn dann wäre es ja das absolute idealding für den asuro.

Ronny10
10.02.2007, 20:46
Die von mir erwähnten Pull-Down-Widerstände R14 und R15 befinden sich nur auf der modifizierten ASURO-Platine (ASURO-Buch1/Seite 113) an den ADC-Kanälen 2 und 3. Es gibt ja in der Zwischenzeit verschiedene Versionen dieser Platine, das hatte ich nicht erwähnt, sorry.

Zu dem LCD-Modul kann ich nichts nachteiliges sagen. Es funktioniert bei mir als I2C-Slave am ASURO seit ca. 1/2 Jahr einwandfrei. Ich habe es auch wegen der zusätzlichen Echtzeituhr (RTC) genommen die auch über den I2C-Bus erreichbar ist und batteriegepuffert arbeitet.

Peter (Ronny10)

damaltor
10.02.2007, 20:56
hmm das klingt doch gut. aber warum steht das dann so komisch im datenblatt?

und was sagst du zu dem (4zeiligen) lcd direkt drunter in der liste?

Ronny10
11.02.2007, 09:47
Ein wichtiger Entscheidungsgrund war für mich die I2C-RTC und die fehlt (so wie ich das erkenne) bei dem vierzeiligen LCD. Ich betreibe meine Software-I2C an den Pins PB6 und PB7 (Resonator). Den Resonator habe ich entfernt, da ich meinen ATmega8L mit dem internen Oszillator (8MHz) und einem eigenen Bootloader betreibe. Meinen Bootloader kannst du dir beim Henk downloaden.

http://home.planet.nl/~winko001/Asuro/Bootloader/AsuBtlPagFrm.htm

Wenn du den Source-Code für den Bootloader benötigst, kann ich dir die Projekt-Dateien zuschicken. Oder ich könnte Henk bitten die Sourcen zusätzlich auf seiner Seite zu veröffentlichen.

Warum so ein Geheimnis um den originalen Bootloader gemacht wird, kann ich nicht nachvollziehen. Wer sein Produkt mit open source software (WINAVR/GCC) verkauft, sollte diesem Prinzip folgend auch die eigenen Software-Sourcen den Usern zur Verfügung stellen. Was wäre denn das Projekt ASURO ohne die kostenlose Entwicklungsumgebung WINAVR(GCC)? Eine kleine Streifenraster-Platine mit ISP-Adapter für den ATmega8L ist ja schnell aufgebaut und kostenlose Programme zur Programmierung über ISP findet man ja (z.B. PonyProg2000) im Netz. Das Programmierkabel kostet nicht viel und wer selber was basteln will, findet im Netz auch dazu entsprechende Vorschläge.

Sich mit der Programmierung über ISP auszukennen kann auch nicht schaden da, durch den ASURO angeregt, man evtl. mal einen eigenen Roboter aufbauen möchte oder eine andere Schaltung mit Mikrocontroller-Steuerung realisieren möchte. Dann muss man sich zwangsläufig mit dieser Thematik auseinandersetzen da man dann gezwungen ist die FUSE-Bits des ATmega8 oder einem seiner "großen Brüder" entsprechend zu programmieren.

Peter (Ronny10)

damaltor
11.02.2007, 14:05
hmm... naja die uhr ist ein gutes argument =)
das mit dem bootloader ist mir nicht so wichtig, denn ich komme mit dem eingebauten bootloader ganz gut klar. da ich nur mit einem laptop arbeite, der keinen rs232-anschluss hat, bin ich ihnehin auf irgend eine usb-lösung angewiesen, was durch den usb-transceiver recht einfach ist.

raid_ox
11.02.2007, 14:13
ADC2 und 3 als SDA und SCL reicht doch vollkommt, oder?

Es läuft bei mir problemlos ohne jegliche modifikation.

damaltor
11.02.2007, 14:16
ja das reicht. jedoch müssen bei einigen i2c-bausteinen die pulldwon wiederstände r15 und r14 entfernt werden.

raid_ox
11.02.2007, 14:18
echt? hmm, wieso das denn? pcf8574 funktioniert doch ganz prima ohne veränderungen.

was z.B. funktioniert nicht?

damaltor
11.02.2007, 14:27
offensichtlich einige lcd-displays. durch die zusätzlichen widerstände ist die spannung nicht hoch genug auf daten-und taktleitung. anstelle der ~5V kommen nur etwa 3V an. dem PCF8574 ist das egal, anderen teilen scheinbar nicht. theoretisch sind diese beiden widerstände nämlich zwischen den daten-und taktleitungen und GND, werden also dauernd auf low gezogen. i2c-leitungen müssten eigentlich auf HIGH gezogen werden. mit den zusätzlichen pullup-widerständen, die auf der erweiterungsplatine sind, wird die spannung auf etwa 3,2 volt gezogen, was ausreicht. allerdings läuft dauerhaft etwas strom von VCC über die pullups der erweiterung, über die datenöeitung und taktleitung, und dann über die pulldowns der asuro-platine (r15 und 14) zu gnd. also eigentlich ne verlustschaltung =) sie funktioniert bloss weil der pcf das nicht so genau nimmt.

raid_ox
11.02.2007, 14:46
Wieviel spannung hast du auf deinem pcf8574? bei mir 4.5V

EDIT: vielleicht liegt es daran dass du akkus benutzst, ich benutze batterien

damaltor
11.02.2007, 14:48
meinst du auf den datenleitungen, oder an den ausgangspins?

raid_ox
11.02.2007, 14:52
OHA, ich hab auf den datenleitungen sondern nur 2,7V ,noch nicht mal 3 volt!!!

raid_ox
11.02.2007, 14:55
Hey dalmator,

Hast du eigentlich danjo's lcd auch gekauft? Wenn nicht, kauf dir doch einfach ne einfache LCD, wie das hier:
http://www.reichelt.de/?SID=26JQZcYawQARoAAAt7Nls33ec05f1c5f836402b148928 1abf24a2;ACTION=3;LA=4;GROUP=A5211;GROUPID=3005;AR TICLE=31652;START=0;SORT=artnr;OFFSET=1000

und noch ein pcf8574, und baut meine nach. Ich kann es garantieren, dass es 99% funktioniert ^^

damaltor
11.02.2007, 15:00
ich habe noch kein lcd gekauft, bin aber kurz davor mich für dieses hier zu entscheiden:
http://www.roboter-teile.de/Shop/themes/kategorie/detail.php?artikelid=40&source=2
siehe dazu den neuen thread, den ich eben aufgemacht habe.

damaltor
11.02.2007, 15:02
OHA, ich hab auf den datenleitungen sondern nur 2,7V ,noch nicht mal 3 volt!!!

siehst du, das leigt an den beiden widerständen. aber wenn du nur den PCF85754 (heisst der so?) nutzen möchtest, dann ist das eigenlich egal