Сообщение от Mike_ELC
|
Уважаемый tvilsa
Вопросы у меня примерно такие:
- в микроконтроллере Вы использовали стандартный USART?? Я вроде в документации читал что у микросхемы start bit и sop bit обратные стандарту USART...
- если в микроконтроллере использовался аппаратный USART, то по какому протоколу Вы общались с ПК? Если вообще общались...
- и изучив документацию я понял что микросхема сама прерывании не генерит, когда карточка в зоне действия антенны появлятся... то есть только по запросу от микроконтроллера... так ли это? и что будет тогда если сформировать запрос без карточки? данные приходят нулевые? или возвращается ошибка?
|
итак по порядку:
1. в контроллере использовал стандартный USART для общения с ридером на скорости 15625. В ридере не старт стоп перевернуты, а данные из карты передаются с инверсией битов. т.е. если в карте например 0xFF то передастся 0x00. А старт стоп стандартный. Более того я даже и не заморачивался с этой инверсией. Какая разница четам как инвертируется. Я читаю идентификатор в комп и забиваю его потом в контроллер и все.
С ПК я общался через МК на скорости 56000. Весь прикол в том что я пытался общаться с ридером напрямую на скорости 15625. В ответ приходят много байт (оказалось что комп на может работать на скоростях отличных от стандартных (спасибо товарищам с этого форума померяли и сказали)).
Поэтому пришлось выкручиваться так :
МК выставляет скорость 15625, читает ридер, заносит в массив, выставляет 56000 и выдает в комп.
2. ридер ничего не генерит сама только по запросу от МК. Если карты нет то возвращает только один диагностический байт о состоянии антены.
Удачи.