Приколы с SPI на Leonardo

KeqpiP
Offline
Зарегистрирован: 10.02.2022

Шалом, делаю штукенцию одну для проектика в шарагу, однако, столкнулся с бедою. Задача этой приблуды это мониторинг RFID и при нахождении совпадения по айдишнику карты вызывать метод эмулирующий клаву и в конце вызвать метод записывающий логи по типу кто и когда контактировал на СД карту. Все модули проверял по отдельности и всё исправно, код компилируется без проблем (выходы CS и SS прописаны), однако устройство ведет себя как человек в коме, вроде живое но не совсем. При этом НЕ МЕНЯЯ прошивку забирая СД модуль начинает работать исправно, но разумеется уже без части СД т.к. его мы отключили. 

В наличии:

1. Arduino Leonardo;

2. RFID-RC522;

3. Модуль SD;

4. RTC (DS1307)

Проблема: Подключить их к одному SPI и заставить работать
Код скетча (да, кривовато и есть лишнее, но это следы попыток оживления этой приблуды): https://pastebin.com/w9rtdsr5

Kakmyc
Offline
Зарегистрирован: 15.01.2018

Сталкивался.
Глюк модуля RFID.
Тупо CS не отпускает.

KeqpiP
Offline
Зарегистрирован: 10.02.2022

Так и как тогда мне его лечить?(

Kakmyc
Offline
Зарегистрирован: 15.01.2018

Никак.
Модули такие.
Почитай форумы, может кто то решил.

KeqpiP
Offline
Зарегистрирован: 10.02.2022

Натыкался на скетч какого-то идуса где были те же модули и подключени схожим образом, однако, к УНО, а не Лео и вроде как всё работает у него. Искал и прочие скетчи и везде всё четко и только у меня как-то не так.

b707
Offline
Зарегистрирован: 26.05.2017

KeqpiP пишет:

Натыкался на скетч какого-то идуса где были те же модули и подключени схожим образом, однако, к УНО, а не Лео и вроде как всё работает у него. Искал и прочие скетчи и везде всё четко и только у меня как-то не так.

так оно работает без проблем, если на шине SPI кроме RFID ничего нет:)

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

а RTC тут причем, он по I2C вроде должен подключатся.

RC522 может общаться по SPI, I2C, UART обычные синие модули с али настроены на спай и переделка их это геморой https://forum.arduino.cc/t/rc522-rfid-rc522-switching-spi-to-uart-interface-or-i2c-possible/425741

есть другие, вот например от рободин, настраивается перемычками  https://aliexpress.ru/item/4000388013167.html

Kakmyc
Offline
Зарегистрирован: 15.01.2018

Проблема не в том, что они распаяны под SPI, проблема в том что они распаяны криво и не работают на одной шине с другими SPI устройствами

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

KeqpiP пишет:

Так и как тогда мне его лечить?(

Ну можно попробовать подключить его через буффер управляемый CS

b707
Offline
Зарегистрирован: 26.05.2017

asam пишет:

Ну можно попробовать подключить его через буффер управляемый CS

можно просто вручную на МК выставлять нужный уровень на CS пине

 

Но с этими модулями не только c CS проблема, как я помню. Они еще толи MISO, толи MOSI просаживают.

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

b707 пишет:

Kakmyc пишет:
Сталкивался. Глюк модуля RFID. Тупо CS не отпускает.

asam пишет:

Ну можно попробовать подключить его через буффер управляемый CS

можно просто вручную на МК выставлять нужный уровень на CS пине

 

Если это глюк модуля, то как выставление  CS вручную поможет? Надо  MISO/MOSI звавести через буффера, а CS завести на их EN. Ну или просто взять 2И элементы.

 

 

 

KeqpiP
Offline
Зарегистрирован: 10.02.2022

Вы правы, беда не только лишь в CS, а также и в MISO.

Итак решение: беда вовсе не в RC522, собака была зарыта в модуле SD, он у меня LVC125A. На этом модуле не отключается MISO при не активном CS. Лечение: Перебить дорожку MISO на платке и кинуть провод напрямую (фото платы и мест переделок приложу). После всех войн с модулями и "украшения" код имеет следующий вид: https://pastebin.com/cyR3LWje . Фото модуля SD где фиолетовое - дрожка которую надо перебить, зеленое - точки куда надо пробросить перемычку : https://yapx.ru/u/QkCkC

В заключение скажу, что надеюсь мои муки были не напрасны и кому-то когда-то это ещё пригодится.