roboforum.ru

Технический форум по робототехнике.

Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Сообщение bravo24 » 24 авг 2009, 15:55

Добрый день всем!
Помогите начинающему.

Хочу собрать первые часы на микропроцессоре. В инете есть куча готовых схем, в которых часы реального времени (RTC) обмениваются данными с мегой по I2C протоколу.

У меня есть RTC72423. это очень древняя микросхема и в даташите на нее упоминается сигнад ALE. Сам протокол здорово смахивает на параллельную передачу данных.

ВОПРОС: каким образом можно ее подключить к mega8, чтобы использовались все параметры часов (секунды-минуты...годы).

P.S. Я понимаю, что часть ответов будет типа: "...не парься - купи на I2C".
1. Такой возможности нет (по крайней мере в Одессе).
2. Указанная мной микросхема у меня есть (аж 2).

Буду признателен за любые комментарии.
Аватара пользователя
bravo24
 
Сообщения: 29
Зарегистрирован: 10 мар 2009, 22:31
Откуда: Odessa

Re: Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Сообщение Duhas » 24 авг 2009, 16:09

возможность есть всегда )

если там АЛЕ то и правда паралельнай передача данных... берем 1 порт меги и через него передаем байт.. еще несколько линий с другого порта используем для управления... ну и ищем ДШ на свою МС..
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Сообщение EdGull » 24 авг 2009, 16:16

вообще-то в самих мегах уже есть часы!
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Сообщение bravo24 » 24 авг 2009, 16:26

Часы в меге есть, но хочется получить:
1. точность хода
2. все данные о времени-дате в "удобном" виде без программных извратов (я только начинаю программировать на СИ)
3. базовую схему, которую можно будет использовать для последующих разработок подобного типа

По поводу параллельного интерфейса: сколько линий нужно для управления (я так понимаю 3: строб, разрешение записи, разрешение чтения?)

Добавлено спустя 3 минуты 44 секунды:
Duhas писал(а):возможность есть всегда )

если там АЛЕ то и правда паралельнай передача данных... берем 1 порт меги и через него передаем байт.. еще несколько линий с другого порта используем для управления... ну и ищем ДШ на свою МС..


даташит нашел, но "толку мало".
Я так понял, что первых четыре бита задают адресс, а последние 4 бита - биты данных (непосредственно время-дата и 3 контрольных регистра)
Аватара пользователя
bravo24
 
Сообщения: 29
Зарегистрирован: 10 мар 2009, 22:31
Откуда: Odessa

Re: Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Сообщение Duhas » 24 авг 2009, 16:31

если планируете использовать где-то эти часы если не в часах - то зря.. достать И2Ц или СПИ микру можно.. нет в городе - почтой...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Сообщение bravo24 » 24 авг 2009, 16:54

По предыдущему посту: что-то до меня слабо доходит (устал наверное)...
Я эти RTC хочу использовать в часах (с будильниками, таймерами, и коммутируемыми нагрузками).

ОСНОВНАЯ ЦЕЛЬ: поднатаскаться на проектировании и программировании устройств на AVR.
По поводу достать: ВСЕ продавцы смотрят на меня как на умалишенного и заваливают советами: "сделай на меге (без RTC) и не парься. RTC товар не ходовой и мы его не возим".

Про почту... Дык дороговастенько будет 1 микруху почтой слать и долговастенько.

А вообще - начинаю сомневаться. Может и вправду не заморачиваться, а для начала сделать просто на меге?...
Еще пару часов подумаю и приму РЕШЕНИЕ :)
Аватара пользователя
bravo24
 
Сообщения: 29
Зарегистрирован: 10 мар 2009, 22:31
Откуда: Odessa

Re: Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Сообщение Duhas » 24 авг 2009, 18:13

если ради 1 конкретной конструкции - то мона и их поюзать... курите ДШ... там все должно быть крайне просто...

я подумал что вы хотите отработать работу с ними чтобы потом неоднократно применять )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Сообщение galex1981 » 24 авг 2009, 22:18

Человек просто хочет поднатаскаться в программировании, потому и пытается юзать RTC
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4362
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Сообщение Duhas » 24 авг 2009, 22:43

до меня уже дошло.. кста мона суда ДШ выложить )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Сообщение Master » 24 авг 2009, 23:03

Такой возможности нет (по крайней мере в Одессе).

Ну если уж и в Моссовете..... (с)
На 2-й Водопроводный переулок, магазин К-206 спрашивал?
Вот щас в ихнем прайсе посмотрел.
PCF 8583 soic Real Time Clock I2C
U 4221 Приемник сигналов точного времени

А вообще чтобы в МК поднатаскаться сделай сам часы на меге, с использованием 7-сегм индикаторов, плюс кнопки для выставления времени.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Re: Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Сообщение galex1981 » 24 авг 2009, 23:43

Выкладываю даташит на RTC72423
Вложения
RTC72423.pdf
(212.5 КиБ) Скачиваний: 39
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4362
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Сообщение bravo24 » 25 авг 2009, 04:18

За даташит - спасибо, но он у меня уже был.
По поводу Моссовета :) У них (к-206) и спрашивал (правда без наименования). Завтра еще спрошу.

По поводу причины всей этой затеи - верно подмечено: хочу понять КАК?

Уже есть идейка:
стр.177 глава9 рис.2.19 по Евстифееву "Микроконтроллеры AVR семейств ..."

Подключение внешнего ОЗУ к микроконтроллеру

А это случайно не то что мне нужно?
Аватара пользователя
bravo24
 
Сообщения: 29
Зарегистрирован: 10 мар 2009, 22:31
Откуда: Odessa

Re: Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Сообщение -= Александр =- » 25 авг 2009, 13:52

В даташите же все нарисовано:
Запись
1)Поднять CS1
2)Выдать адрес
3)Поднять ALE (зафиксировать адрес) и поднять ~CS0
4)Опустить ALE, затем опустить ~CS0
5)Выдать в шину данные и дернуть WR
6)Отпустить CS

Чтение
Аналогично по диаграмме
_4.jpg


Добавлено спустя 3 минуты 40 секунд:
Кстати ALE - это защелка адреса. Она нужна когда и адрес и данные идут по одним и тем-же проводам. Тоесть на шине адрес - дергаем ALE - микруха адрес запомнила и на шину идут данные. В данном случае шина 4-битная и мы без проблем можем кормить ее адресом и данными отдельно по 8 проводам. В этом случае (как написано в даташите) ALE запаивается на +5В, а все операции проводятся только с помощью CS и WR-RD. Тоесть подняли CS - записали в младшую тетраду адрес, а в старшую данные и дернули WR. Или записали адрес, дернули RD и прочитали данные. Главное не забывать переключать порты на ввод или на вывод, а то можно что-нить сломать...

Добавлено спустя 5 минут 31 секунду:
Примерно так:

Подняли CS1 (и наверно CS0 тоже)
Настроили весь порт на выход
Выдали адрес и данные
Дернули WR
Отпустили CS



Подняли CS
Настроили на вход ту часть порта, где шина данных
Выдали адрес
Дернули RD
Прочитали данные
Отпустили CS
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Re: Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Сообщение bravo24 » 26 авг 2009, 00:20

Александр, спасибо за такой полный ответ!

Я еще на той стадии, когда даташит можно курить, есть, пить и.т.д., но очевидных вещей при этом не догонять (все мое систематизированное теоретическое знакомство с электроникой - 7 лет назад у нас на факультете 3-4 семестра были основы микроэлектроники).

Сейчас пытаюсь снова вкуриться, но пока туго (+ еще и работать нужно).
Была у нас в универе книжечка по основам микроэлектроники... ЖЕЛТАЯ (ни автора не названия не помню). Так вот ее бы вспомнить - был бы толк (все-таки нам по ней все разжевывали, а жевательная память, она ТАКАЯ...). Будет повод после 1 сентября проведать преподов.

По ходу пьесы возник вопрос. Это я у меги 1,5 порта полностью забираю только на обмен с RTC. Еще столько-же (8+4) - на индикацию (LED7x4). Даже в таком варианте у меня 1 ноги не хватает. А КНОПОЧКИ, ДАТЧИКИ температуры, освещенности, выход на пищалку, выход на исполнительный механизм... Получается - нужно еще поизвращаться. По индикации - видел вариант вывода индикации через 74HC595 (DATA, SHIFT, STORAGE на сегменты и 4 сигнала на разряды). Так вот вопрос: а с RTC нельзя так же поступить (через какую-нибудь ходовую мелкосхему)?

P.S. Блин, тема начинает усложняться...
Аватара пользователя
bravo24
 
Сообщения: 29
Зарегистрирован: 10 мар 2009, 22:31
Откуда: Odessa

Re: Часы на ATmega8+RTC72423. Как сигнал с часов завести в мегу?

Сообщение boez » 26 авг 2009, 10:45

Там внимательно надо посмотреть - вроде как можно совместить 8 линий светодиодов с линиями данных и адреса RTC. И обращаться по очереди - сначала гасим все 4 разряда, выдаем управляющие сигналы на RTC и проводим коротенький сеанс общения. Светодиоды при этом не мигают, потому что разрядные сигналы неактивны. А затем пробегаем по разрядам 1-4 и выдаем на те же 8 линий управление сегментами, у часов при этом CS убран и они эти сигналы игнорируют. Экономия 8 линий. При должном умении на эти же линии вешается и клавиатура 8x1, занимая всего 1 ногу. Либо вешается 4х1 (4х2) на разрядные линии и 1 (2) ноги, это удобнее с точки зрения опроса - он идет одновременно с индикацией. Кнопки обязательно через диоды, чтоб при одновременном нажатии не попалить порт вывода.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20