- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 7 von 7

Thema: HCS12 & AVISARO WLAN Modul

  1. #1

    HCS12 & AVISARO WLAN Modul

    Anzeige

    E-Bike
    Hallo zusammen,

    hat vielleicht einer von euch Erfahrung mit dem Avisaro WLAN Modul.
    Ich benutze es zusammen mit dem HCS12 in der I2C-Variante.Tja und
    bekomme es aus irgendwelchen Gründen (welche höchstwahrscheinlich
    an mit liegen) nicht hin, das Modul anzusprechen.

    So würde ich gerne etwas vom Modul auslesen:
    Code:
    void wlanreceive(void){
       UINT8 read, ack;
       UINT16 size;
       UINT8 adresse = 73;
       if(iicfailed==0){
     	  startIIC();
       }
       if(iicfailed==0){
          ack=sendIIC(adresse<<1|1);
       }
       if(iicfailed==0){
          size = receiveIIC(ack);
       }
       size <<= 8;
       if(iicfailed==0){
          size |= receiveIIC(ack);
       }
       if(size == 0){
       		   stopIIC();
       }
       if(size == 0xfffff){
       		   stopIIC();
       }
       else{
                 do{
    		     if(iicfailed==0){
          		     read = receiveIIC(ack);
    	             putSCI0(read);
                         }
    	     }while(size != 0);
       stopIIC();
       }
    }
    Jetzt speichere ich die empfangenen Daten nicht in einem Buffer, sondern gebe sie über die serielle Schnittstelle (putSCI()) sofort aus. Geht das überhaupt ? oder ist der Buffer ein muss ! Die Routinen funktionieren alle, ich habe damit auch schon das SRF08 angesprochen.
    Das mit dem Buffer hab ich sowieso nicht ganz gerafft, müsste ich hier ein Array anlegen, also z.B. UINT8 *empfangsBuffer[10];
    Am Anfang würd es mir aber reichen wenn ich überhaupt das Modul über den I2C-Bus ansprechen könnte.

    Ich sach schonmal Vielen Dank im Vorraus

    sneaker

  2. #2
    Gast
    auf den ersten blick: if(size == 0xfffff)...
    UINT16 geht von 0....65535, nicht bis 1048575.
    hätte eigentlich dein compiler anmeckern sollen

  3. #3
    Gast
    vielleicht solltest du noch debug-ausgaben machen wenn size == 0 (modul hat keine daten) oder size == 0xffff (i2c-fehler).

    einen buffer brauchst du nicht unbedingt. das mit dem abholen der daten und direkt an die serielle senden sollte gehen, naja, ich nehme an die sende-funktion sollte nicht zu viel zeit brauchen, aber ich glaube das ist egal.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    17.12.2004
    Ort
    Hannover
    Beiträge
    27
    Die Ansteuerung der I2C Schnittstelle vom Avisaro WLAN Modul ist ganz gut im Dokument (http://www.avisaro.com/download/Avis...rdware_3-0.pdf) beschrieben. Auf Seite 7/8 ist der Ablauf, auf Seite 23 ist Source Code dazu abgebildet ... hoffe dies hilft.

    Gruß, Cols

  5. #5
    Hallo an alle,

    erstmal danke für die Antworten. Der einfach Test aus der Anleitung funktioniert, ich kann also die 4 Bytes auslesen. Problem war das er das
    Modul immernoch ausgelesen hat und auf dem Bildschirm eine 255 bzw.
    den entsprechenden Ascii-Buchstaben gezeigt hat und darin ist das OK erstaml untergegangen.

    Mein nächste Problem ist nun das ich nur einmal die Daten abholen kann, danach geht es erst wieder wenn ich das Programm auf dem Mikrocontroller neustarte. Ich denke das es daran liegt das ich, wenn keine Daten da sind also size==0, ein Stopsignal sende, obwohl ich vorher ein ack gesendet habe.l
    Code:
    ...
      size |= receiveIIC(ack); //Lese und sende ACK
       }
       if(iicfailed==0){
         if(size == 0 || size == 0xffff){
           stopIIC(); //Stoppsignal
    ...
    Also muss ich wohl die Funktion receiveIIC(ack) teilen in I2C_Byte() und I2C_nop().

    Ich hoffe ich liege richtig.

    MfG
    sneaker

  6. #6
    Gast
    das wird es sein. das letzte byte wird ja nicht bestätigt (kein ack, sonst würde das modul eventuell ein byte zuviel schicken). es muß nur die clock-leitung einmal getaktet werden, und danach das stop signal kommen. es ist übrigens gleich, egal ob du nur die anzahl der daten abholst (also nur size) oder size und ein paar daten dazu; beim letzten byte nur einmal clocken, kein ack

  7. #7
    Gast
    Heidiho,

    es funz, ich kann jetzt alle Daten vom Modul über I2C auslesen. Jetzt kommt das senden dran . Danke für die Unterstützung.

    MfG
    sneaker

Berechtigungen

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

12V Akku bauen