|
I-button ключи от домофона. |
|
|
|
 |
Ответов
(1 - 45)
|
May 3 2006, 22:27
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 25-01-06
Пользователь №: 13 567

|
Цитата(ps1x @ May 4 2006, 00:31)  Нашел в сети много копий одного и тогоже прибора для эмулирования i-button. Но вот беда, оно построено на PIC, к которым у меня религиозное предубеждение, кроме того автор дал лишь прошивку без исходников. Кто нибудь реализовывал такое на AVR? Поделитесь исходником если есть.  http://www.compitech.ru/html.cgi/arhiv_s/00_01/stat_44.htmПрада он на AT89C2051 собран.
|
|
|
|
|
May 4 2006, 00:27
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата(sseett @ May 4 2006, 03:13)  Цитата Кто нибудь реализовывал такое на AVR? Реализовывал на tiny12 (асм). Теория от Атмел. http://www.atmel.com/dyn/resources/prod_do...nts/doc2579.pdfА вот тут http://www.elin.ru/1-Wire/?topic=info все что нужно. Удачи! Я к сожалению, с ассемблером не дружу (. В общем и целом вещь простая. Как определять подключились ли мы к домофону? По прерыванию? Ктонибудь реализовывал девайс с использованием C? В частности CVAVR было бы идеальным вариантом...
|
|
|
|
|
May 4 2006, 05:19
|

Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544

|
Цитата(ps1x @ May 4 2006, 04:27)  Цитата(sseett @ May 4 2006, 03:13)  Цитата Кто нибудь реализовывал такое на AVR? Реализовывал на tiny12 (асм). Теория от Атмел. http://www.atmel.com/dyn/resources/prod_do...nts/doc2579.pdfА вот тут http://www.elin.ru/1-Wire/?topic=info все что нужно. Удачи! Я к сожалению, с ассемблером не дружу (. В общем и целом вещь простая. Как определять подключились ли мы к домофону? По прерыванию? Ктонибудь реализовывал девайс с использованием C? В частности CVAVR было бы идеальным вариантом... Так в CV есть готовые библиотеки для работы с 1-Wire. Определить, подключились ли мы к домофону, можно постоянно посылая импульс сброса длительностью минимум 480 мкс. По окончании его, подключенное устройство рапортует о себе.
|
|
|
|
|
May 4 2006, 20:36
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(ps1x @ May 4 2006, 03:27)  Как определять подключились ли мы к домофону? По прерыванию? Кроме способа описанного постом выше, вообще говоря, при первом подключении таблетки (и любого др. устройства на данной шине) она даёт запрос. Это чётко описано в PDF на данную шину или любое изделие на данной шине. Первоисточник Dalas Цитата(ps1x @ May 4 2006, 03:27)  В общем и целом вещь простая.  Совершенно согласен. Так о чём тогда говорить. Мне вообще нравится когда мне, к примеру, дают задание типо:"надо написать две простых програмки" или "путяковых". Особенно приятно что оценку твоему труду дают люди сами неспособные эти пустяковины сделать. Или не желающие. Или суще ленивые. Следи за базаром когда обращаешься за помощью!
|
|
|
|
|
May 5 2006, 05:57
|

Местный
  
Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459

