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

 
 
 
Reply to this topicStart new topic
> DS1990 + DS2480B, Не считывается ROM ID DS1990
junkl
сообщение Nov 13 2007, 14:08
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539



Использую DS2480B для считывания электронного ключа DS1990.
Делаю последовательность считывания ROM ID как сказано в описании DS2480B:
1) master reset cycle - передаю 0 на скорости 4800
2) меняю скорость USART на 9600
3) передаю произвольный байт 01h (т.к. в в даташите написано, что на 1-й байт после master reset cycle ответа не будет, и это правда)
4) посылаю команду reset С1h
- при отсутсвии контакта ключа с контактором в ответ получаю CFh
- при поднесенном ключе к контактору получаю CDh (presence pulse)
5) передаю команду E1h для перехода в режим данных, в ответ ничего не получаю
6) передаю команду 33h - чтение ROM
- в ответ получаю 33h
7) передаю 8 раз FFh
- на каждый FF получаю в ответ тоже FFh, а должна получать ROM ID ключа!

В чем может быть проблема? Подскажите, пожалуйста! Уже несколько дней с этим ключом мучаюсь, а он не читается 05.gif
Go to the top of the page
 
+Quote Post
Glupen'
сообщение Nov 13 2007, 14:28
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 78
Регистрация: 23-05-07
Пользователь №: 27 918



Плохо читали документацию.

1. годится.
2. usart контроллера на 9600 - пойдет
3. передаю произвольный байт 01h (т.к. в в даташите написано, что на 1-й байт после master reset cycle ответа не будет, и это правда)
А ЭТО ВЫ ГДЕ ВЗЯЛИ?

цитата доки:

A master reset cycle can also be generated by means of software. This may be necessary if the host for
any reason has lost synchronization with the device. The DS2480B will perform a master reset cycle
equivalent to the power-on reset if it detects start polarity in place of the stop bit. The host has several
options to generate this condition. These include making the UART generate a break signal, sending a
NULL character at a data rate of 4800bps and sending any character with parity enabled and selecting
space polarity for the parity bit. As with the power-on reset, the DS2480B requires a 1-Wire reset
command sent by the host at a data rate of 9600bps for calibration.

не 01h надо передавать, a команду 1-wire сброса: 0b110XSS01, где X-не важно, SS - выбор скорости 1-wire. именно по этому байту DS2480 калибрует свою скорость порта на 9600.

Пробуйте
Go to the top of the page
 
+Quote Post
junkl
сообщение Nov 13 2007, 19:51
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539



Цитата(Glupen' @ Nov 13 2007, 17:28) *
Плохо читали документацию.

1. годится.
2. usart контроллера на 9600 - пойдет
3. передаю произвольный байт 01h (т.к. в в даташите написано, что на 1-й байт после master reset cycle ответа не будет, и это правда)
А ЭТО ВЫ ГДЕ ВЗЯЛИ?

цитата доки:

A master reset cycle can also be generated by means of software. This may be necessary if the host for
any reason has lost synchronization with the device. The DS2480B will perform a master reset cycle
equivalent to the power-on reset if it detects start polarity in place of the stop bit. The host has several
options to generate this condition. These include making the UART generate a break signal, sending a
NULL character at a data rate of 4800bps and sending any character with parity enabled and selecting
space polarity for the parity bit. As with the power-on reset, the DS2480B requires a 1-Wire reset
command sent by the host at a data rate of 9600bps for calibration.

не 01h надо передавать, a команду 1-wire сброса: 0b110XSS01, где X-не важно, SS - выбор скорости 1-wire. именно по этому байту DS2480 калибрует свою скорость порта на 9600.

Пробуйте


Дело в том, что я так сначала и пробовала - не посылала никакого байта после master reset cycle. И в результате на команду сброса С1 (0b110XSS01) вообще не получала никакого ответа. Зависала в ожидании приема хоть какого-нибудь байта по usart. Долго мучалась, читала документацию и вычитала там фразу, которую перевела на русским примерно так: ЗА ИСКЛЮЧЕНИЕМ нескольких перечисленных команд (E1h, E3h и еще какой-то), Search Accelerator и ПЕРВОГО БАЙТА ПОСЛЕ master reset cycle, на все команды будет получен байт ответа.
Из чего я сделала вывод, что надо что-нибудь послать, чтобы на C1 получить ответ. Ведь C1 я посылаю именно после master reset cycle.
Только после посылки 01h у меня и заработал прием ответа на C1 и на все последующие команды.

Может это какая-то случайность и я неправильно перевела pdf, не знаю... Завтра процитирую этот кусочек (сейчас его нет под рукой), может объясните мне, что он означает.
Go to the top of the page
 
+Quote Post
Glupen'
сообщение Nov 14 2007, 07:36
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 78
Регистрация: 23-05-07
Пользователь №: 27 918



опять цитирую:

In addition to the command codes explained in the subsequent sections the DS2480B understands the
following reserved command codes:
E1h switch to Data Mode
E3h switch to Command Mode
F1h pulse termination
Except for these reserved commands, the Search Accelerator control and the first byte after power-on
reset or master reset cycle
, every legal command byte generates a response byte. The pulse termination
code triggers the response byte of the terminated pulse command. Illegal command bytes do not generate
a command response byte.

видно? на все остальные "1-wire reset", кроме первого после сброса ds2480 вы будете получать ответ. А на первый - ответа нет, ds2480 калибрует скороть по нему, и не надо ждать от ds2480 ответа на этот байт.
Go to the top of the page
 
+Quote Post
junkl
сообщение Nov 14 2007, 11:34
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539



С 1-ым reset-ом вроде бы понятно, а с чем все-таки может быть связано чтение FF вместо ROM ID ключа?

4) посылаю команду reset С1h
- при отсутсвии контакта ключа с контактором в ответ получаю CFh
- при поднесенном ключе к контактору получаю CDh (presence pulse)
5) передаю команду E1h для перехода в режим данных, в ответ ничего не получаю
6) передаю команду 33h - чтение ROM
- в ответ получаю 33h
7) передаю 8 раз FFh
- на каждый FF получаю в ответ тоже FFh вместо байтов ROM ID ключа.

