TWI+DS1307+Atmega8

Обсуждаем контроллеры компании Atmel.
Ответить
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский

Сообщение phanis »

К счастью такие ситуации редкие и выходом действительно может быть таймаут

Вот вот, это и хотел я услышать, услышал, спс.
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

подскажите пожалуйста, вот фрагмент из рабочей библиотеки

Код: Выделить всё

void rtc_set_time(unsigned char hour,unsigned char min,unsigned char sec)
{
	twi_start();
	twi_write(0xd0);
	twi_write(0);
	twi_write(bin2bcd(sec));
	twi_write(bin2bcd(min));
	twi_write(bin2bcd(hour));
	twi_stop();
}
почему после старта записывается именно 0xD0 ?
Tell Me The Truth
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Курите даташит на ds1307 на предмет её i2c-адреса.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

да, действительно DS1307 отзывается на 0xd0, но и DS3231 тоже отзывается на оный адрес
как же быть когда на шине будут висеть обе мелкосхемы ? :roll:
Tell Me The Truth
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Никак. Нельзя просто так повесить одинаковые микросхемы (в смысле, с одним и тем же адресом) на одну шину.

Либо у микросхем с одинаковыми шинными адресами должны быть входы типа CS (chip select), которыми в определённый момент можно микросхему "отключить", чтобы она не реагировала на вызов по шине. Естественно, это требует доп. ножек МК для мультиплексирования.

Либо у некоторых микросхем (та же EEPROM-память 24-й серии) есть входы "расширения". Подключив, например, эти три входа к земле или питанию (8 возможных комбинаций), мы может вызывать соотсветствующую микросхему по её получившемуся уникальному адресу (одному из восьми).

А так - микросхемы разного типа обычно по адресам не конфликтуют. А пара сходных часов реального времени на одной шине - бессмысленная вещь. Не удивлюсь, если у DS3231 ещё и протокол будет полностью совпадать с DS1307 (я такое уже видел у другой микросхемы, только она до 400кГц шину держать умела, в отличие от 100кГц DS1307).
Контактная информация:
Реклама
Ответить

Вернуться в «AVR»