|
Цитата Определить, подключились ли мы к домофону, можно постоянно посылая импульс сброса длительностью минимум 480 мкс. По окончании его, подключенное устройство рапортует о себе Как же так?! Ключи, не посылают импульсы сброса!!!  Неспособны они на это! Описание работы(кратко-доступное): Ключик после прекосновения дает сигнал присутствия (это не "сброс"!) -шунтирует наземлю линию 1wire (60-240 мкс). Мастер(домофон) дает после этого импульс сброса (480мкс) . Ждет сигнала присутствия устройства на линии(60-240 мкс). После чего начинает работу с ним. Цитата Как определять подключились ли мы к домофону? По прерыванию? Можно по уровню на входе линии. Так как линия 1wire должна быть "подтянута" к VCC (со стороны мастера). А вход нашей псевдотаблетки притягиваем к земле сопротивлением (прим.сотню кОм) то достаточно определить что на входе "единичка" сменила ноль и все. Дальше импульс присутствия и т.д. Цитата Коли зашла речь о ключах спрошу пока тема не ушла в даун. Как прочитать с ключа номер который там записан? Вобщем речь о том как сделать терминал, а не ключ? Есть ли такие проекты? Здесь все проще. Ждем имп.присут. потом посылаем команду 0x33(читать ROM). Читаем ROM. Проверяем контрольную сумму (CRC). Радуемся прочитанному номеру ключа. :-) На счет протокола обмена повторюсь (почемуто народ совершенно игнорирует ссылки и не читает?!): ссылка: http://www.elin.ru/1-Wire/?topic=whatisНа мой взгляд самая лучшая. + AVR318: Dallas 1-Wire® master. Удачи!
Сообщение отредактировал add - May 5 2006, 06:22
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
May 5 2006, 14:21
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
[quote name='add' date='May 5 2006, 08:57' post='110610'] [quote]Определить, подключились ли мы к домофону, можно постоянно посылая импульс сброса длительностью минимум 480 мкс. По окончании его, подключенное устройство рапортует о себе[/quote] Как же так?! Ключи, не посылают импульсы сброса!!!  Неспособны они на это! Описание работы(кратко-доступное): Ключик после прекосновения дает сигнал присутствия (это не "сброс"!) -шунтирует наземлю линию 1wire (60-240 мкс). Мастер(домофон) дает после этого импульс сброса (480мкс) . Ждет сигнала присутствия устройства на линии(60-240 мкс). После чего начинает работу с ним. [/quote] Я уже писал, что ключ формирует сигнал присутствия. Но как правило его не используют. Обычно посылают сигнал запроса. На него ключ отвечает, если он есть. Если ответил, то дальше его опрашивают. [quote name='add' date='May 5 2006, 08:57' post='110610'] Можно по уровню на входе линии. Так как линия 1wire должна быть "подтянута" к VCC (со стороны мастера). А вход нашей псевдотаблетки притягиваем к земле сопротивлением (прим.сотню кОм) то достаточно определить что на входе "единичка" сменила ноль и все. Дальше импульс присутствия и т.д. [quote] Это бред. [quote name='add' date='May 5 2006, 08:57' post='110610'] Коли зашла речь о ключах спрошу пока тема не ушла в даун. Как прочитать с ключа номер который там записан? Вобщем речь о том как сделать терминал, а не ключ? Есть ли такие проекты?[/quote] Здесь все проще. Ждем имп.присут. потом посылаем команду 0x33(читать ROM). Читаем ROM. Проверяем контрольную сумму (CRC). Радуемся прочитанному номеру ключа. :-) На счет протокола обмена повторюсь (почемуто народ совершенно игнорирует ссылки и не читает?!): ссылка: http://www.elin.ru/1-Wire/?topic=whatisНа мой взгляд самая лучшая. + AVR318: Dallas 1-Wire® master. Удачи! [/quote] От себя добавлю, что Dalas на своём ключе выбивает номер в HEX виде.  Так что правильность достаточно просто проверить. (Как и свиснуть такой ключ)
|
|
|
|
|
May 5 2006, 23:30
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 25-01-06
Пользователь №: 13 567

|
Цитата(ps1x @ May 5 2006, 23:02)  У меня две "таблетки", одна от далласа, а другая нонейм походу, ибо вся мятая немного и маркировки вообще нет Так есть исходники на С? Держи под 2313 заточено. На названия файлов не обращай внимания. Переделывал с пика, так что корявато могет работать. А про нонаме, эт скорей всего CIFRAL ключи, к даласам не подходят.
Сообщение отредактировал dvm11111111 - May 5 2006, 23:31
|
|
|
|
|
May 6 2006, 03:59
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(add @ May 5 2006, 09:57)  На счет протокола обмена повторюсь (почемуто народ совершенно игнорирует ссылки и не читает?!): ссылка: http://www.elin.ru/1-Wire/?topic=whatisНа мой взгляд самая лучшая. + AVR318: Dallas 1-Wire® master. Ну не успел я по ссылкам полазать посмотреть, расстреляйте меня!!! Цитата(add @ May 5 2006, 09:57)  Удачи! Спасибо! и Вам того же! SasaVitebsk Я знаю про номера, только вот у меня они затертые.
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
May 6 2006, 05:32
|

Местный
  
Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459

|
Таааак! Ну Вам уважаемый SasaVitebsk советую повнимательней посты читать!!! Цитата Я уже писал, что ключ формирует сигнал присутствия. Но как правило его не используют. Обычно посылают сигнал запроса. На него ключ отвечает, если он есть. Если ответил, то дальше его опрашивают А вот и используют! Если бы Вы повнимательней с документацией работали, то таких недоразумений бы не было, а именно: Устройство мастер (в нашем случае контроллер или домофон), ждет как раз импульс присутствия, и никак непосылает "сигнал запроса" постоянно. Речь идет о таблетке! В момент отключения ее от устройства, для нее получается как бы длительный RESET. После подключения она выдает сигнал присутствия. Цитата Это бред. Очень информативно! Я предложил один из возможных вариантов с целью помочь человеку в его проблеме. Если Вас что то неустраивает , можете его неиспользовать. А если уж высказываете свое "мнение" будьте любезны аргументировать по делу, и пояснять столь категоричное заявление. Цитата От себя добавлю, что Dalas на своём ключе выбивает номер в HEX виде. Так что правильность достаточно просто проверить. (Как и свиснуть такой ключ) Есть еще "метаком" и "цифрал" на которыж нет кода.
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
May 6 2006, 09:36
|

Местный
  
Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459

|
Цитата Таблетка не содержит внутри себя никаких батареек Спешу Вас разочаровать :-) Некоторые содержат! (например связанные с хронометрией и термоконтролем.. cо встроенной памятью)(например DS1995) но не суть дела. Да, в домофонных таблетках нет, это факт! Цитата для нее получается как бы длительный RESET этим я попытался обьяснить общий принцип. Внутри таблетки есть буферный кондер от которого она питается во время работы, и есть внутренний "потребитель тока" который просаживает кондер в отключенном состоянии. Получая питание таблетка "считает" что произошел RESET.
Сообщение отредактировал add - May 6 2006, 09:36
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
May 6 2006, 13:00
|

Местный
  
Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459

