kuka_v 0 7 сентября, 2020 Опубликовано 7 сентября, 2020 · Жалоба Пытаюсь оживить Season интерфейс. Это такой эмулятор смарт карты. Ведет он себя ровно как смарт или сим карта. Он вставляется в слот считывателя и после сброса по питанию выдает считавателю ATR ответ и после этого считыватель он же ридер готов общаться с помощью APDU команд. Устанавливается обмен по последовательному порту со скоростью 9600 N-8-1. Season подключает три провода RX TX и Reset. Reset он же сброс по питанию я вижу по прерыванию меняю значение LED на одно их IO портов. А вот дальше я забуксовал. Нужно отправить десяток HEX-ов через порт во временных рамках 40000 циклов, но ридер меня не видет и никак не реагирует. Может у кого остались исходники работы с Season интерфейсом? Или есть идеи как его побороть? Прерывание (P00) запаяно на первую ножку DB9 оно же сброс который от ридера. По прерыванию у меня переключается LED1. Это происходит и когда вставляю в ридер Season и если если задаю reset в программе управления ридером. //----------------------------------------------------------------------------- // MAIN Routine //----------------------------------------------------------------------------- void main (void) { char atr[16] = {0x3B, 0xF7, 0x11, 0x00, 0x40, 0x96, 0x70, 0x70, 0x07, 0x0E, 0x6C, 0xB6, 0xD6}; PCA0MD &= ~0x40; // Disable Watchdog timer Oscillator_Init(); // Initialize the system clock Port_Init (); // Initialize crossbar and GPIO Ext_Interrupt_Init(); // Initialize External Interrupts EA = 1; if(!LED1) { uart_tx(0x3B); uart_tx(0xF7); uart_tx(0x11); uart_tx(0x00); uart_tx(0x40); uart_tx(0x96); } while(1); } // void uart_msg(unsigned char *c) { while(*c != 0) { uart_tx(*c++); } } void uart_tx(unsigned int sdata) { while(!TI0); SBUF0 = sdata; while(!TI0); TI0 = 0; } //----------------------------------------------------------------------------- void INT0_ISR (void) interrupt 0 { LED1 = !LED1; } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Edit2007 3 15 сентября, 2020 Опубликовано 15 сентября, 2020 · Жалоба Цитата PCA0MD &= ~0x40; // Disable Watchdog timer Oscillator_Init(); // Initialize the system clock Port_Init (); // Initialize crossbar and GPIO Ext_Interrupt_Init(); // Initialize External Interrupts А где настройка УАРТ (скорость, четность)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться