- LiFePO4 Speicher Test         
Seite 2 von 19 ErsteErste 123412 ... LetzteLetzte
Ergebnis 11 bis 20 von 183

Thema: Problem Beim Programmieren vom LCD

  1. #11
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    Anzeige

    LiFePo4 Akku selber bauen - Video
    der prozessor hat interne pullups... meine ich mal gehört zu haben. ausserdem geht ja I2C auch mit dem baustein aus dem asurowiki perfekt, und da ja die gleiche bibliothek genutzt wird... und da es ja ansonsten eigentlich auch das gleiche ist, halt dass nicht ausgänge geschaltet werden sonder der displaycontroller angesprochen wird, scheint das kein problem darzustellen.

    hier ist der aktuelle programmcode, den ich mir überlegt habe. zum compilieren ist die i2cmaster lib von peter fleury zu benutzen, auch im asurowiki zu finden. leider scheint das ganze noch nicht so ganz zu funktionieren.

    Code:
    #include <avr/io.h>
    #include "i2cmaster.h"
    #include "asuro.h"
    
    #define Display   0x74      // device address of Display, see datasheet
    
    
    int main(void)
    {
    	int ret=0;
    	Init();
    	i2c_init();
    	Msleep(500);
    	ret = i2c_start(Display+I2C_WRITE); //hier wird der I2C bus gestartet und die adresse
    	if ( ret ) 				//geschrieben
    		{
    		i2c_stop();			//sollte das nicht gehn, wird das programm hier eingefangen
    		StatusLED(RED);
    		while(1);
    		}
    	Msleep(200);
    	i2c_write(0x00);		//controll byte (muss gesendet werden laut datenblatt)
    	Msleep(200);
    	i2c_write(0x2C);		//die nächsten bitfolgen bzw werte sind aus dem daten-
    	Msleep(200);			//blatt kopiert. sollte eigentlich das display
    	i2c_write(0x0E);		//einschalten und den corsur nach oben
    	Msleep(200);			//links setzen.
    	i2c_write(0x06);		//einzige änderung: da nicht dual power sondern
    	Msleep(200);			//single supply genutzt wird (also nur +5V und gnd und nicht
    					//+5V und -5V) habe ich das G-bit auf 1 geändert.
    	while(1);			//weitere infos im datenblatt.
    		
      return 0;
    }
    nur funktionieren tuts leider nich... die langen pausen sind nur vorsichtsmassnamen, können wahrscheinlich auch deutlich kürzer gewählt werden.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  2. #12
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hi,

    die internen Pullups müssen allerdings auch aktiviert werden (indem man den Port auf Eingang schalte, und dann eine 1 an dem Port ausgibt). Ich glaube aber nicht, dass die internen Pullups für den I2C Bus funktionieren.
    (weil die Ports aöls Ein-und Ausgänge benutzt werden). Man sollte also externe Pullups an den I2C Bus anschließen (2 Widerstände 4,7k..10kOhm von SCL und SDA gegen VCC).

    Noch was zur Hardware. Wenn man ADC2 und 3 verwendet, müssen die Fototransistoren des Liniensensor entfernt werden.

    Die Initialisierung des Display Controllers von damaltor sieht erst mal OK aus. Das sollte so klappen.
    Hier gibt es eine Befehlsfolge für die Ansteuerung des PCF2116 Controllers. Das ist zwar ein anderes Display aber derselbe Controller wie im EAT123.
    http://www.woe.onlinehome.de/lcd.htm#i2clcd
    Dort sieht man auch, wie man einen Text zum LCD über I2C senden kann.

  3. #13
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    wo genau sollten die widerstände dann hin? sollten diese nicht schon im display bzw in dessen controller verbaut sein?
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  4. #14
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    Hast du in der i2cmaster.S angegeben, wo SCL und SDA angeschlossen sind?
    Die twimaster darf nicht verwendet werden. Im Makefil muss "ASRC = i2cmaster.S" stehen.

    Die Widerstände kommen zwischen SCL bzw SDA und VCC.

  5. #15
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    im makefile habe ich nix geändert, schliesslich ist ja die i2cmaster.h eingebunden. die entsprechenden ports sind angegeben.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  6. #16
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    zusätzlich zur i2cmaster.h muss man entweder die i2cmaster.S oder die twimaster.c einbinden! In diesem Fall die i2cmaster.S (sonst kommen die Fehlermeldungen aus dem ersten beitrag...)

  7. #17
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    wird nicht die .s in der .h eingebunden? bei mir klappt das kompilieren einwandfrei...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  8. #18
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.12.2006
    Ort
    Saarland
    Alter
    43
    Beiträge
    314
    Hallo
    Danke zuerst mal für die guten antworten allerdings hätte ich da noch ne frage

    Zitat Zitat von m.a.r.v.i.n
    (2 Widerstände 4,7k..10kOhm von SCL und SDA gegen VCC).
    Also brauche ich ein wiederstand von 4,7k ohm und einen von 10kOhm oder sollen die punkte bis heissen 2x 4,7 bis 10k ohm????

    Noch was zur Hardware. Wenn man ADC2 und 3 verwendet, müssen die Fototransistoren des Liniensensor entfernt werden.
    habe ich mit zittriger hand geschafft ohne etwas kaputt zu machen (man hatte ich geschwitzt es zu versauen^^).


    Zitat Zitat von uweg
    Die Widerstände kommen zwischen SCL bzw SDA und VCC.
    VCC soll das VDD sein??? Und SCL bzw SDA zwischen beide oder entweder das eine oder das andere???



    MFG Danjo

  9. #19
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.11.2006
    Ort
    Hamburg
    Alter
    34
    Beiträge
    184
    Hier ne Skizze dazu
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken i_c-lcd-pullup.gif  
    Gruß Raid

    Der ^^ Mann

  10. #20
    Benutzer Stammmitglied
    Registriert seit
    23.05.2006
    Beiträge
    62
    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/...id=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)

Seite 2 von 19 ErsteErste 123412 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad