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

 
 
> ATTiny2313 + DS1990 и его имитатор в виде считывателя карт, Для хорошо знающих 1-wire
TamTam
сообщение May 28 2007, 17:56
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254



Товариши приключилась сия трабла собрал девайс которы по считыванию DS1990 счелкает релюшкой, стало интересно купил Перковский считыватель PERCo-RP-15MW так как он может имулировать DS1990 с надеждой на то что когда я его подключу то он считает ключь с карты и передаст его по 1-wire но этого так и не произошло, хотя попытка попасть в прирывание по спадающему фронту проходит, но данные не передаються. подскажите в чем может быть косяк? Пишу в CVAVR 1.25.3 использую стандартную функцию поиска из стандартной библы.
PDF от читывателя, ВНИМАНИЕ 1,5Мб !!!!

Ниже прикладываю скины наиболле инфорамтивных страниц из пдф, может у меня с таймингами что невпоряде, знающие глянти плиз.

Зарание всем благодарен.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
TechMike
сообщение Oct 21 2008, 18:40
Сообщение #2


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

Группа: Свой
Сообщений: 130
Регистрация: 30-07-08
Из: Moscow
Пользователь №: 39 302



Задача решена, благодаря форумчанам сахары Проблемы с CP-Z
Код для истории, может кому пригодится:
Код
//******************************************************************************
//Autor: Eugene Samoylov
//Descr: Модуль работы со TouchMemory
//          Функция чтения ключа iButton
// input:
// *code - указатель на буфер для ключа 8 байт
// TM - пин регистра ввода вывода откуда производится чтение
// output:
// 0 - ок;
// 1 - нет импульса присутствия;
// 2 - ненормальное состояние линии (КЗ?)
// 3 - ошибка CRC
//******************************************************************************
BYTE ReadKey(BYTE *code, BYTE TM)
{
BYTE tcnt, Data, i;

  // импульс сброса
  SETBIT(DDR_TM,  TM);                    // выход
  CLRBIT(PORT_TM, TM);                    // низкий уровень
  __delay_cycles(clkMhz * 500);           // 500 мкс низкого уровня
  CLRBIT(DDR_TM,  TM);                    // вход
  SETBIT(PORT_TM, TM);                    // c подтяжкой

  // детектирования импульса присутствия
  tcnt = 0;
  __delay_cycles(clkMhz * 10);
  while(PIN_TM & (1 << TM))
  {
  __delay_cycles(clkMhz * 10);
  tcnt ++;
  // если нет - выходим
  if(tcnt > 10) return 1;
  }

  // детектирования готовности ключа
  tcnt = 0;
  __delay_cycles(clkMhz * 10);
  while(!(PIN_TM & (1 << TM)))
  {
  __delay_cycles(clkMhz * 20);
  tcnt ++;
  // если линия все еще в низком уровне - гдето КЗ
  if(tcnt > 15) return 2;
  }

  __delay_cycles(clkMhz * 20);
  Data = 0x33;
  // если да - передача команды
  for(tcnt = 0; tcnt < 8; tcnt ++)
  {
    if(!(Data & (1 << tcnt)))
    {
    // если 0 сформировать задний фронт + 60 мкс + передний фронт
      SETBIT(DDR_TM,  TM);                    // выход
      CLRBIT(PORT_TM, TM);                    // низкий уровень
      __delay_cycles(clkMhz * 90);
      SETBIT(PORT_TM, TM);                    // высокий уровень
    }
    else
    {
    // если 1 сформировать задний фронт + 15 мкс + передний фронт + 45 мкс
      SETBIT(DDR_TM,  TM);                    // выход
      CLRBIT(PORT_TM, TM);                    // низкий уровень
      __delay_cycles(clkMhz * 8);
      SETBIT(PORT_TM, TM);                    // высокий уровень
      __delay_cycles(clkMhz * 80);
    }
  __delay_cycles(clkMhz * 10);
  }

  // чтение данных
  for(i = 0; i < 8; i++) // байтовый цикл
  {

    Data = 0;

    for(tcnt = 0; tcnt < 8; tcnt ++)          // битовый цикл
    {
    // даем строб 5 мкс
      SETBIT(DDR_TM,  TM);                    // выход
      CLRBIT(PORT_TM, TM);                    // низкий уровень
      __delay_cycles(clkMhz * 13); //было 5
    // переключаемся на вход с подтяжкой
      CLRBIT(DDR_TM,  TM);                    // вход
      SETBIT(PORT_TM, TM);                    // подтяжка
    // ждем 10 мкс
      __delay_cycles(clkMhz * 2); //было 15 !!!
    // читаем данные
      Data >>=1;                            // сдвигаем рег.данных
      if(PIN_TM & (1 << TM))
      {
      Data |= (1 << 7);// 1
      }
    __delay_cycles(clkMhz * 55); //было 45 !!!
    }

    code[i] = Data;
  }

  // проверка CRC
  if (CRC_calc(code) == 0)
  {
    return 0;
  }

return 3;
  // выходим
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- TamTam   ATTiny2313 + DS1990 и его имитатор в виде считывателя карт   May 28 2007, 17:56
- - vesago   Надеюсь не забыл перед подачей питания объединить ...   May 29 2007, 07:17
|- - TamTam   Цитата(vesago @ May 29 2007, 11:17) Надею...   May 29 2007, 10:38
- - ksv198   Цитата(TamTam @ May 28 2007, 21:56) Товар...   May 29 2007, 07:41
- - vesago   Хост постоянно шлет сброс считывателю. По прервани...   May 29 2007, 11:14
|- - TechMike   Цитата(vesago @ May 29 2007, 15:14) Хост ...   Oct 9 2008, 07:26
- - vesago   Это у вас явно с времянками косяк. Подтяжку ставьт...   Oct 9 2008, 07:33
|- - TechMike   Цитата(vesago @ Oct 9 2008, 11:33) Это у ...   Oct 9 2008, 07:53
- - vesago   Пожалуйста, когда приводите код, пользуйте соответ...   Oct 10 2008, 08:38
|- - TechMike   Цитата(vesago @ Oct 10 2008, 12:38) Пожал...   Oct 15 2008, 11:19
- - xemul   Присоединюсь к совету vesago: организуйте все-таки...   Oct 15 2008, 13:01
- - TechMike   Вывожу в терминал внезависимости от кривости CRC п...   Oct 17 2008, 19:15
- - vesago   Ранее со своим оборудованием мы пользовали ридеры ...   Oct 19 2008, 08:08
|- - TechMike   Цитата(vesago @ Oct 19 2008, 12:08) Ранее...   Oct 19 2008, 08:17
|- - TechMike   Цитата(vesago @ Oct 19 2008, 12:08) Ранее...   Oct 20 2008, 16:47
|- - MayDay   Цитата(TechMike @ Oct 20 2008, 22:47) Про...   Dec 16 2010, 11:09
- - Andreisela   Народ, а что с проектом под КВАВР? потому как ща с...   May 13 2009, 18:32


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

 


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


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