Например TDA7294

Форум РадиоКот • Просмотр темы - DS1307 используя аппаратный I2C
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 16:49:39

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 86 ]  1, , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: DS1307 используя аппаратный I2C
СообщениеДобавлено: Сб янв 02, 2010 03:24:30 
Родился

Зарегистрирован: Пт мар 14, 2008 03:31:18
Сообщений: 18
Рейтинг сообщения: 0
Насколько понял, все рассмотреные на этом сайте примеры используют програмно-реализованный I2C интерфейс. Меня интересует решение,использующее аппаратные средства микроконтроллера.
Хотелось бы увидеть готовые примеры для CodeVisionAVR. Использую mega32


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 02, 2010 10:01:17 
Сверлит текстолит когтями
Аватар пользователя

Карма: 13
Рейтинг сообщений: 40
Зарегистрирован: Пн окт 13, 2008 11:45:54
Сообщений: 1287
Откуда: РФ, Крым, г.Бахчисарай
Рейтинг сообщения: 0
Не все.

Просто аппаратный I2C (правильно называть TWI) не работает в Протеусе, а каждому хочется увидеть, что он планирует собирать, и по сему от TWI уходят.

Да и длина кода в обоих случаях примерно одинакова.

_________________
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
----------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 02, 2010 14:35:36 
Родился

Зарегистрирован: Пт мар 14, 2008 03:31:18
Сообщений: 18
Рейтинг сообщения: 0
Danko писал(а):
Не все.

какой конкретно пример?

Danko писал(а):
Просто аппаратный I2C (правильно называть TWI) не работает в Протеусе, а каждому хочется увидеть, что он планирует собирать, и по сему от TWI уходят.

складывается впечатление, что Протеус для многих- самоцель.

Danko писал(а):
Да и длина кода в обоих случаях примерно одинакова.

на длинну фиолетово. Есть более значимые ресурсы, как то- время исполнения- это раз. На время исполнения програмного I2C отключаются прерывания, потом сиди,гадай,какое,когда и в какой последовательности пришло на время отключения-вот и потеряли данные.

еще раз- пожалуйста,примеры, если таковые имеются )


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 02, 2010 16:17:22 
Мучитель микросхем
Аватар пользователя

Зарегистрирован: Вс янв 07, 2007 01:45:48
Сообщений: 491
Откуда: Российская Федерация, будь она неладна...
Рейтинг сообщения: 0
Могу предложить на АСМе.

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


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 02, 2010 19:11:19 
Первый раз сказал Мяу!

Зарегистрирован: Сб окт 31, 2009 12:34:44
Сообщений: 25
Рейтинг сообщения: 0
Merzavec писал(а):
На время исполнения програмного I2C отключаются прерывания

Зачем? Это синхронный интерфейс, задержки в нем вполне допустимы.
Программный I2C часто используется из за свободы выбора пинов контроллера. Для удобства разводки платы например.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Вт июн 29, 2010 00:59:16 
Держит паяльник хвостом
Аватар пользователя

Карма: 11
Рейтинг сообщений: 43
Зарегистрирован: Вс май 23, 2010 13:55:42
Сообщений: 908
Откуда: Украина, Александрия
Рейтинг сообщения: 0
Merzavec писал(а):
Насколько понял, все рассмотреные на этом сайте примеры используют програмно-реализованный I2C интерфейс. Меня интересует решение,использующее аппаратные средства микроконтроллера.
Хотелось бы увидеть готовые примеры для CodeVisionAVR. Использую mega32

Если нашли примеры то поделитесь. Хочу на апаратный I2C DS1307 повесить.

_________________
«И всё-таки она вертится!»


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Вт июн 29, 2010 16:47:57 
Сверлит текстолит когтями
Аватар пользователя

Карма: 13
Рейтинг сообщений: 40
Зарегистрирован: Пн окт 13, 2008 11:45:54
Сообщений: 1287
Откуда: РФ, Крым, г.Бахчисарай
Рейтинг сообщения: 0
Рабочая библиотека. Работает и в железе и в Протеусе.

Я ранее писал, что в Протеусе аппаратный TWI не работает.

Совершенно верно. Не работает в Протеусе v7.6SP4, а Протуесе v7.7SP2 работает.


Вложения:
Комментарий к файлу: проверено в WinAVR, в CVAVR, в железе (мега8), в Протеусе 7.7SP2
ds1307_twi.zip [1.15 KiB]
Скачиваний: 1133

_________________
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
----------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"


Последний раз редактировалось Danko Ср июн 30, 2010 16:09:12, всего редактировалось 2 раз(а).
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Вт июн 29, 2010 21:15:03 
Держит паяльник хвостом
Аватар пользователя

Карма: 11
Рейтинг сообщений: 43
Зарегистрирован: Вс май 23, 2010 13:55:42
Сообщений: 908
Откуда: Украина, Александрия
Рейтинг сообщения: 0
Danko писал(а):
Рабочая библиотека. Работает и в железе и в Протеусе.

Я ранее писал, что в Протеусе аппаратный TWI не работает.

Совершенно верно. Не работает в Протеусе v7.6SP4, а Протуесе v7.7SP2 работает.

Расскажите плиз в кратце как ею пользоваться для mega16.

_________________
«И всё-таки она вертится!»


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Ср июн 30, 2010 09:11:23 
Сверлит текстолит когтями
Аватар пользователя

Карма: 13
Рейтинг сообщений: 40
Зарегистрирован: Пн окт 13, 2008 11:45:54
Сообщений: 1287
Откуда: РФ, Крым, г.Бахчисарай
Рейтинг сообщения: 0
Нужен живой пример пожалуйста:
Код:
unsigned char myhour, mymin, mysec;    // текушее время в двоично-десятичном исчислении
unsigned char mydate, mymonth, myyear; // текущий календарь в двоично-десятичном исчислении

rtc_get_time(&myhour, &mymin, &mysec); //  читаем из DS-ки время
rtc_get_date(&mydate, &mymonth, &myyear); //  читаем из DS-ки календарь

rtc_set_time(myhour, mymin, mysec); //  пишем в DS-ку время
rtc_set_date(mydate, mymonth, myyear); // пишем в DS-ку календарь
не забудьте что в DS1307 не двоичный, а двоично-десятичный счетчик

если нужно записать что-то в память DS1307 то
Код:
rtc_write(АДРЕС, ДАННЫЕ);

если прочесть то
Код:
tmp = rtc_read(АДРЕС);

в принципе и все. Как инициализировать в мега16 TWI я думаю разберетесь сами.

_________________
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
----------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Ср июн 30, 2010 15:31:43 
Держит паяльник хвостом
Аватар пользователя

Карма: 11
Рейтинг сообщений: 43
Зарегистрирован: Вс май 23, 2010 13:55:42
Сообщений: 908
Откуда: Украина, Александрия
Рейтинг сообщения: 0
Danko писал(а):
Нужен живой пример пожалуйста:

A остальные функции из библиотеки: twi_start, twi_stop, twi_write, twi_read, rtc_init мне не нужны? Извините за назойливость :oops: я ещо только учусь. Сегодня вечером буду пробовать.

_________________
«И всё-таки она вертится!»


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Ср июн 30, 2010 16:02:44 
Сверлит текстолит когтями
Аватар пользователя

Карма: 13
Рейтинг сообщений: 40
Зарегистрирован: Пн окт 13, 2008 11:45:54
Сообщений: 1287
Откуда: РФ, Крым, г.Бахчисарай
Рейтинг сообщения: 0
twi_start, twi_stop, twi_write, twi_read - нет.

А если более точно то да т.е. они нужны, но только Вы напрямую к ним обращаться не будете.

rtc_init - да. Функция инициализации DS1307.

В сети есть даташник на DS1307 на русском. Почитайте про биты rs, sqwe, out.

Если 7 ножка DS1307 у Вас не используется то инициализация будет выглядеть так:
Код:
rtc_init(0, 0, 0);

_________________
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
----------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Ср июн 30, 2010 20:15:00 
Держит паяльник хвостом
Аватар пользователя

Карма: 11
Рейтинг сообщений: 43
Зарегистрирован: Вс май 23, 2010 13:55:42
Сообщений: 908
Откуда: Украина, Александрия
Рейтинг сообщения: 0
Danko писал(а):
twi_start, twi_stop, twi_write, twi_read - нет.

А если более точно то да т.е. они нужны, но только Вы напрямую к ним обращаться не будете.

rtc_init - да. Функция инициализации DS1307.

В сети есть даташник на DS1307 на русском. Почитайте про биты rs, sqwe, out.

Если 7 ножка DS1307 у Вас не используется то инициализация будет выглядеть так:
Код:
rtc_init(0, 0, 0);

Начитался даташитов - с этим вроде понятно. Непонятно как по даной формуле посчитать частоту SCL http://www.gaw.ru/html.cgi/txt/doc/micros/avr/arh128/18_3.htm частоту брать в герцах? значение регистров брать в десятичной системе исчисления я так понимаю? Частоту нужно выставить точно 100кГц?

_________________
«И всё-таки она вертится!»


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Чт июл 01, 2010 20:08:18 
Сверлит текстолит когтями
Аватар пользователя

Карма: 13
Рейтинг сообщений: 40
Зарегистрирован: Пн окт 13, 2008 11:45:54
Сообщений: 1287
Откуда: РФ, Крым, г.Бахчисарай
Рейтинг сообщения: 0
Apparatchik, у Вас два пути: правильный и простой.

правильный это выставить значения TWI-регистров по формуле из даташника,

а простой: в кодегенераторе CVAVR выставить галочки и получить готовый код.

Выбирать Вам.

_________________
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
----------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Чт июл 01, 2010 21:00:55 
Держит паяльник хвостом
Аватар пользователя

Карма: 11
Рейтинг сообщений: 43
Зарегистрирован: Вс май 23, 2010 13:55:42
Сообщений: 908
Откуда: Украина, Александрия
Рейтинг сообщения: 0
Вот я хочу правильный, тоесть хочу разобратся как считать по формуле см. пост выше. Пока выставил как в вашом примере на мега8 - в протеусе работает.

Функцией rtc_get_time время у меня получается читать, а могу ли я прочитать например только минуты так: min=rtc_read(0x01)? Что-то не выходит, ведь если теперь min сдвинуть вправо на 4 то получим десятки минут, а если убрать первые четыре бита то еденицы минут.

_________________
«И всё-таки она вертится!»


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Чт июл 01, 2010 21:37:51 
Держит паяльник хвостом
Аватар пользователя

Карма: 11
Рейтинг сообщений: 43
Зарегистрирован: Вс май 23, 2010 13:55:42
Сообщений: 908
Откуда: Украина, Александрия
Рейтинг сообщения: 0
Apparatchik писал(а):
Функцией rtc_get_time время у меня получается читать, а могу ли я прочитать например только минуты так: min=rtc_read(0x01)? Что-то не выходит, ведь если теперь min сдвинуть вправо на 4 то получим десятки минут, а если убрать первые четыре бита то еденицы минут.

Всё получилось!!! Остаётся вопрос про формулу.

P.S. Можно ли обращатся к отдельным битам например регистра минут и как?

_________________
«И всё-таки она вертится!»


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Вт июл 06, 2010 18:07:00 
Держит паяльник хвостом
Аватар пользователя

Карма: 11
Рейтинг сообщений: 43
Зарегистрирован: Вс май 23, 2010 13:55:42
Сообщений: 908
Откуда: Украина, Александрия
Рейтинг сообщения: 0
Могу я как-то мешать ходу часов? Иногда ход секунд замирает на 2-3 секунды и идёт дальше (это на реальном железе). Если бы контроллер тормозил, то при следуйщем опросе время бы виравнивалось, а оно так и отстаёт на время замирания значит тормозит RTC.
Выноваты помехи или частота или что-то другое?

_________________
«И всё-таки она вертится!»


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Вт июл 06, 2010 18:26:40 
Сверлит текстолит когтями
Аватар пользователя

Карма: 13
Рейтинг сообщений: 40
Зарегистрирован: Пн окт 13, 2008 11:45:54
Сообщений: 1287
Откуда: РФ, Крым, г.Бахчисарай
Рейтинг сообщения: 0
скорее всего глючит сама DS1307.

Если есть возможность то проверь на другой МС.

У меня из 10 приобретенных DS1307 одна глючная попалась. Работает работает а потом не с того ни с сего часы начинают перескакивать, могут досчитать до 50 и более часов при этом минуты идут минута в минуту

Apparatchik писал(а):
Можно ли обращаться к отдельным битам например регистра минут и как?
информация считывается побайтно. Считал байт и делай с ним что хочешь.

_________________
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
----------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Вт июл 06, 2010 18:39:09 
Держит паяльник хвостом
Аватар пользователя

Карма: 11
Рейтинг сообщений: 43
Зарегистрирован: Вс май 23, 2010 13:55:42
Сообщений: 908
Откуда: Украина, Александрия
Рейтинг сообщения: 0
Danko писал(а):
скорее всего глючит сама DS1307.

Если есть возможность то проверь на другой МС.

Блин а я её впаял намертво :(

_________________
«И всё-таки она вертится!»


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Чт июл 08, 2010 00:54:10 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 4
Рейтинг сообщений: 26
Зарегистрирован: Ср сен 17, 2008 14:32:15
Сообщений: 2106
Откуда: Старые Васюки
Рейтинг сообщения: 0
А вот это зря, у меня ещё со времён "спектрумов" чёткая привычка все микрухи ставить на панельки...

_________________
Даже остановленные часы два раза в сутки показывают правильное время.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: DS1307 используя аппаратный I2C
СообщениеДобавлено: Чт июл 08, 2010 05:44:22 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 2
Зарегистрирован: Вт июн 15, 2010 07:16:42
Сообщений: 299
Откуда: Иркутск
Рейтинг сообщения: 0
Библиотека работы с TWI на WinAVR


Вложения:
i2c.rar [6.45 KiB]
Скачиваний: 707
Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 86 ]  1, , , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

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


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y