Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 22.09.2009, 18:49  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Сообщение от Developer_ Посмотреть сообщение
....Могу дать исходники. Вам для IAR или для CodeVision?
Если Вам не жалко - то для CodeVision
Реклама:
IOPA4 вне форума  
Непрочитано 23.09.2009, 10:23  
Developer_
Прописка
 
Регистрация: 21.12.2005
Сообщений: 247
Сказал спасибо: 10
Сказали Спасибо 18 раз(а) в 12 сообщении(ях)
Developer_ на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Вот код. Вырезал его из старого проекта(с CodeVision давно не работаю) и повставлял рыбы что бы код приобрёл целостность, поэтому может выглядеть неказисто, но основной принцип работы передаёт и его легко прикрутить к своему проекту. Если есть вопросы - задавайте.
Цитата:
#include ‹delay.h› //Паузы

// 1 Wire Bus functions-----------------------------------
#asm
.equ __w1_port=0x15 ;PORTC
.equ __w1_bit=7
#endasm
#include ‹1wire.h› //Работа с Tuoch memory

unsigned char g_rom_codes[8]; //глобальный масив для хранения принятых ключей
bit in_try_key; //бит приём аключа

bit in_key_for_work; // бит для обработки ключа




// Timer 1 overflow interrupt service routine
interrupt [TIM1_OVF] void timer1_ovf_isr(void) //Каждые 0,333c
{
unsigned char i,k,z;
TCNT1H=0xf6; // Reinitialize Timer 1 value
TCNT1L=0xa1;

//*****ЗАДАЧА1 ************************************************** ***********************

//**********ЗАДАЧА2 приём ключа ibutton*******************************************
t_m=0; //Отпускаем линию
delay_us(60); //ждём
if(t_m_pin==0)
{
imput_ibutton(); //получаем номер ключа
if(in_try_key==1) //проверяем правильность приёма ключа(crc)
{
in_try_key=0; //сбрасываем бит приёма ключа
in_key_for_work = 1;

//ЧТО ТО ДЕЛАЕМ.....



//Светоэфект
vd=~vd;
delay_ms(1000);
vd=~vd;
delay_ms(1000);
vd=~vd;
delay_ms(1000);
vd=~vd;
delay_ms(1000);
vd=~vd;
delay_ms(1000);
}
}
t_m=1; //Зануляем линию линию

//*******ЗАДАЧА3************************************ ********************************
}

void init_timer(void)
{
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 7,200 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: On
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x05;
TCNT1H=0xf6;
TCNT1L=0xa3;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
}

void imput_ibutton(void)
{
unsigned char i,crc;
in_try_key=0;
delay_us(500); //pause for pass a puls presents
w1_write(0x0f); //0f-comand read EEPRPM
for(i=0;i‹8;i++)
{
g_rom_codes[i]= w1_read(); //giving 8 bite from 1wire bus
crc=w1_dow_crc8(g_rom_codes,i); //calculation CRC
}
if(crc==g_rom_codes[7]) if(g_rom_codes[0]==1) in_try_key=1;
}



void main(void)
{
init_timer();
while(1)
{
if(in_key_for_work ) //что то делаем....



}

}
__________________
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей, по этому чёртовому гвоздю!
Developer_ вне форума  
Непрочитано 23.09.2009, 10:32  
Developer_
Прописка
 
Регистрация: 21.12.2005
Сообщений: 247
Сказал спасибо: 10
Сказали Спасибо 18 раз(а) в 12 сообщении(ях)
Developer_ на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Вот ещё:
#define t_m DDRC.7 //Адрес tuoch memory
#define t_m_pin PINC.7 //Адрес tuoch memory
__________________
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей, по этому чёртовому гвоздю!
Developer_ вне форума  
Сказали "Спасибо" Developer_
IOPA4 (23.09.2009)
Непрочитано 04.10.2009, 13:20  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Уважаемые коллеги! Может кто подскажет:
в Протеусе работает - в железе нет.
Это несколько переделанный пример из CodeVisionAVR. Попробовал убрать FAMILY_CODE, проверку CRC - все-равно никакого результата. Может частота процессора в примере другая, у меня 4 мГц? Что-то в настройках 1ware?
Вложения:
Тип файла: rar DS1990A.rar (108.2 Кб, 344 просмотров)
IOPA4 вне форума  
Непрочитано 04.10.2009, 14:40  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Сообщение от IOPA4 Посмотреть сообщение
Уважаемые коллеги! Может кто подскажет:
в Протеусе работает - в железе нет.
Это несколько переделанный пример из CodeVisionAVR. Попробовал убрать FAMILY_CODE, проверку CRC - все-равно никакого результата. Может частота процессора в примере другая, у меня 4 мГц? Что-то в настройках 1ware?
А что именно у вас не работает?... где спотыкается?...
импульс отклика 1990 формирует?... или спотыкается уже на ответе?

