Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.

Themen - wollywell

1
Hardware / RFM12 <--> BETTY
27. Jul 2013, 13:05
Hallo,

ich wollte den RFM12 (an MBED NXP1768) mit der Betty ansteuern,
aber irgendwie krieg ich keine Kommunikation hin.
http://www.mikrocontroller.net/topic/194471 hat mir nicht geholfen, das rfm12 scheint nix zu empfangen ,obwohl ich data whitening ausgeschaltet und den RFM12 auf 19200 Baud gestellt hab.

Kann jemand der die Verbindung geschafft hat da helfen?
RFM12 CONF:
    writeCmd(0x0000); // intitial SPI transfer added to avoid power-up problem
    writeCmd(RF_SLEEP_MODE); // DC (disable clk pin), enable lbd

    // wait until RFM12B is out of power-up reset, this takes several *seconds*
    writeCmd(RF_TXREG_WRITE); // in case we're still in OOK mode

    while (NIRQ == 0)  writeCmd(0x0000);
//my init
    writeCmd(0x80D7); //EL,EF,433band,11.5pF
    writeCmd(0x82D9); //!er,!ebb,ET,ES,EX,!eb,!ew,DC
    writeCmd(0xA514); //433,25 MHz
    writeCmd(0xC611); //19.200 baud
//    writeCmd(0xC647); //4.8kbps
    writeCmd(0xC48C); //VDI,FAST,200kHz Bandbreite, -6dB Verstärkung, DRSSI threshold: -79dBm
//    writeCmd(0x94A0); //VDI,FAST,134kHz,0dBm,-103dBm
    writeCmd(0xC2AC); //AL,!ml,DIG,DQD4
    writeCmd(0xCA81); //FIFO8,SYNC,!ff,DR
    writeCmd(0xC483); //@PWR,NO RSTRIC,!st,!fi,OE,EN
    writeCmd(0x9870); //!mp,120kHz,MAX OUT
//    writeCmd(0x9850); //!mp,9810=30kHz,MAX OUT
    writeCmd(0xE000); //
    writeCmd(0xC800); //
    writeCmd(0xC400); //1.66MHz CLK-Pin,2.2V Battery
    writeCmd(0xCA81); //FIFO initialisieren
    writeCmd(0xCA83); //FIFO aktivieren


betty :
in mainmenu.c
const struct MENU_ENTRY mainMenuEntries[] =
{
   { 0,          (void*)&gamesMenu,   MENUENTRY,   "Games",   "Play some games"   },
   { 0,          (void*)&testMenu,   MENUENTRY,   "TestStuff",   "Various tests"      },
   { enter_settings_menu,   0,         FUNCENTRY,   "Settings",   "Change settings"   },
   { 0,          (void*)&toolsMenu,   MENUENTRY,   "Tools",   "Tools"         },
   { RF_send,      0,         FUNCENTRY,   "RFM12",   "RFM12 Mbed Test"      },
   /*{ RF_send("12345!", 6),      0,         FUNCENTRY,   "RFM12",   "RFM12 Mbed Test"      },*/
   /*{ show_credits,      0,         FUNCENTRY,   "Credits",   "Show Credits"      },*/
   { show_info,      0,         FUNCENTRY,   "Info",   "Show Info"      }
};
in cc1100.c
const unsigned char conf_rfm12[0x2F]={
   0x29,  // IOCFG2
  0x2E,  // IOCFG1
  0x06,  // IOCFG0
  0x47,  // FIFOTHR
  0x2D,  // SYNC1
  0xD4,  // SYNC0
  0x3E,  // PKTLEN
  0x1A,  // PKTCTRL1
  0x05,  // PKTCTRL0         datawhitening aus machen
  0x01,  // ADDR
  0x00,  // CHANNR
  0x06,  // FSCTRL1
  0x00,  // FSCTRL0
  0x10,  // FREQ2    #
  0x0B,  // FREQ1    #
  0xDA,  // FREQ0    # -> 433,249969 MHz
  0x49,  // MDMCFG4
  0x75,  // MDMCFG3
  0x02,  // MDMCFG2
  0x32,  // MDMCFG1
  0xC1,  // MDMCFG0  CHANSPC_M
  0x35,  // DEVIATN
  0x04,  // MCSM2
  0x0C,  // MCSM1 0c
  0x38,  // MCSM0
  0x16,  // FOCCFG
  0x6C,  // BSCFG
  0x43,  // AGCCTRL2
  0x40,  // AGCCTRL1
  0x91,  // AGCCTRL0
  0x46,  // WOREVT1
  0x50,  // WOREVT0
  0x78,  // WORCTRL
  0x56,  // FREND1
  0x10,  // FREND0
  0xA9,  // FSCAL3
  0x0A,  // FSCAL2
  0x00,  // FSCAL1
  0x11,  // FSCAL0
  0x41,  // RCCTRL1
  0x00,  // RCCTRL0
  0x57,  // FSTEST
  0x7F,  // PTEST
  0x3F,  // AGCTEST
  0x98,  // TEST2
  0x31,  // TEST1
  0x0B  // TEST0
};

void RF_send() {
   unsigned char buf[0x06] = "12345!"; 
   int payload_cnt=6;
  switch_to_idle();
  cc1100_strobe(SFTX);
  cc1100_strobe(SCAL);
  cc1100_write1(TX_fifo, payload_cnt+2);
  cc1100_write1(TX_fifo, 1);
  cc1100_write(TX_fifo | BURST, buf, payload_cnt);
  cc1100_write1(TX_fifo, 0x04);
 
  cc1100_strobe(STX);
}

wäre echt um hilfe froh.
wenn ich den menu eintrag aufrufe, erscheint das sendesymbol im display nicht, heißt das , das auch gar nichts gesendet wurde?
Danke,
Thomas
2
Software / Boop Kompilieren unter winarm
19. Mai 2013, 09:56
Hallo,

ich habe wie angegeben winarm Version 20060606 nach c:\winarm entpackt.
auch die libgcc.a ersetzt.

im makefile ist folgendes
...
ARMBASE = /opt/summon-arm-toolchain
INCLUDEPATH = $(ARMBASE)/include
LIBGCCPATH = $(ARMBASE)/lib/gcc/arm-none-eabi/4.7.3/thumb/arm7tdmi-s
LIBCPATH = $(ARMBASE)/arm-none-eabi/lib/thumb/arm7tdmi-s
ARMPATH = $(ARMBASE)/bin
TOOLPREFIX = arm-none-eabi-
LPCTOOL = lpctool
OPENOCD = openocd -f betty.cfg -f interface/parport.cfg
...
die zeilen LIBGCCPATH und LIBCPATH existieren gar nicht und werden in makefile.local (.winarm) nicht ersetzt

habe folgende Fehlermeldungen:

> "make.exe" all
echo -n '#define SVNVERSION 0' > version.h
svnversion -n |cut -f1 -d M -n >> version.h
/usr/bin/sh: svnversion: command not found
echo >> version.h
mkdir -p .deps
mkdir -p adc/.deps
mkdir -p audio/.deps
mkdir -p cc1100/.deps
mkdir -p display/.deps
mkdir -p flash/.deps
mkdir -p games/.deps
mkdir -p gui/.deps
mkdir -p infrared/.deps
mkdir -p interrupt/.deps
mkdir -p keyboard/.deps
mkdir -p rtc/.deps
mkdir -p serial/.deps
mkdir -p timer/.deps
mkdir -p tools/.deps
c:/WinARM/bin/arm-elf-as -mcpu=arm7tdmi-s -D --gstabs -mthumb-interwork -mfpu=softfpa -o crt.o crt.s
c:/WinARM/bin/arm-elf-gcc -mcpu=arm7tdmi-s -Wall -mthumb-interwork -msoft-float -Ic:/WinARM/include -I. -Iinterrupt -Idisplay -Ikeyboard -Iaudio -Iinfrared -Iserial -Iflash -Icc1100 -Igui -Itimer -Igames -Iadc -Irtc  -Itools -Os -c -MMD -MF ./.deps/main.o -o main.o main.c
...
c:/WinARM/bin/arm-elf-gcc -mcpu=arm7tdmi-s -Wall -mthumb-interwork -msoft-float -Ic:/WinARM/include -I. -Iinterrupt -Idisplay -Ikeyboard -Iaudio -Iinfrared -Iserial -Iflash -Icc1100 -Igui -Itimer -Igames -Iadc -Irtc  -Itools -mthumb -c -MMD -MF infrared/.deps/ir_lirc.thumbunopt.o -o infrared/ir_lirc.thumbunopt.o infrared/ir_lirc.c
c:/WinARM/bin/arm-elf-ld -Tlpc2220_rom.ld -Map boop.map -Lc:/WinARM/lib/gcc/arm-none-eabi/4.7.3/thumb/arm7tdmi-s -Lc:/WinARM/arm-none-eabi/lib/thumb/arm7tdmi-s -o boop_rom.elf crt.o main.o global.o buffer.o syscalls.o audio/soundirq.o infrared/infraredirq.o interrupt/irq.o keyboard/keyirq.o serial/serirq.o timer/timerirq.o adc/adc.thumb.o adc/adcirq.thumb.o audio/sound.thumb.o audio/sid.thumb.o cc1100/cc1100.thumb.o cc1100/rf.thumb.o cc1100/fs20.thumb.o display/lcd.thumb.o display/fonty.thumb.o display/drawDigit.thumb.o display/drawIcon.thumb.o display/backlight.thumb.o flash/flash.thumb.o flash/bfs.thumb.o games/gamesmenu.thumb.o games/tic_tac_toe.thumb.o games/sokoban.thumb.o games/connect4.thumb.o gui/menu.thumb.o gui/mainmenu.thumb.o gui/testmenu.thumb.o gui/settingsmenu.thumb.o gui/controls.thumb.o infrared/infrared.thumb.o infrared/codes.thumb.o infrared/encoders.thumb.o infrared/ir_capture.thumb.o infrared/ir_selector.thumb.o keyboard/keyboard.thumb.o rtc/rtc.thumb.o rtc/i2c.thumb.o rtc/rtctimer.thumb.o serial/serial.thumb.o serial/redirector.thumb.o timer/timerfuncs.thumb.o tools/toolsmenu.thumb.o tools/scart_icp.thumb.o infrared/ir_itt.thumbunopt.o infrared/ir_nrc17.thumbunopt.o infrared/ir_raw.thumbunopt.o infrared/ir_rc5.thumbunopt.o infrared/ir_rc6.thumbunopt.o infrared/ir_rca.thumbunopt.o infrared/ir_rcmm.thumbunopt.o infrared/ir_rec80.thumbunopt.o infrared/ir_recs80.thumbunopt.o infrared/ir_rf.thumbunopt.o infrared/ir_sirc.thumbunopt.o infrared/ir_spaceenc.thumbunopt.o infrared/ir_lirc.thumbunopt.o -lc -libgcc.a
c:/WinARM/bin/arm-elf-ld: cannot find -lgcc
make.exe: *** [boop_rom.elf] Error 1

> Process Exit Code: 2
> Time Taken: 00:06

Kann mir bitte jemand sagen wie ich das hinkriege?
an der geänderten Keyboard.h kanns nicht liegen , oder? hab da das #define SWISSCOM verwendet da ich eine solche habe.

Danke,

Thomas