Hallo Leute.
Ich teste gerade mal mit dem Mirf86 Treiber. Ich möchte diesen als reinen CoPro für die AES-Verschlüsselung nutzen.
Im Handbuch steht leider keine Info über "function mrf86AesAction(SrcPtr : Pointer; Cnt : byte; AESMode : tmrf86AesMode) : Boolean;"
Wenn ich nach dem Beispiel-Init im DEMO-S und -M gehe:
mrf86SetChan(mrf86Chan11, false); // channel 11
mrf86SetPower(mrf86dBm3P0); // 3dBm output = 2mW
mrf86SetLocalAddr($04); // device address in the PAN
mrf86SetPANAddr($02); // main address in the channel
mrf86SetRetryMax(6); // max 6 retries
// mrf86SetSpeed(mrf86S250,false);
mrf86SetSpeed(mrf86S2000, false); // 2Mbit/sec
if not(mrf86Init) then
Writeln(serout, 'MIRF86 Init Error !!');
Loop
BeepSiren(10, 1);
mDelay(1000);
endloop;
endif;
Writeln(serout, 'MIRF86 TX start' + #10 + #10);
// Key only after MIRFInit
mrf86SetKey(15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, $FF);
Ich schalte doch damit entsprechend den Funkteil mit dem INIT ein!
Aber das will ich ja nicht, mit welchen Werten wird der Treiber bei einem INIT OHNE die Funkparameter gestartet?
Beispiel:
if not(mrf86Init) then
Writeln(serout, 'MIRF86 Init Error !!');
Loop
BeepSiren(10, 1);
mDelay(1000);
endloop;
endif;
Writeln(serout, 'MIRF86 TX start' + #10 + #10);
// Key only after MIRFInit
mrf86SetKey(15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, $FF);
Normalerweise müsste ich doch die State Control Command Register (TRX_CMD) auf 0x03 "Force_TRX_OFF" setzen.
Laut Datenblatt befindet sich doch der CHIP bereits im "Receiver Mode" RX_ON, das will ich aber gar nicht. Wie kann ich das im Treiber von Miparo verhindern oder wird es bereits beim Init verhindert?
@Miparo:
Hast Du das in Deinem Treiber berücksichtigt: "Using AES in TRX_OFF state requires an activated clock at pin 17 (CLKM), i.e. register bits
CLKM_CTRL!= 0." Der Init Wert im Chip ist sowieso "1" somit würde er automatisch 1MHz an diesen Pin rausgeben. Hast Du den in Deinem Treiber abgeschaltet um evtl. Strom zu sparen?
Wie stellst Du fest, das der INIT nicht geklappt hat? Bei meinem Test (MIRF86-M) mit dem MIRF86-Modul von eLab erhalte ich IMMER ein "MIRF86 InitError", ich dachte erst es würde an meinem Board liegen, ist aber auch bei dem Board von ELab.
Hier meine Portbelegung:
// MIRF AES Engine
MIRF86port = SPI_Soft, PortC.0, PortC.1, PortC.2, PortC.3, PortC.4, PortE.4;
// SCK, MOSI, MISO, SS, CE, IRQ
Gruss
Thorsten
Ich teste gerade mal mit dem Mirf86 Treiber. Ich möchte diesen als reinen CoPro für die AES-Verschlüsselung nutzen.
Im Handbuch steht leider keine Info über "function mrf86AesAction(SrcPtr : Pointer; Cnt : byte; AESMode : tmrf86AesMode) : Boolean;"
Wenn ich nach dem Beispiel-Init im DEMO-S und -M gehe:
Code
mrf86SetChan(mrf86Chan11, false); // channel 11
mrf86SetPower(mrf86dBm3P0); // 3dBm output = 2mW
mrf86SetLocalAddr($04); // device address in the PAN
mrf86SetPANAddr($02); // main address in the channel
mrf86SetRetryMax(6); // max 6 retries
// mrf86SetSpeed(mrf86S250,false);
mrf86SetSpeed(mrf86S2000, false); // 2Mbit/sec
if not(mrf86Init) then
Writeln(serout, 'MIRF86 Init Error !!');
Loop
BeepSiren(10, 1);
mDelay(1000);
endloop;
endif;
Writeln(serout, 'MIRF86 TX start' + #10 + #10);
// Key only after MIRFInit
mrf86SetKey(15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, $FF);
Ich schalte doch damit entsprechend den Funkteil mit dem INIT ein!
Aber das will ich ja nicht, mit welchen Werten wird der Treiber bei einem INIT OHNE die Funkparameter gestartet?
Beispiel:
Code
if not(mrf86Init) then
Writeln(serout, 'MIRF86 Init Error !!');
Loop
BeepSiren(10, 1);
mDelay(1000);
endloop;
endif;
Writeln(serout, 'MIRF86 TX start' + #10 + #10);
// Key only after MIRFInit
mrf86SetKey(15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, $FF);
Normalerweise müsste ich doch die State Control Command Register (TRX_CMD) auf 0x03 "Force_TRX_OFF" setzen.
Laut Datenblatt befindet sich doch der CHIP bereits im "Receiver Mode" RX_ON, das will ich aber gar nicht. Wie kann ich das im Treiber von Miparo verhindern oder wird es bereits beim Init verhindert?
@Miparo:
Hast Du das in Deinem Treiber berücksichtigt: "Using AES in TRX_OFF state requires an activated clock at pin 17 (CLKM), i.e. register bits
CLKM_CTRL!= 0." Der Init Wert im Chip ist sowieso "1" somit würde er automatisch 1MHz an diesen Pin rausgeben. Hast Du den in Deinem Treiber abgeschaltet um evtl. Strom zu sparen?
Wie stellst Du fest, das der INIT nicht geklappt hat? Bei meinem Test (MIRF86-M) mit dem MIRF86-Modul von eLab erhalte ich IMMER ein "MIRF86 InitError", ich dachte erst es würde an meinem Board liegen, ist aber auch bei dem Board von ELab.
Hier meine Portbelegung:
Code
// MIRF AES Engine
MIRF86port = SPI_Soft, PortC.0, PortC.1, PortC.2, PortC.3, PortC.4, PortE.4;
// SCK, MOSI, MISO, SS, CE, IRQ
Gruss
Thorsten