Flipper Developer Docs
Loading...
Searching...
No Matches
em4305.h
1
#pragma once
2
#include <stdint.h>
3
#include <stdbool.h>
4
5
#ifdef __cplusplus
6
extern
"C"
{
7
#endif
8
9
// EM4305/4205 chip config definitions, thanks proxmark3!
10
#define EM4x05_GET_BITRATE(x) ((((x) & 0x3F) * 2) + 2)
11
// Note: only data rates 8, 16, 32, 40(*) and 64 are supported. (*) only with EM4305 330pF
12
#define EM4x05_SET_BITRATE(x) (((x) - 2) / 2)
13
#define EM4x05_MODULATION_NRZ (0x00000000)
14
#define EM4x05_MODULATION_MANCHESTER (0x00000040)
15
#define EM4x05_MODULATION_BIPHASE (0x00000080)
16
#define EM4x05_MODULATION_MILLER (0x000000C0)
// not supported by all 4x05/4x69 chips
17
#define EM4x05_MODULATION_PSK1 (0x00000100)
// not supported by all 4x05/4x69 chips
18
#define EM4x05_MODULATION_PSK2 (0x00000140)
// not supported by all 4x05/4x69 chips
19
#define EM4x05_MODULATION_PSK3 (0x00000180)
// not supported by all 4x05/4x69 chips
20
#define EM4x05_MODULATION_FSK1 (0x00000200)
// not supported by all 4x05/4x69 chips
21
#define EM4x05_MODULATION_FSK2 (0x00000240)
// not supported by all 4x05/4x69 chips
22
#define EM4x05_PSK_RF_2 (0)
23
#define EM4x05_PSK_RF_4 (0x00000400)
24
#define EM4x05_PSK_RF_8 (0x00000800)
25
#define EM4x05_MAXBLOCK_SHIFT (14)
26
#define EM4x05_FIRST_USER_BLOCK (5)
27
#define EM4x05_SET_NUM_BLOCKS(x) \
28
(((x) + 4) << 14)
// number of blocks sent during default read mode
29
#define EM4x05_GET_NUM_BLOCKS(x) ((((x) >> 14) & 0xF) - 4)
30
#define EM4x05_READ_LOGIN_REQ (1 << 18)
31
#define EM4x05_READ_HK_LOGIN_REQ (1 << 19)
32
#define EM4x05_WRITE_LOGIN_REQ (1 << 20)
33
#define EM4x05_WRITE_HK_LOGIN_REQ (1 << 21)
34
#define EM4x05_READ_AFTER_WRITE (1 << 22)
35
#define EM4x05_DISABLE_ALLOWED (1 << 23)
36
#define EM4x05_READER_TALK_FIRST (1 << 24)
37
#define EM4x05_INVERT (1 << 25)
38
#define EM4x05_PIGEON (1 << 26)
39
40
#define EM4x05_WORD_COUNT (16)
41
42
#define EM4x05_OPCODE_LOGIN (0b001)
43
#define EM4x05_OPCODE_WRITE (0b010)
44
#define EM4x05_OPCODE_READ (0b100)
45
#define EM4x05_OPCODE_PROTECT (0b110)
46
#define EM4x05_OPCODE_DISABLE (0b101)
47
48
typedef
struct
{
49
uint32_t word[EM4x05_WORD_COUNT];
50
uint16_t
mask
;
51
}
LFRFIDEM4305
;
52
57
void
em4305_write(
LFRFIDEM4305
* data);
58
59
#ifdef __cplusplus
60
}
61
#endif
LFRFIDEM4305
Definition
em4305.h:48
LFRFIDEM4305::mask
uint16_t mask
Word mask.
Definition
em4305.h:50
lib
lfrfid
tools
em4305.h
Generated by
1.12.0