[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;
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) {
case Type::Normal:
decoder_em.process_front(polarity, period);
@ -86,20 +89,9 @@ void RfidReader::start() {
}
void RfidReader::start_forced(RfidReader::Type _type) {
type = _type;
switch(type) {
case Type::Normal:
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;
if(_type == Type::Indala) {
switch_mode();
}
}

View File

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

View File

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