[FL-1629] Better RFID writing (#632)

* RFID: ground the antenna when writing
* RFID: forced switch to indala mode
This commit is contained in:
SG 2021-08-09 22:33:13 +10:00 committed by GitHub
parent c799fcf416
commit b8b0417374
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 16 deletions

View File

@ -20,7 +20,10 @@ void RfidReader::decode(bool polarity) {
uint32_t period = current_dwt_value - last_dwt_value; uint32_t period = current_dwt_value - last_dwt_value;
last_dwt_value = current_dwt_value; last_dwt_value = current_dwt_value;
//decoder_gpio_out.process_front(polarity, period); #ifdef RFID_GPIO_DEBUG
decoder_gpio_out.process_front(polarity, period);
#endif
switch(type) { switch(type) {
case Type::Normal: case Type::Normal:
decoder_em.process_front(polarity, period); decoder_em.process_front(polarity, period);
@ -86,20 +89,9 @@ void RfidReader::start() {
} }
void RfidReader::start_forced(RfidReader::Type _type) { void RfidReader::start_forced(RfidReader::Type _type) {
type = _type; start();
switch(type) { if(_type == Type::Indala) {
case Type::Normal: switch_mode();
start();
break;
case Type::Indala:
furi_hal_rfid_pins_read();
furi_hal_rfid_tim_read(62500.0f, 0.25f);
furi_hal_rfid_tim_read_start();
start_comparator();
switch_timer_reset();
last_readed_count = 0;
break;
} }
} }

View File

@ -6,6 +6,8 @@
#include "decoder-indala.h" #include "decoder-indala.h"
#include "key-info.h" #include "key-info.h"
//#define RFID_GPIO_DEBUG 1
class RfidReader { class RfidReader {
public: public:
enum class Type : uint8_t { enum class Type : uint8_t {
@ -26,7 +28,9 @@ private:
friend struct RfidReaderAccessor; friend struct RfidReaderAccessor;
//DecoderAnalyzer decoder_analyzer; //DecoderAnalyzer decoder_analyzer;
//DecoderGpioOut decoder_gpio_out; #ifdef RFID_GPIO_DEBUG
DecoderGpioOut decoder_gpio_out;
#endif
DecoderEMMarine decoder_em; DecoderEMMarine decoder_em;
DecoderHID26 decoder_hid26; DecoderHID26 decoder_hid26;
DecoderIndala decoder_indala; DecoderIndala decoder_indala;

View File

@ -37,6 +37,7 @@ void RfidWriter::start() {
furi_hal_rfid_tim_read(125000, 0.5); furi_hal_rfid_tim_read(125000, 0.5);
furi_hal_rfid_pins_read(); furi_hal_rfid_pins_read();
furi_hal_rfid_tim_read_start(); furi_hal_rfid_tim_read_start();
hal_gpio_write(&gpio_rfid_pull, true);
} }
void RfidWriter::stop() { void RfidWriter::stop() {