|
Цитата Reset - Это когда после подачи питания происходит отключение питания на некоторый промежуток времени :-( ну хорошо если Вам так понятнее, пожалуста! Хочу только обратить ваше внимание что : "все устройства начинают работу с шиной 1-wire после RESET"(из доков). ГЛАВНОЕ: После прикосновения таблеткой к контакту домофона (контроллера), она (таблетка) выдает сигнал присутствия! иначе контроллер неопределит факт ПОДКЛЮЧЕНИЯ. Дальше с таблеткой работаем как с обычным 1-wire устройством. Можно подать (от коетроллера RESET) а можно начать передачу команды. Заметьте для этого при первой передачи команды RESET не нужен , т.к. для таблетки это пройденный этап (см. посты выше) и она перешла на "командный уровень". На рисунке (из datasheeta) показана инициализация уже ПОДКЛЮЧЕННОГО к шине 1-WIRE устройства!!! А мы говорим про момент первого касания и определения момента подключения! Советую почитать про первую инициализациию.(Сейчас ссылку немогу найти, выложу потом). зы (off top): Может я несовсем понятно обьясняю. Но сам сабирал устройства и работал с протоколом. Проверенно на хомячках. :-)
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
May 8 2006, 14:01
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Код The 1 Wire Functions are:
unsigned char w1_init(void)
this function initializes the 1 Wire devices on the bus.
It returns 1 if there were devices present or 0 if not.
unsigned char w1_read(void)
this function reads a byte from the 1 Wire bus.
unsigned char w1_write(unsigned char data)
this function writes the byte data to the 1 Wire bus.
It returns 1 if the write process completed normally or 0 if not.
unsigned char w1_search(unsigned char cmd,void *p)
this function returns the number of devices connected to the 1 Wire bus. If no devices were detected then it returns 0. Вот такие функции есть в CVAVR для работы с 1 wire. Как я понимаю, считать данные из таблетки с помощью них можно, но как ее симулировать?
|
|
|
|
|
May 8 2006, 17:05
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Код /***************************************************** This program was produced by the CodeWizardAVR V1.24.4 Standard Automatic Program Generator © Copyright 1998-2004 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com e-mail:office@hpinfotech.com
Project : Version : Date : 07.05.2002 Author : ps1x Company : sas Comments:
Chip type : ATtiny26L Clock frequency : 4,000000 MHz Memory model : Tiny External SRAM size : 0 Data Stack size : 32 *****************************************************/
#include <tiny26.h>
// 1 Wire Bus functions #asm .equ __w1_port=0x18;PORTB .equ __w1_bit=6 #endasm #include <1wire.h> #include <delay.h> eeprom char *temp; // External Interrupt 0 service routine interrupt [EXT_INT0] void ext_int0_isr(void) { // Place your code here
}
// Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) { // Place your code here
}
// Declare your global variables here
void main(void) { unsigned char devices,rom[9];
// Declare your local variables here
// Input/Output Ports initialization // Port A initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTA=0xFF; DDRA=0xFF;
// Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00; DDRB=0x00;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 3,906 kHz TCCR0=0x00; TCNT0=0x00;
// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFh // OC1A output: Disconnected // OC1B output: Disconnected PLLCSR=0x00; TCCR1A=0x00; TCCR1B=0x00; TCNT1=0x00; OCR1A=0x00; OCR1B=0x00; OCR1C=0x00;
// External Interrupt(s) initialization // INT0: On // INT0 Mode: Falling Edge // Interrupt on any change on pins PA3, PA6, PA7 and PB4-7: Off // Interrupt on any change on pins PB0-3: Off GIMSK=0x00; MCUCR=0x00; GIFR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;
// Universal Serial Interface initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=0x00;
// Analog Comparator initialization // Analog Comparator: Off ACSR=0x80;
// 1 Wire Bus initialization w1_init();
// Global enable interrupts #asm("sei")
while (1) { devices=w1_search(0x33,rom); if (devices){PORTA=0x00;delay_ms(1000);PORTA=0xFF;*temp=rom;} // Place your code here
}; } Вот накатал программку для считывания серийника из таблетки и записи его в епром. Но не работает. PORTA=0x00;delay_ms(1000);PORTA=0xFF; --- вот этот кусочек, для дебага
|
|
|
|
|
May 8 2006, 17:15
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата([banned] @ May 8 2006, 21:11)  Цитата(ps1x @ May 8 2006, 18:01)  Вот такие функции есть в CVAVR для работы с 1 wire. Как я понимаю, считать данные из таблетки с помощью них можно, но как ее симулировать?
на первой странице курса http://electronix.ru/redirect.php?http://[banned] есть ссылка на проекты на русском - там есть эмулятор таблетки. КАКОЙ МНЕ СМЫСЛ ОТ ЭТОГО ПРОЕКТА ЕСЛИ Я ПИШУ НА С???????? простите.
|
|
|
|
|
May 8 2006, 18:33
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата([banned] @ May 8 2006, 21:50)  Цитата(ps1x @ May 8 2006, 21:15)  Цитата([banned] @ May 8 2006, 21:11)  на первой странице курса http://electronix.ru/redirect.php?http://[banned] есть ссылка на проекты на русском - там есть эмулятор таблетки. КАКОЙ МНЕ СМЫСЛ ОТ ЭТОГО ПРОЕКТА ЕСЛИ Я ПИШУ НА С???????? простите. вы свой то пост почитайте - вы спросили КАК СИМУЛИРОВАТЬ ТАБЛЕТКУ ! я вам указал где есть проект где рассказано ПОДРОБНО КАК ! т.е. то что вы спрашивали. А алгоритм хоть на бэйсике реализуйте, мне то что ? Вы не читали ветку.
|
|
|
|
|
May 9 2006, 18:48
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата(ps1x @ May 9 2006, 14:30)  Цитата(WHALE @ May 9 2006, 10:29)  в 128 раз-куда *temp смотрит? Вы его обьявили как указатель на область епром,но не инициализировали.да и зачем вам в вашем контексте указатель- не проще обьявить переменную в епром- eeprom char kod и грузить в нее код таблетки?
Дык надо 9 байт из таблетки брать.... а kod - 1 байт, но прежде всего при нахождении таблетки должны загораться светодиоды, чего не происходит...  Ну неужели никто не делал на С? не верю. Почему может не работать код приведенный выше? (железную часть проверял)
|
|
|
|
|
May 9 2006, 21:37
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата([banned] @ May 10 2006, 00:10)  Цитата("ps1x") Ну неужели никто не делал на С? не верю.
Почему может не работать код приведенный выше? (железную часть проверял) ...... да ... наверно долго еще придется ждать ответа ... А за это время можно было бы прочитать в кусре в какой папке на вашем ПК есть все что вам нужно чтоб работало. В курсе рассказано как отлаживать программу чтоб узнать конкретно что не правильно происходит при работе программы ! ... а не ждать когда явится телепат и дистанционно найдет баг в вашей проге... 1) наверное..... 2) в папке C:\cvavr\inc ? 3) я добавил мигание светодиодов для отладки, JTAGa у меня нет, денег на него тоже. Основной цикл выполняется, об этом можно судить по миганию светодиодов, я проверял. Не выполняется поиск устройств 1-wire, почему, я не знаю, команда для получения кода таблеток 0х33 правильная, но не работает. Электрика тоже в порядке, вот и спрашиваю у тех, кто этим занимался.
|
|
|
|
|
May 9 2006, 23:51
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата([banned] @ May 10 2006, 02:11)  Цитата(ps1x @ May 10 2006, 01:37)  2) в папке C:\cvavr\inc ?
тепло! Цитата(ps1x @ May 10 2006, 01:37)  3) я добавил мигание светодиодов для отладки, правильно. Цитата(ps1x @ May 10 2006, 01:37)  JTAGa у меня нет, денег на него тоже. у меня тоже его нет, он и не нужен. Можно другое использовать - написано там где выше советовал. 1)Тепло но не горячо? Где же еще? В мануале? 2)Спасибо. 3)Другое это rs232?
|
|
|
|
|
May 10 2006, 05:35
|
Участник

Группа: Новичок
Сообщений: 27
Регистрация: 29-11-05
Пользователь №: 11 546

|
Недавно сам юзал эти таблетки....именно на си и именно в Кодевижне.... За основу взял пример из папки Examples...там все подробно расписано, как получить код таблетки и вывести его в терминал, кстати и программу лучше (на мй взгляд) отлаживать именно через RS232. А по какому принципу работает таблетка написано и разжевано в даташите....поищи в сети, он есть и на русском.... А если воспользоваться поиском, то в ентом форуме уже не однократно поднимался етот вопрос....
|
|
|
|
|
May 10 2006, 16:12
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата([banned] @ May 10 2006, 12:22)  Цитата(ilya514 @ May 10 2006, 09:35)  За основу взял пример из папки Examples...
там все подробно расписано, как получить код таблетки и вывести его в терминал,
кстати и программу лучше (на мй взгляд) отлаживать именно через RS232.
Ну вот... точно по КУРСУ ! и результат ПОЛОЖИТЕЛЬНЫЙ ! Во б№%н а я не заметил даже, только вот непонятно: Код A 4.7k PULLUP RESISTOR MUST BE CONNECTED BETWEEN DATA (PA6) AND PORTA HEADER PIN 10 (VTG) ! Что такое VTG? Земля?
|
|
|
|
|
May 10 2006, 16:24
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата(ilya514 @ May 10 2006, 09:35)  Недавно сам юзал эти таблетки....именно на си и именно в Кодевижне.... За основу взял пример из папки Examples...там все подробно расписано, как получить код таблетки и вывести его в терминал, кстати и программу лучше (на мй взгляд) отлаживать именно через RS232. А по какому принципу работает таблетка написано и разжевано в даташите....поищи в сети, он есть и на русском.... А если воспользоваться поиском, то в ентом форуме уже не однократно поднимался етот вопрос.... А симулятор таблетки делали?
|
|
|
|
|
May 10 2006, 22:10
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата([banned] @ May 10 2006, 22:52)  Цитата(ps1x @ May 10 2006, 20:12)  Цитата(ilya514 @ May 10 2006, 09:35)  Код A 4.7k PULLUP RESISTOR MUST BE CONNECTED BETWEEN DATA (PA6) AND PORTA HEADER PIN 10 (VTG) ! Что такое VTG? Земля? блин! почему не прочитать на конец то что я всегда рекомендую прочитать и понять что такое "пулап" и может ли он быть "на землю". ну почему бы просто не ответить куда подключить резистор? ну нет у меня времени (к сожалению прочитать Ваш курс целиком) я даже ночами работаю.
|
|
|
|
|
May 11 2006, 13:58
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата(Pyku_He_oTTyda @ May 11 2006, 08:41)  VTG - вольтаге таржет ( в вашем случае напряжение питания МК (+5В)) Пулап - резистор, подтягивающий цепь к плюсу Спасибо, я разобрался, считал коды всех ключей которые были  работает без ошибок. Осталось дело за малым - симулировать таблетку... Но как? Можно ли использовать для этого библиотеку 1wire.h? Можно-ли просто тупо посылать код ключа?
|
|
|
|
|
May 12 2006, 18:40
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата(Pyku_He_oTTyda @ May 12 2006, 08:47)  Кстати, а Протеус эмулирует DS1990? Не знаю, после смерти винды, вместе с ней ушел и протеус, а сейчас стоит жутко глючная, на нее вообще ничего не ставится, даже сервиспаки и директХ. Кстати мне все еще очень интересно как симулировать работу таблетки используя С, и может быть, функции 1wire.h в компиляторе CVAVR...
|
|
|
|
|
May 12 2006, 19:36
|
Группа: Участник
Сообщений: 7
Регистрация: 4-02-06
Из: Таганрог
Пользователь №: 14 000

