alcxa писал(а):и ни слова об открытом коллекторе
На самом деле, в даташите чётко прописано, что в режиме аппаратного I2C выход работает именно в режиме открытого стока.
В проекте, хотя и используется программный I2C, но тоже фактически в режиме открытого стока. Т.е. активная единица на выходах SDA/SCL не допускается программно в принципе. Либо активный ноль, либо неактивная (вывод в режиме входа) единица.
Alex217 писал(а):"Нетолерантность" выводов скорее связана с наличием защитных диодов между выводом (анод) и плюсом питания (катод)
Именно. Это типичные диоды для защиты от статического электричествва, и они, как правило, достаточно мощные (по площади), так что мизерный ток 100мкА (5-3,3-0,7В)/10кОм им повредить не должен. Хотя вообще так делать нехорошо, согласен.
Вообще у датчиков BMP180 в этом проекте (я имею в виду ATmega8) какие-то печальные перспективы. Сегодня вечером, повозившись с ними отдельно, понял, что в ATmega8 это не влезет вообще никак. Там столько операций деления 16 и 32-битных чисел при работе с калибровочными коэффициентами, что расчёт температуры/давления требует около 2,5кБайт flash-памяти.
Нужно либо каким-то чудом уменьшить размер прошивки на четверть, чтобы это влезло, либо перепаиваться на 168/328 мегу, что мне делать не очень хочется.
А так датчики вполне у меня заработали, проблема только в размере кода.
RuGOST писал(а):тока я не знаю уже какие ставить!
8МГц от внутреннего генератора. В исходниках проекта (Makefile) ясно видно, что Fuse-биты должны быть:
lfuse = 0x24 и hfuse = 0xd1. Точно так же видно, что эта прошивка предназначена для работы с аппаратными часами на базе DS1307 или DS3231 (для этого варианта есть посадочное место на плате плюс батарейка для хранения времени). Программной реализации часов, как в родной китайской прошивке, здесь нет.