Сообщение отредактировал junkl - Nov 14 2007, 11:35
Go to the top of the page
 
+Quote Post
Glupen'
сообщение Nov 14 2007, 11:51
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 78
Регистрация: 23-05-07
Пользователь №: 27 918



Погодите. Первые три пункта переделали? пробовали?
там же скорость 1-wire задается.
Go to the top of the page
 
+Quote Post
junkl
сообщение Nov 14 2007, 14:53
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539



Цитата(Glupen' @ Nov 14 2007, 14:51) *
Погодите. Первые три пункта переделали? пробовали?
там же скорость 1-wire задается.

Пробовала. Сейчас вот так:
1) master reset cycle - передаю 0 на скорости 4800
2) меняю скорость USART на 9600
3) посылаю команду reset С1h (ответа не жду)
4) посылаю команду reset С1h
- при отсутсвии контакта ключа с контактором в ответ получаю CFh
- при поднесенном ключе к контактору получаю CDh (presence pulse)
5) передаю команду E1h для перехода в режим данных, в ответ ничего не получаю
6) передаю команду 33h - чтение ROM
- в ответ получаю 33h
7) передаю 8 раз FFh
- на каждый FF получаю в ответ тоже FFh, а должна получать ROM ID ключа.
Пробовала вместо С1 передавать С5, С9 и CD, чтобы все варианты скорости попробовать. Кстати SS=00 и SS=11 одно и то же? В обоих случаях написано reg. speed. Какую нужно скорость задавать? Ничего не понимаю.
Go to the top of the page
 
+Quote Post
Glupen'
сообщение Nov 15 2007, 07:19
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 78
Регистрация: 23-05-07
Пользователь №: 27 918



Алгоритмически теперь все вроде как верно, соответствует даташиту. Начинаю теряться в догадках.
ds2480b - живая?
"таблетка" - живая?
схема подключения ds2480b с обеих интерфейсных сторон есть? в студию.
Go to the top of the page
 
+Quote Post
junkl
сообщение Nov 16 2007, 09:03
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539



Цитата(Glupen' @ Nov 15 2007, 10:19) *
Алгоритмически теперь все вроде как верно, соответствует даташиту. Начинаю теряться в догадках.
ds2480b - живая?
"таблетка" - живая?
схема подключения ds2480b с обеих интерфейсных сторон есть? в студию.


Схемотехник отказывается давать схемы, говорит, что они такие же, как в PDF и "ничего там не может быть".
Можете предположить что-нибудь?
Что, например, стоит посмотреть осциллографом?
Go to the top of the page
 
+Quote Post
Glupen'
сообщение Nov 16 2007, 10:36
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 78
Регистрация: 23-05-07
Пользователь №: 27 918



осциллографом (желательно записывающим сигнал для последующего анализа) посмотреть на 1-wire святое дело. Действительно ли таблетка FF-ы выдает или этьо ds2480b бредит. Картинки сигналов, соответствующие сбросу, единице и нулю. есть в даташитах на ds2480b & ds1990.
Go to the top of the page
 
+Quote Post
junkl
сообщение Nov 16 2007, 13:46
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539



Цитата(Glupen' @ Nov 16 2007, 13:36) *
осциллографом (желательно записывающим сигнал для последующего анализа) посмотреть на 1-wire святое дело. Действительно ли таблетка FF-ы выдает или этьо ds2480b бредит. Картинки сигналов, соответствующие сбросу, единице и нулю. есть в даташитах на ds2480b & ds1990.


Судя по осциллографу ключик выдает свой код, правильный, а не FF.
А из-за чего может ds2480b бредить?
Go to the top of the page
 
+Quote Post
junkl
сообщение Nov 20 2007, 10:28
Сообщение #12


Участник
*

Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539



Проблема оказалась в "аналоговых цепях", как сказал схемотехник. Более подробно не стал рассказывать. Но теперь хоть номер ключа считывается. Так что спасибо за помощь, тема закрыта.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th June 2024 - 04:34
Рейтинг@Mail.ru


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