|
Proteus начиная с версии 6.8 sp4 весьма прилично работает с 1-Wire ус-вами в т.ч. с DS1990 есть соответствующая модель
|
|
|
|
|
May 12 2006, 21:31
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата(oscill @ May 12 2006, 23:36)  Proteus начиная с версии 6.8 sp4 весьма прилично работает с 1-Wire ус-вами в т.ч. с DS1990 есть соответствующая модель А домофон оно симулировать может? Кстати по запросу ds1990 emulator гугль мне выдал три страницы результатов из примерно 14 000 возможных (???!!!) из них все были на чешско - латышско прибалтийском языке, в которм я ничего не понимаю..
|
|
|
|
|
May 13 2006, 03:47
|
Частый гость
 
Группа: Участник
Сообщений: 165
Регистрация: 14-01-05
Из: РФ Приморский край (рег.25)
Пользователь №: 1 939

|
А вот на родном (мне) русском: http://www.telesys.ru/projects/proj019/index.shtmlКогда-то мне понадобился симулятор, я данный проект прочел, и сделал по образу и подобию на тиньке26 (1 мгц, асм.). Думаю, и у вас получится. Удачи!
|
|
|
|
|
May 13 2006, 10:42
|
Местный
  
Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284

|
Цитата([banned] @ May 13 2006, 14:07)  Цитата(sseett @ May 13 2006, 07:47)  да былобы у человека желание! я уж давно ему дал эту ссылку - но он видетели на Си пишет ! а алгоритм АСМ на Си записать ему религия не позволяет, не кошерно наверно ... Код TERM:CLR TR0 JB DATA,$ MOV TH0,#HI(R_DEL) MOV TL0,#LO(R_DEL) SETB TR0 WAIT:JNB DATA,$ SJMP TERM
RES: JNB DATA,$
MOV R3,#14 DJNZ R3,$;delay 30 uS CLR DATA;presence pulse begin
MOV R3,#58 DJNZ R3,$;delay 120 uS SETB DATA;presence pulse end
MOV R0,#FAM_CODE-1;pointer load MOV R1,#9;load number of bytes (1 RX + 8 TX) MOV R2,#8;load number of bits SETB RXF;set RX flag MOV A,#0FFH;perform RX RRC A;C <- first TX bit CLR IE0;clear interrupt flag
;1-Wire RX-TX Loop:
LOOPH:JNB IE0,$;wait for interrupt flag
MOV DATA,C;DATA <- C MOV TH0,#HI(R_DEL) MOV TL0,#LO(R_DEL) SETB TR0;start timer 0 (reset timeout) MOV R3,#9 DJNZ R3,$;delay MOV C,DATA;receive data bit SETB DATA;DATA <- 1 (30uS is over) RRC A;save received bit in ACC
CLR IE0;clear interrupt flag DJNZ R2,LOOP;advance bit counter JNB RXF,NEXT;jump if TX cycle
CLR RXF CJNE A,#033H,MISM;RX complete, check command code SJMP NEXT MISM:CJNE A,#00FH,TERM
NEXT:INC R0;advance pointer MOV R2,#8;bits counter reload MOV A,@R0 RRC A DJNZ R1,LOOP SJMP TERM
LOOP: JNB DATA,$;wait for DATA = 1 CLR TR0 SJMP LOOPH
;TIMER0 Interrupt Holder: ;Timer terminates process if reset pulse detected
TIMER:CLR TR0;timer 0 stop MOV SP,#STACK MOV A,#LO(RES) PUSH ACC MOV A,#HI(RES) PUSH ACC RETI;return to RES
.END еще бы знать что это все обозначает.... Цитата if (w1_read()==0x33 | w1_read()==0xF0)//если прочтен байт команды считывания памяти то { delay_us(160); //задержка for (i=0;i<=9;i++) {//цикл для передачи всей памяти таблетки w1_write(data[z][i]);//передать байт в шину 1 wire }; } и все это крутится бесконечно. Будет ли работать?
|
|
|
|
|
May 15 2006, 00:00
|
Частый гость
 
Группа: Участник
Сообщений: 165
Регистрация: 14-01-05
Из: РФ Приморский край (рег.25)
Пользователь №: 1 939

|
"....просто скачиваешь документ с инструкциями для того МК...." или книжку, например: Фрунзе А.В. "Микроконтроллеры это же просто том 1" http://lord-n.narod.ru/walla.html#FrunzeSi...CUtom1djvurar(3 метра) "... и пишешь строчка за строчкой что делает каждая....." c учетом более медленного исполнения программы на С, чем на асме. т.е. соответственно увеличив тактовую частоту. Или можно попробовать использовать набортное железо, для быстрой реакции. Удачи!
Сообщение отредактировал sseett - May 15 2006, 00:06
|
|
|
|
|
May 15 2006, 23:28
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата([banned] @ May 15 2006, 09:57)  бред ! МК не выполняет программ не на Си на асме поэтому скорость сравнивать бессмысленно. Гм, стоит ли быть столь придирчивым? Очевидно, что автор сего поста хотел сказать. Реализация алгоритма на C однозначно будет содержать больше избыточного кода, который исполняется МК, чем реализация того же алгоритма на асм'е. Вывод автор поста построил вполне логичный, хотя и не совсем верный, тем не менее бредом его назвать нельзя. Цитата(ps1x @ May 8 2006, 18:45)  Никто не знает???  ... Цитата(ps1x @ May 8 2006, 20:15)  КАКОЙ МНЕ СМЫСЛ ОТ ЭТОГО ПРОЕКТА ЕСЛИ Я ПИШУ НА С???????? ... Вы думаете после этого у кого-нибудь появится желание решать вашу проблему? Помягше надо быть в высказываниях и поскромнее в требованиях и сомнительных выводах. ps1x прошу вас почитать на досуге это http://ln.com.ua/~openxs/articles/smart-questions-ru.htmlPS: после прочтения этой ветки, остался какой-то неприятный осадок. Господа, относитесь более уважительно друг к другу, цените не только свое, но и чужое время.
|
|
|
|
|
May 16 2006, 07:17
|
Частый гость
 
Группа: Участник
Сообщений: 165
Регистрация: 14-01-05
Из: РФ Приморский край (рег.25)
Пользователь №: 1 939

|
Цитата([banned] @ May 15 2006, 15:57)  Цитата(sseett @ May 15 2006, 04:00)  c учетом более медленного исполнения программы на С, чем на асме.
бред ! МК не выполняет программ не на Си на асме поэтому скорость сравнивать бессмысленно. Хотел ответить, но уважаемый defunct очень доходчиво "окультурил" мое высказывание. В свое оправдание хочу сказать, что когда 19 лет назад я поимел в личное пользование маленький персональный компьютер, программное обеспечение которого представляло из себя только начальный загрузчик, мне пришлось не имея не только С но и ЯА, писать небольшие программки прямо в коде, компилируя на бумажке, а затем, после некоторого навыка, и в уме. Насчет скорости выполнения программы: если для создания эмулятора использовать, малогабаритные (чтобы запихнуть в таблеточный корпус) и дешевые тиньки12, то при тактовой частоте 1,2мгц в отдельных частях программы просто нет времени на исполнения "избыточного кода". К счастью любителей С появился более шустрый Тинька13, к тому же с ОЗУ .... Удачи!
|
|
|
|
|
Feb 20 2007, 21:26
|
Группа: Новичок
Сообщений: 14
Регистрация: 6-02-07
Из: Минск
Пользователь №: 25 110

|
Есть вопрос по 1-wire, задал его в форуме по интерфейсам тут т.к. вопрос именно о железном интерфейсе при работе с 1-wire где мастером служит МК. Заранее спасибо за ответы!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|