Приколы с SPI на Leonardo
- Войдите на сайт для отправки комментариев
Шалом, делаю штукенцию одну для проектика в шарагу, однако, столкнулся с бедою. Задача этой приблуды это мониторинг RFID и при нахождении совпадения по айдишнику карты вызывать метод эмулирующий клаву и в конце вызвать метод записывающий логи по типу кто и когда контактировал на СД карту. Все модули проверял по отдельности и всё исправно, код компилируется без проблем (выходы CS и SS прописаны), однако устройство ведет себя как человек в коме, вроде живое но не совсем. При этом НЕ МЕНЯЯ прошивку забирая СД модуль начинает работать исправно, но разумеется уже без части СД т.к. его мы отключили.
В наличии:
1. Arduino Leonardo;
2. RFID-RC522;
3. Модуль SD;
4. RTC (DS1307)
Проблема: Подключить их к одному SPI и заставить работать
Код скетча (да, кривовато и есть лишнее, но это следы попыток оживления этой приблуды): https://pastebin.com/w9rtdsr5
Сталкивался.
Глюк модуля RFID.
Тупо CS не отпускает.
Так и как тогда мне его лечить?(
Никак.
Модули такие.
Почитай форумы, может кто то решил.
Натыкался на скетч какого-то идуса где были те же модули и подключени схожим образом, однако, к УНО, а не Лео и вроде как всё работает у него. Искал и прочие скетчи и везде всё четко и только у меня как-то не так.
Натыкался на скетч какого-то идуса где были те же модули и подключени схожим образом, однако, к УНО, а не Лео и вроде как всё работает у него. Искал и прочие скетчи и везде всё четко и только у меня как-то не так.
так оно работает без проблем, если на шине SPI кроме RFID ничего нет:)
а 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
Проблема не в том, что они распаяны под SPI, проблема в том что они распаяны криво и не работают на одной шине с другими SPI устройствами
Так и как тогда мне его лечить?(
Ну можно попробовать подключить его через буффер управляемый CS
Ну можно попробовать подключить его через буффер управляемый CS
можно просто вручную на МК выставлять нужный уровень на CS пине
Но с этими модулями не только c CS проблема, как я помню. Они еще толи MISO, толи MOSI просаживают.
Ну можно попробовать подключить его через буффер управляемый CS
можно просто вручную на МК выставлять нужный уровень на CS пине
Если это глюк модуля, то как выставление CS вручную поможет? Надо MISO/MOSI звавести через буффера, а CS завести на их EN. Ну или просто взять 2И элементы.
Вы правы, беда не только лишь в CS, а также и в MISO.
Итак решение: беда вовсе не в RC522, собака была зарыта в модуле SD, он у меня LVC125A. На этом модуле не отключается MISO при не активном CS. Лечение: Перебить дорожку MISO на платке и кинуть провод напрямую (фото платы и мест переделок приложу). После всех войн с модулями и "украшения" код имеет следующий вид: https://pastebin.com/cyR3LWje . Фото модуля SD где фиолетовое - дрожка которую надо перебить, зеленое - точки куда надо пробросить перемычку : https://yapx.ru/u/QkCkC .
В заключение скажу, что надеюсь мои муки были не напрасны и кому-то когда-то это ещё пригодится.