реклама на сайте
подробности

 
 
> Чтение Touch memory (IButton) Help!
opv88
сообщение Apr 3 2009, 16:32
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 3-04-09
Пользователь №: 47 128



Помогите пожалуйста с чтением IButton!
Собираю схему системы доступа на основе Touch Memory (микроконтроллер at89c2051). За основу брал следующие статьи:
1. http://www.ibutton.ru/about/applications/ - применение устройств ibutton
2. http://www.radioland.net.ua/sxemaid-116.html - “Электронный замок с ключами ibutton”
3. Журнал «Схемотехника» №12, 2001
4. Журнал «Радио» №3, 2001
5. Журнал «Радио» №2, 2001

Немного изменил схему электронного замка (добавил MAX232 для связи с COM портом, поменял немного элементов). Реализовал обмен с COM-портом без проблем, но никак не могу считать данные с ds1990A. Пытался найти процедуру для чтения в файлах прошивок исходных статей, но они там громоздкие и в них практически невозможно разобраться такому дилетанту как мне. Симулирую работу микроконтроллера в протеусе. Подскажите, плиз, можно где-нибудь найти отдельно простенькую подпрограмму чтения ibutton на ассемблере? Помогите плиз, уже несколько недель бьюсь над этим вопросом, но никак не получается!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
opv88
сообщение Apr 15 2009, 16:07
Сообщение #2





Группа: Новичок
Сообщений: 9
Регистрация: 3-04-09
Пользователь №: 47 128



Опять таки в коде обозначенном mungo есть процедура считывания:
; Procedures Data_In and TouchByte
;
; The procedure TouchByte sends the byte in the accumulator
; to the Touch Memory, and the procedure Data_In returns a
; byte from the Touch Memory in the accumulator. Note that
; the NOPs in the following code are intended to give the
; optimum performance when using a 11.0592 MHz crystal.
; Their purpose is to make the pulses as long as
; possible consistent with the Touch Memory timing
; constraints. When using other crystal frequencies,
; the delays in this code should be adjusted to conform
; to the timing requirements of the Touch Memory.
BIT_IO:
RRC A ; Get bit to send in carry.
CALL TOUCHBIT ; Send bit.
RLC A ; Collect returned bit in ACC.
RET ; Return to caller.
DATA_IN:
MOV A, #033H ; Initialize for input.
TOUCHBYTE:
PUSH B ; Save the B register.
MOV B, #8 ; Setup for 8 bits.
BIT_LOOP:
RRC A ; 1. Get bit in carry.
CALL TOUCHBIT ; 2. Send bit.
DJNZ B, BIT_LOOP ; 2. Get next bit.
RRC A ; Get final bit in ACC.
POP B ; Restore B register.
RET ; Return to caller.
TOUCHBIT:
CLR DATA_BIT ; 1. Start the time slot.
NOP ; 1. Delay to make sure
NOP ; 1. that the Touch Memory
NOP ; 1. sees a low for at
NOP ; 1. least 1 microsecond.
MOV DATA_BIT, C ; 2. Send out the data bit.
NOP ; 1. Delay to give the
NOP ; 1. data returned from
NOP ; 1. the Touch Memory
NOP ; 1. time to settle
NOP ; 1. before reading
NOP ; 1. the bit.
MOV C, DATA_BIT ; 1. Sample input data bit.
PUSH B ; 2. Save B register.
MOV B, #12H ; 2. Delay until the end
DJNZ B, $ ; 36. of the time slot.
POP B ; Restore B register.
SETB DATA_BIT ; Terminate time slot.
RET ; Return to caller.

Как я понял, здесь:
DATA_IN - запись кода в аккумулятор
BIT_LOOP - посылка этого кода на ibutton
TOUCHBIT - непосредственно прием данных от таблетки
Что же такое BIT_IO и почему эта процедура не работает может кто знает????
Go to the top of the page
 
+Quote Post
Палыч
сообщение Apr 15 2009, 16:48
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(opv88 @ Apr 15 2009, 19:07) *
Что же такое BIT_IO и почему эта процедура не работает может кто знает????
Бегло просмотрел программу... Если не ошибся, то процедура BIT_IO осуществляет вывод и ввод данных: при выводе в аккумуляторе должно лежать выводимое значение; при вводе - в аккумулятор нужно положить FF, а после работы этой процедуры там будет введённое число. Ещё меня смутило количество NOP'ов - каждый NOP при указанной частоте - примерно 1 мкс... Первая задержка - 4 мкс - вроде в норме; вторая - 6 мкс - кажется маловато (нужно свериться с документацией)...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 03:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01899 секунд с 7
ELECTRONIX ©2004-2016