Я столкнуля с тем, что в Протеусе 1990 не формирует отклик если длительность RESET немного менее 500 микросек. хотя реальные 1990 отвечают... немного увеличил импульс - уменьшил частоту в Протеусе и всё поехало.....
или ошибка в модели.. или реальные устройства имеют больший разброс по длитеьлности RESET.

В реале проверьте длительности.. проверьте уровни..
picavr вне форума  
Непрочитано 04.10.2009, 16:21  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

to: picavr
Вы меня не поняли - в Протеусе все Ок, а вот в железе - ни какой реакции. Может бегло проглядите листинг, что нужно изменять в листинге чтобы откликнулось в железе?
IOPA4 вне форума  
Непрочитано 04.10.2009, 17:53  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Сообщение от IOPA4 Посмотреть сообщение
to: picavr
Вы меня не поняли - в Протеусе все Ок, а вот в железе - ни какой реакции. Может бегло проглядите листинг, что нужно изменять в листинге чтобы откликнулось в железе?
Да я понял что в железе проблема, это я просто пример привёл что Протеус не показатель работоспособности.
И написал что бы в реале проверили длительности и уровни...

Вы представляетет как работает 1wire или тупо подключили библиотеку и всё?

Я бы проверял осцилографом в железе, сначала формирование импульса сборос, его длительность и уровни, потом наличие отклика от устройства, потом запись в шину байта комманды итд... а потом анализировать что не так и рыть программу...
а смотреть код.. не зная что именно не работает... смысел есть?

Я в Си написал и отладил код работающий в IAR AVR и HITECH PICC16. Никаких неожиданойстей, длительности по даташиту и всё работает в железе...
picavr вне форума  
Непрочитано 04.10.2009, 20:47  
you_go
Гражданин KAZUS.RU
 
Аватар для you_go
 
Регистрация: 30.05.2008
Адрес: Нижний Новгород
Сообщений: 903
Сказал спасибо: 90
Сказали Спасибо 1,276 раз(а) в 414 сообщении(ях)
you_go на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Я занимался лет 9 назад - разрабатывал тогда программу для работы с DS1990 на ассемблере под AT90S2313. Там все достаточно понятно, просто нужно очень точно выдерживать временные слоты. В моей программе ключи хранились в EEPROM в 3-х копиях (из опыта эксплуатации - редко, но возможны искажения данных EEPROM). Поэтому был введен контроль и восстановлением данных в случаех их повреждения. По этой причине в EEPROM ключей помещается немного - зато потом не было случая, чтобы ключи "терялись". Потом была версия под Attiny 2313, где ключи записывались в программную память c использованием selfprogram mode. Если что-то из этого может Вам помочь, могу поделиться исходниками.
you_go вне форума  
Непрочитано 05.10.2009, 00:57  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Сообщение от you_go Посмотреть сообщение
Там все достаточно понятно, просто нужно очень точно выдерживать временные слоты.
Да там всё просто как дверь... повнимательнее написать, и заработает.
picavr вне форума  
Непрочитано 05.10.2009, 09:25  
microsin
Временная регистрация
 
Аватар для microsin
 
Регистрация: 29.03.2005
Сообщений: 86
Сказал спасибо: 6
Сказали Спасибо 45 раз(а) в 21 сообщении(ях)
microsin на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Статья публиковалась в "Радио", #3, 2001, здесь неурезанная версия - "iButton: описание протокола, электронный замок на ключах-таблетках" http://microsin.ru/content/view/508/1/

Исходники замка: http://microsin.ru/Download.cnt/touc...ck2/iblock.zip

Последний раз редактировалось microsin; 05.10.2009 в 09:29.
microsin вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 23:23.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot