- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 20

Thema: TTL 3,3V an atmega mit 5V (genauer NL552 ETTL)

  1. #11
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.06.2006
    Beiträge
    478
    Anzeige

    Praxistest und DIY Projekte
    @damfino:

    Mit welchem Vorgehen liest du das Modul denn aus? Auf dem Logikanalyzer kann ich wie gesagt alles sehen, nur erfassen klappt einfach nicht. Was ich aktuell versuche ist, das Pattern $GPGGA zu erkennen und dann die Bytes bis zur Ortsangabe zu zählen, und auf einer Segmentanzeige auszugeben. Aber ich bekomme nichts raus.

    Daher die Frage, nach welchem Verfahren dein Code das Modul ausliest.

  2. #12
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.08.2008
    Ort
    Graz
    Beiträge
    521
    Ich hab den Code irgendwo im Internet gefunden und angepasst. Es wird einmal auf ein "$" gewartet, erst wenn das empfangen wird, wird der Header und dann die einzelnen Daten ausgelesen. Dabei wird im Getgps immer bis zu einem bestimmten Symbol ein String zusammengebaut, zB sind die meisten Daten zwischen "," zu finden. Teilweise Suche ich mir auch nur die Vor- oder Nachkommastellen raus weil ich den Rest nicht brauche.


    Hier ein Auszug aus meinem Programm:
    ( GPS() muss regelmäßig, bzw wenn etwas im USART Buffer ist, aufgerufen werden)

    Code:
    /************************* 
    #define maxline	40
    
    char line[maxline]; // global
    
    
    GPS++++++++++++++++++++++++++++++++++++++*/	
    static inline void GPS()
    {
    char x_gps;
    
    x_gps=0;
    		
    	x_gps=USART_Receive(); 
    		if (x_gps=='$')
    		{
      			Getgps(','); //Hole den Header
    		  	if(strcmp(line,"GPGGA")==0) Gps_gga();
    			if(strcmp(line,"GPZDA")==0) Gps_zda();
    		}
    	
    }
    
    /***************Position/Wert vom GPS***********************/
    unsigned char Getgps(unsigned char end)
    {
    unsigned char c,i;
    char komma, stern;
    
    komma = ',';
    stern = '*';
    
     	line[0]=0; 
     	i=0;
    	c=0;
    
     do
      {
     	  c=USART_Receive(); 
     	  if(c==stern) return 0; //Checksumme erreicht
     	  if(c==komma) return i; //Ende eines Wertes erreicht
    	
     	  if(c!=end) //Buchstaben sammeln
     	   {
      	   line[i]=(char)c;
      	   i++;if (i>=maxline-1) {line[0]=0;}
       	   line[i]=0; //End of String updaten
    	   }
    
      }while(c!=end);
    
     return i;
    
    }
    
    
    void Gps_gga()  //$GPGGA Meldung -----------------------------------------
    {
    char num, hdop,empfang;
    char komma,stn, min;
    short x,y;
    char buffer[10];
    short temp;
    
    komma = ',';
    x=0;y=0;
    
    
    
    	satcount=0; //Anzahl benutzter Satelliten
    	num=0;
    	
    
    	// Uhrzeit
     	Getgps('.'); strcpy(zeit,line); zeit[4]=0;// Sekunden raus
    	Getgps(komma); //Rest
    	//Breitengrad
     	Getgps('.'); // Grad und Minuten werden nicht gebraucht
    	num=Getgps(komma); //Nachkommastellen 
    	if(num!=0) {line[4]=0;y=atoi(line);} // nur die ersten 4 Stellen
     	Getgps(komma); // N/S ignorieren
    	//Längengrad
     	Getgps('.'); // Grad und Minuten werden nicht gebraucht
    	num=Getgps(komma); //Nachkommastellen 
    	if(num!=0) {line[4]=0;x=atoi(line);}
     	Getgps(komma); // O/W ignorieren
    
    //	//0=kein Empfang, 1=GPS, 2=DGPS
       num=Getgps(komma);
     //Anzahl benutzter Satelliten
       num=Getgps(komma);
       if(num!=0) { satcount=(unsigned char)atoi(line);}
    
    	//HDOP  Horizontal Dilution of Position
     //	Getgps(',');
     	hdop=9;
    	Getgps('.');
    	hdop=(char)atoi(line);
    
    	
    
    
    }
    LG!
    alles über meinen Rasenmäherroboter (wer Tippfehler findet darf sie gedanklich ausbessern, nur für besonders kreative Fehler behalte ich mir ein Copyright vor.)

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von The Man
    PS.: ich kann leider keine Bilder mehr hochladen, weil ich mein Limit erreicht habe. Wie macht ihr das?
    Ich mit http://www.driveonweb.de/

    Wenn Du Win verwendest kannst Du das sogar enbinsen und wie ein Hartware Laufwerk verwalten inklusive Freigaben u.s.w.

    Mit Linux muss man etwas mehr Handarbeit machen.

    Gruß Richard

  4. #14
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.06.2006
    Beiträge
    478
    Hallo,

    danke für die Hilfe. Was einige geschrieben hatten stimmt. Der Weg 3,3V auf 5V geht ohne Probleme. Die andere Richtung habe ich nicht versucht. Langt für meine Zwecke aber auch.

    Und danke für den Tip mit driveonweb.de

    Greeeeez

  5. #15
    Erfahrener Benutzer Roboter Genie Avatar von oratus sum
    Registriert seit
    25.12.2006
    Ort
    Wien
    Alter
    33
    Beiträge
    1.080
    Blog-Einträge
    1
    Bei meinem BTM (Bluetooth) Modul ist es das selbe Szenario.

    Aushilfe schafft ein 3V zu 5V TTL Wandler mti 4 BC547 Transistoren:

    http://www.techgeek.at/?page_id=119

    Funktioniert bei mir wundschön. Auch mit einem Fastrax IT300 GPS Modul.

  6. #16
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.06.2006
    Beiträge
    478
    oratus sum,

    welche controller hast du denn? Ich benutzte wie gesagt die atmel megas.
    Bei mir hat das ganze jetzt ohne pegelwandler gekleppt, weil der controller ab 0,6*Vcc einen highpegel erkennt.

  7. #17
    Erfahrener Benutzer Roboter Genie Avatar von oratus sum
    Registriert seit
    25.12.2006
    Ort
    Wien
    Alter
    33
    Beiträge
    1.080
    Blog-Einträge
    1
    Ich benutze ebenfalls die AVR Mega. Hier speziell den Mega2560.

    Bei mir hat das nicht geklappt. Beim Bluetooth möchte ich außerdem auch senden, on daher ist es auch bessere für das Modul da es nicht 5v tolerant ist.

  8. #18
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.06.2006
    Beiträge
    478
    @Richard,

    wie kriege ich das bei driveonwb.de hin, dass ich z.B. .txt Files und Codes bereitsstellen kann, ohne dass nach einem Passwort gefragt wird?

    danke,
    The Man

  9. #19
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.06.2006
    Beiträge
    478
    ... nach einem kurzen Mittagsnickerchen sieht die Welt oft einfacher aus => habs gefunden

  10. #20
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2005
    Ort
    Ichtershausen
    Alter
    55
    Beiträge
    148
    Der Weg 3,3V auf 5V geht ohne Probleme. Die andere Richtung habe ich nicht versucht.
    Also wenn ich einen einfachen bidirektionalen Levelshifter zwischen 3,3V und 5V brauche, dann mache ich das so wie in http://www.kip.uni-heidelberg.de/lhc...al/AN97055.pdf auf Seite 10 beschrieben. Klein, gut und billig.

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

12V Akku bauen