Probleme mit MIRF Treiber MIRF24port

  • 1
  • 2
  • 3
  • 4
  • Page 2 of 4
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Probleme mit MIRF Treiber MIRF24port

 · 
Posted: 07.02.2010 - 20:09  ·  #9
Hallo WOM,

user Miparo is in charge of finishing and debugging of the MIRF24 and MIRF86.
So I don't know an exact date.

rolf
wom
 
Avatar
 
Subject:

Re: Probleme mit MIRF Treiber MIRF24port

 · 
Posted: 02.12.2010 - 16:49  ·  #10
Hallo Gunter,

anscheinend mache ich da anscheinend einen fehler. mit dem demo sollte doch der mastr ein telegramm an den slave senden. bei mir kommt aber nichts an. ich bekomme im slave nur ein mrfPKTnone. der master sollte auch mit der poll-led antworten. keine ahnung wo der fehler sitzen siollte. kannst du nicht den fehler finden ?

gruß
walter

Code

program WLAN01_M;

{$NOSHADOW}
{ $WG}                     {global Warnings off}

Device = mega32, VCC=5;
Define_Fuses
  Override_Fuses;
  COMport        = USB;
  LockBits0      = [];
  FuseBits0      = [BODEN, BODLEVEL];
  FuseBits1      = [CKOPT];
  FuseBits2      = [];
  ProgMode       = SPI;

Import SysTick, ADCPort, I2Cport, LANport;
Import RTclock;
Import MIRF24port;

From System Import LongWord, LongInt, Float;


Define
  ProcClock      = 16000000;       {Hertz}
  SysTick        = 10;             {msec}
  StackSize      = $0064, iData;
  FrameSize      = $0064, iData;

  ADCchans       = 1, iData;
  ADCpresc       = 128;

  I2Cport        = PortD;
  I2Cdat         = 7;
  I2Cclk         = 6;
  MIRF24port     = SPI_Soft, PortC, 2,   3,    4,    1,  0,  5;
                                // SCK, MOSI, MISO, SS, CE, IRQ
  LANport        = SerPort;
  LANctrl        = PortD, 4;
  LANbaud        = 38400;
  LANmode        = Slave;
  LANadr         = 8;              {8/16 BIT}
  LANframe       = 8, iData;       {Frame size in bytes}
  LANcheck       = ChkSum8;       {ChkSum8, ChkSum16, CRC16}

  RTClock        = iData, Time;    {Time, DateTime}

uses uMIRF24;

Implementation

{$IDATA}

{--------------------------------------------------------------}
{ Type Declarations }

{--------------------------------------------------------------}
{ Const Declarations }

{--------------------------------------------------------------}
{ Var Declarations }
Var
   Poll [@PortB,0]:Bit;
   txBuff             : array[0..31] of byte;
   txString[@txBuff]  : string[30];
   rxBuff             : array[0..31] of byte;
   rxString[@rxBuff]  : string[30];
   rxCnt              : byte;

{--------------------------------------------------------------}
{ functions }

Procedure InitSystem;
Begin
     DDRB    := DDRB Or %00000111;      // Output=1  Input=0
     mrfSetChan(mrfChan9, false);
     mrfSetPower(mrfdBm0);
     mrfSetLocalAddr(0);
     mrfSetRetryMax(10);
     mrfSetRetryTimeOut(4);                          // 5x 250usec -> 1.25msec
     mrfSetRFspeed(mrfRF2000);
     Poll:=False;
     mDelay(250);
End;



{--------------------------------------------------------------}
{ Main Program }
{$IDATA}

begin
     EnableInts;
     InitSystem;
     if mrfInit then
       Loop
         Poll:=True;
         txString:= 'Hello';
         if mrfTxPacket(2, @txBuff, 5, False) then
           Poll:=False;
           mDelay(100);
         EndIf;
         mDelay(2000);
       endloop;
     endif;
end.

Code


program WLAN01_S;

{$NOSHADOW}
{ $WG}                     {global Warnings off}

Device = mega32, VCC=5;
Define_Fuses
  Override_Fuses;
  COMport        = USB;
  LockBits0      = [];
  FuseBits0      = [BODEN, BODLEVEL];
  FuseBits1      = [CKOPT];
  FuseBits2      = [];
  ProgMode       = SPI;

Import SysTick, ADCPort, I2Cport, LANport;
Import RTclock;
Import MIRF24port;

From System Import LongWord, LongInt, Float;


Define
  ProcClock      = 16000000;       {Hertz}
  SysTick        = 10;             {msec}
  StackSize      = $0064, iData;
  FrameSize      = $0064, iData;

  ADCchans       = 1, iData;
  ADCpresc       = 128;

  I2Cport        = PortD;
  I2Cdat         = 7;
  I2Cclk         = 6;
  MIRF24port     = SPI_Soft, PortC, 2,   3,    4,    1,  0,  5;
                                // SCK, MOSI, MISO, SS, CE, IRQ
  LANport        = SerPort;
  LANctrl        = PortD, 4;
  LANbaud        = 38400;
  LANmode        = Slave;
  LANadr         = 8;              {8/16 BIT}
  LANframe       = 8, iData;       {Frame size in bytes}
  LANcheck       = ChkSum8;       {ChkSum8, ChkSum16, CRC16}

  RTClock        = iData, Time;    {Time, DateTime}

uses uMIRF24;

Implementation

{$IDATA}

{--------------------------------------------------------------}
{ Type Declarations }

{--------------------------------------------------------------}
{ Const Declarations }

{--------------------------------------------------------------}
{ Var Declarations }
Var
   Poll [@PortB,0]:Bit;
   txBuff             : array[0..31] of byte;
   txString[@txBuff]  : string[30];
   rxBuff             : array[0..31] of byte;
   rxString[@rxBuff]  : string[30];
   rxCnt              : byte;

{--------------------------------------------------------------}
{ functions }

Procedure InitSystem;
Begin
     DDRB    := DDRB Or %00000111;      // Output=1  Input=0
     mrfSetChan(mrfChan9, false);
     mrfSetPower(mrfdBm0);
     mrfSetLocalAddr(2);
     mrfSetRetryMax(10);
     mrfSetRetryTimeOut(4);                          // 5x 250usec -> 1.25msec
     mrfSetRFspeed(mrfRF2000);
     Poll:=False;
     mDelay(250);
     Poll:=True;
End;



{--------------------------------------------------------------}
{ Main Program }
{$IDATA}

begin
     EnableInts;
     InitSystem;
     Loop
       Poll:=True;
       if mrfInit then
         repeat
         until mrfGetRxType <> mrfPKTnone;
         case mrfRxPacket(@rxBuff, 250, rxCnt) of
            mrfPKTdata  : Poll:=False; mDelay(250);Poll:=True;|
            mrfPKTnone  : Poll:=False; mDelay(10); Poll:=True;|
            mrfPKTbcast : Poll:=False; mDelay(100); Poll:=True;|
         EndCase;
       EndIf;
     endloop;
end.
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Probleme mit MIRF Treiber MIRF24port

 · 
Posted: 02.12.2010 - 20:44  ·  #11
wom
 
Avatar
 
Subject:

Re: Probleme mit MIRF Treiber MIRF24port

 · 
Posted: 02.12.2010 - 21:47  ·  #12
hallo rolf,

ja die von e-lab mirf24

gruß
wom
wom
 
Avatar
 
Subject:

Re: Probleme mit MIRF Treiber MIRF24port

 · 
Posted: 06.12.2010 - 09:52  ·  #13
Hallo Rolf,

ich habe versucht mit dem Demo-Programm in einer Minimalform das ganze zum laufen zu bringen. Ohne Erfolg. Die mrfInit antwortet mit true aber dann geht nichts mehr. Wordann kann es liegen. Deneinzigen Unterschied den ich auf der Platiene habe ist der Port C und nicht der Poer A. Auch verwende ich den MEGA32 mit 16 Mhz.

Gruß
Walter
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 58
Posts: 959
Registered: 09 / 2007
Subject:

Re: Probleme mit MIRF Treiber MIRF24port

 · 
Posted: 06.12.2010 - 10:35  ·  #14
Hallo wom,
ich werde das heute mal testen.
Die Demo's sollten so funktionieren.

Gruß
miparo
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 58
Posts: 959
Registered: 09 / 2007
Subject:

Re: Probleme mit MIRF Treiber MIRF24port

 · 
Posted: 07.12.2010 - 16:47  ·  #15
Hallo wom,
die original Demos funktionieren so bei mir.
Werde Dein Sample mal testen

Code

 repeat
         until mrfGetRxType <> mrfPKTnone;
         case mrfRxPacket(@rxBuff, 250, rxCnt) of
            mrfPKTdata  :
            Poll:=False; mDelay(250);Poll:=True;|
            mrfPKTnone  :
            Poll:=False; mDelay(10); Poll:=True;|
            mrfPKTbcast :
             Poll:=False; mDelay(100); Poll:=True;|
         EndCase;
       EndIf;
     endloop;


Gerade probiert. Master original Demo und Slave Deins.
Antwortet wechsend mit bcast und data.

EDIT:
Brav Deine beiden Progs probiert und der Slave antwortet immer brav mit einem pkdata.



Gruß
miparo
wom
 
Avatar
 
Subject:

Re: Probleme mit MIRF Treiber MIRF24port

 · 
Posted: 07.12.2010 - 20:37  ·  #16
Hallo Miparo,

versuche das Ganze mit 2 neuen MIRF24. Danke für die schnelle Antwort.

Gruß
Wom

Hallo Miparo,

auch mit zwei neuen MIRF24 habe ich keine Erfolg. Die Dinger laufen einfach nicht. Derzeit kann ich nicht sagen, an was es liegt. Kann es sein, dass der Treiber (Compiler 4.99.28) ein Problem mit meiner Applikation hat ?

mega32,
ProcClock = 16000000; {Hertz}
SysTick = 10; {msec}
StackSize = $0064, iData;
FrameSize = $0064, iData;
SPI_Soft,
PortC, 2, 3, 4, 1, 0, 5;

Auf PortC ist beim mega32 der TWI (SCL/SDA) ??
  • 1
  • 2
  • 3
  • 4
  • Page 2 of 4
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   135   149 · Page-Gen-Time: 0.024957s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI