- Labornetzteil AliExpress         
Seite 4 von 6 ErsteErste ... 23456 LetzteLetzte
Ergebnis 31 bis 40 von 54

Thema: Ansteuerung von Funkmodul RFM12

  1. #31
    Benutzer Stammmitglied
    Registriert seit
    29.04.2008
    Beiträge
    49
    Anzeige

    Powerstation Test
    ok ich hab gerad nen bischen rumgetestet mit dem programm und kann nur sagen es verhält sich sehr seltsam

    also ich habe beide pollin boards identisch aufgebaut (brücken setzen auf dem addon board) habe auf beide das programm was ich oben gepostet habe aufgespielt

    sprich sie müssten absolut gleich sein

    naja sie verhalten sich aber unterschiedlich

    am anfang (nachem resetknopf drücken) verhalten sich beide gleich und bis auf die LED an PC2 leuchtet nix
    bei platine 1 leuchtet sie aber nur halb so stark wie bei der 2ten

    so nun gebe ich per hyperterminal einige buchstaben etc an die erste platine: die LED PC2 geht aus und die LED an PC0 geht an und so bleibt es dann auch solange ich nicht den reset knopf drücke egal was ich nun mache
    platine 2 lässt das völlig kalt^^

    so nun wenn ich per hyperterminal buchstaben an platine 2 übergebe:
    auch hier fängt die LED an PC0 an zu leuchten aber die LED an PC2 geht nur halb aus
    dazu kommt dass wenn die platine 1 auf reset steht (sprich PC2 dort halb leuchtet) und ich an platine 2 werte eingebe oder an platine 2 taster drücke oder resette dann flackert die LED an PC2 einmal kurz bei jedem signal

    ok beide platinen haben eine stromquelle was das flackern erklären könnte da es nur bei den LED's vor kommt die halbhell leuchten.


    ich weiß es hört sich nach jede menge zu tun an aber vllt is hie ja noch wer der lust hat sich das mal anzusehen und mir zu helfen
    grüße

  2. #32
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    die standart AVR-Studio compiler funktionieren nicht, auch ein grund warum ich den GCC benutze
    Also Code Vision erzeugt ein .cof File.
    Wenn ich dieses File in AVR Studio einlade und die Taktfrequenz, sowie den Controllertyp einstelle, kann ich den Code Schritt für Schritt im Studio abarbeiten lassen.

    Compilieren kann ich den CodeVision Code mit AVR Studio natürlich auch nicht. Das muß ich machen bevor ich das Studio aufrufe.

    Soweit ich weiß, haben aber die neueren Studio Versionen eine Anbindung an AVR GCC.

  3. #33
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    Also mein Sendeablauf für das RFM02 schaut so aus.

    nSEL auf L
    Das MSB des zu sendenden Wortes auf SDI anlegen.
    CLK setzen und wieder löschen.
    Das nächste Bit auf SDI anlegen
    CLK setzen und wieder löschen
    usw...
    bis alle Bits Übertragen wurden.
    Anschließend nSEL wieder auf H

    Das nächste Konfigurationswort vorbereiten
    nSEL auf L
    ...
    das Spielchen beginnt von vorne.

    Welche Leitungen beim RFM 12 dafür benutzt werden kann ich nicht sagen.

  4. #34
    Benutzer Stammmitglied
    Registriert seit
    29.04.2008
    Beiträge
    49
    das funktioniert bei rfm01 02 und 12 immer gleich

    der 01er und 02er sind sozusagen teilstücke vom 12er

    und der nSEL is bei meinem Controller am Pin namens SS und ich mach das so wie du auch

    die ob die init bei mir aber angenommen wird oder nicht weiß ich nicht

    hmm naja ok montag gehts dann für mich weiter ich hab nun wochenende
    grüße

  5. #35
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    Die Init von meinem RFM 02 schaut so aus:
    Code:
    volatile unsigned char uc_frequ[2]; /* Frequenz tuningword */
        uc_frequ[1]=ui_frequ[uc_kanal]/256;
        uc_frequ[1]|=0b10100000;
        uc_frequ[0]=ui_frequ[uc_kanal]%256;
        /* Configuration Setting: 433MHz, CLK 5MHz, 11,5pf Kapaz., +/-60kHz */
        #asm ("cbi portb,nsel");
        sendbyte(0b10001110);
        sendbyte(0b01100000); 
        #asm ("sbi portb,nsel");
        #asm ("nop");
        
        /* Frequency Setting: eingestellter Kanal*/
        #asm ("cbi portb,nsel");
        sendbyte(uc_frequ[1]);
        sendbyte(uc_frequ[0]); 
        #asm ("sbi portb,nsel");
        #asm ("nop");
        
        /* Output Power Command: Max Power */
        #asm ("cbi portb,nsel");
        sendbyte(0b10110000);
        #asm ("sbi portb,nsel");
        #asm ("nop");
           
        /* Data Rate Command: 2400 bit/s */
        #asm ("cbi portb,nsel");
        sendbyte(0b11001000);
        sendbyte(0b10001111); 
        #asm ("sbi portb,nsel");
        #asm ("nop");
        
        /* Low Batt + Sync Command: enable Sync Circuit */
        #asm ("cbi portb,nsel");
        sendbyte(0b11000010);
        sendbyte(0b00100000); 
        #asm ("sbi portb,nsel");
        #asm ("nop");
        
        /* PLL Setting Command: 0xD240 up to 19,2kbit/s*/
        #asm ("cbi portb,nsel");
        sendbyte(0b11010010);
        sendbyte(0b01000000); 
        #asm ("sbi portb,nsel");
        #asm ("nop");
            
        /* Power Managment Command= Enable Clock; disable Synthesizer; disable pow. Ampl. */
        #asm ("cbi portb,nsel");
        sendbyte(0b11000000);
        sendbyte(0b00100000); 
        #asm ("sbi portb,nsel");
    Das Frequenz Setting Word wird bei mir von einer Tabelle und DIP FIX Schaltern gesteuert.
    Hier die Tabelle:
    Code:
    flash unsigned int ui_frequ[32]={1240,1270,1300,1330,1360,1390,1420,1450,1480,1510,1540,1570,1600,1630,1660,1690,1720,1750,1780,1810,1840,1870,1900,1900,1900,1900,1900,1900,1900,1900,1900,1900};
    Vieleicht hilft Dir das ja weiter.

  6. #36
    Benutzer Stammmitglied
    Registriert seit
    29.04.2008
    Beiträge
    49
    wkrug

    ja in gewisser weise hilft das weiter nur was steht bei dir in der #asm() und in der sendbyte() funktion drin?

    und sbi sowie cbi hab ich nicht zur verfügung. (wobei ich immernoch der meinung bin das ein einfaches ausgang zuweisen den gleichen effekt hat, oder?)

    gruß

  7. #37
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    30
    Beiträge
    656
    Mit
    #define cbi(sfr, bit) sfr &= ~(1 << bit)
    und
    #define sbi(sfr, bit) sfr |= (1 << bit)
    kann man sbi() und cbi() einfach als Makro definieren und wie eine Funktion aufrufen. Wenn man dann zB. sbi(PORTC, 2) schreibt, wird das durch PORTC |= (1 << 2) ersetzt.

  8. #38
    Benutzer Stammmitglied
    Registriert seit
    29.04.2008
    Beiträge
    49
    ja lol. ok also kann ich das auch gleich so lassen wie ich des hab statt sbi und cbi halt PORTx |= (1<<Pxy) für an
    bzw PORTx &= ~(1<<Pxy) für aus

    und genau das tu ich ja auch alles so wies soll, oder? (siehe quellcode oben)
    aber es funktioniert ja nicht.


    achja ich habe gestern gelesesn das solange der nSEL an is (also der SS am Controller) das solange das modul auf stop schaltet weil es sozusagen der befehl für den conntroller is "so jetzt wirst du programmiert!" kann das eins meiner fehler sein (denke mal da sind noch mehr weil irgendwie tut sich garnix hier)

    gruß

  9. #39
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    30
    Beiträge
    656
    Wenn man einen Befehl an das Mudul senden will, muss man es erst aktivieren, in dem man nSEL auf low setzt (also Port am µC löschen).

  10. #40
    Benutzer Stammmitglied
    Registriert seit
    29.04.2008
    Beiträge
    49
    also erst LOW
    dann wieder HIGH
    dann die 2 byte durch jagen
    und dann den nSEL wie LOW

    oder

    LOW
    dann die 2 bytes durchjagen
    dann wieder HIGH

    weil irgendwie is mein nSEL durchgehend high sprich variante 2 würde sinn machen

Seite 4 von 6 ErsteErste ... 23456 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress