|
|
![Reply to this topic](style_images/1/t_reply.gif) ![Start new topic](style_images/1/t_new.gif) |
DS1990 + DS2480B, Не считывается ROM ID DS1990 |
|
|
|
Nov 13 2007, 14:08
|
Участник
![*](style_images/1/pip.gif)
Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539
![](style_images/1/spacer.gif)
|
Использую 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 ключа! В чем может быть проблема? Подскажите, пожалуйста! Уже несколько дней с этим ключом мучаюсь, а он не читается
|
|
|
|
|
Nov 13 2007, 19:51
|
Участник
![*](style_images/1/pip.gif)
Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539
![](style_images/1/spacer.gif)
|
Цитата(Glupen' @ Nov 13 2007, 17:28) ![*](style_images/1/post_snapback.gif) Плохо читали документацию.
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, не знаю... Завтра процитирую этот кусочек (сейчас его нет под рукой), может объясните мне, что он означает.
|
|
|
|
|
Nov 14 2007, 11:34
|
Участник
![*](style_images/1/pip.gif)
Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539
![](style_images/1/spacer.gif)
|
С 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
|
|
|
|
|
Nov 14 2007, 14:53
|
Участник
![*](style_images/1/pip.gif)
Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539
![](style_images/1/spacer.gif)
|
Цитата(Glupen' @ Nov 14 2007, 14:51) ![*](style_images/1/post_snapback.gif) Погодите. Первые три пункта переделали? пробовали? там же скорость 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. Какую нужно скорость задавать? Ничего не понимаю.
|
|
|
|
|
Nov 16 2007, 09:03
|
Участник
![*](style_images/1/pip.gif)
Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539
![](style_images/1/spacer.gif)
|
Цитата(Glupen' @ Nov 15 2007, 10:19) ![*](style_images/1/post_snapback.gif) Алгоритмически теперь все вроде как верно, соответствует даташиту. Начинаю теряться в догадках. ds2480b - живая? "таблетка" - живая? схема подключения ds2480b с обеих интерфейсных сторон есть? в студию. Схемотехник отказывается давать схемы, говорит, что они такие же, как в PDF и "ничего там не может быть". Можете предположить что-нибудь? Что, например, стоит посмотреть осциллографом?
|
|
|
|
|
Nov 16 2007, 13:46
|
Участник
![*](style_images/1/pip.gif)
Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539
![](style_images/1/spacer.gif)
|
Цитата(Glupen' @ Nov 16 2007, 13:36) ![*](style_images/1/post_snapback.gif) осциллографом (желательно записывающим сигнал для последующего анализа) посмотреть на 1-wire святое дело. Действительно ли таблетка FF-ы выдает или этьо ds2480b бредит. Картинки сигналов, соответствующие сбросу, единице и нулю. есть в даташитах на ds2480b & ds1990. Судя по осциллографу ключик выдает свой код, правильный, а не FF. А из-за чего может ds2480b бредить?
|
|
|
|
|
Nov 20 2007, 10:28
|
Участник
![*](style_images/1/pip.gif)
Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539
![](style_images/1/spacer.gif)
|
Проблема оказалась в "аналоговых цепях", как сказал схемотехник. Более подробно не стал рассказывать. Но теперь хоть номер ключа считывается. Так что спасибо за помощь, тема закрыта.
|
|
|
|
|
![Reply to this topic](style_images/1/t_reply.gif) ![Start new topic](style_images/1/t_new.gif) |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|