18.12.2011, 22:11
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Re: PROTEUS+DS1307 помощь
А что MAXIM уже стал DS1307 с 12-вольтовым питанием выпускать? Да, млин, отстал я от жизни.
Сообщение от mausUA
|
а по сути?
|
А по сути кварц и батарейка в данном случае не нужны, в Протеусе DS-ка работает и без них. Это первое.
Ну а второе, кексы в тесто вертеть и дебажить за вас никто не будет. Если выкладываете проект, то кладите с исходником, чтобы видно было - где вы напортачили.
Ну а на третье уже указали - мало того что опросить, опросить надо девайс с конкретным адресом, поскольку I2C - адресный интерфейс и на нем может висеть куча других девайсов, и по конкретным адресам регистров в самой DS.
Ну и последнее. Если у вас действительно 6-я версия Протеуса и вы планируете использовать вывод SQW/OUT из DS-ки, то частота там будет отличаться от реальной - эта ошибка исправлена в версиях 7.х.
|
|
|
|
20.12.2011, 01:38
|
|
Прохожий
Регистрация: 17.12.2011
Сообщений: 8
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: PROTEUS+DS1307 помощь
to Halex07:
спасибо за ответ - с исходником лоханулся, признаю ![Улыбка](images/smilies/icon_smile.gif) приаттачил, в нем пока только спрашиваю который час, а потом буду уже крутить все остальное.
там в исходнике и адресация есть и опрос (код под ардуину, которую хочу пользовать вместо программатора). самое интересное, что при инициализации ds-ка устанавливается в то время, которое указано в коде, т.е. в сторону ds-ки общение идет, а вот от нее как-то совсем туго.
пс: протеус у меня 7.4.
мужики - буду очень признателен за помощь если поможете победить эту штуку ...
|
|
|
|
20.12.2011, 09:16
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,529
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: PROTEUS+DS1307 помощь
Ну проект Вы опять не полностью... Впрочем, если не сами писали обмен по И2С, то у Вас в схеме ноги перепутаны SDA и SCL
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
20.12.2011, 10:41
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: PROTEUS+DS1307 помощь
да не, здесь просто изначально полное непонимание всего процесса работы. Готовые процедуры только все испортят. Пусть человек по граблям прогуляется. В данном случае польза ощутимая будет.
А в чем такая категоричность использовать внешние часы? Средствами таймера1 с внешним резонатором можно запросто календарь соорудить.
|
|
|
|
20.12.2011, 12:43
|
|
Прохожий
Регистрация: 17.12.2011
Сообщений: 8
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: PROTEUS+DS1307 помощь
Сообщение от DK
|
Ну проект Вы опять не полностью... Впрочем, если не сами писали обмен по И2С, то у Вас в схеме ноги перепутаны SDA и SCL
|
да что ж так не везет то??? ![Обижен](images/smilies/icon_beee.gif) вроде ж все выложил, и проект в протеусе и хекс и код исходный. а в чем опять промахнулся?
по поводу ног - это я уже после долгих блужданий по просторам нета их так прицепил, подсмотрев работающий видеоролик о подключении DS и протеуса. Изначально ноги были наоборот, но все-равно схемка принимать данные принимала, а вот отдавать по запросу не хотела
to DK: подскажите, плз, чего недовыложено, чтобы вместе победить эту проклятую микруху ...
to EasyRider: из истории ваших постов пока не прослеживается ни одного с реальной помощью, а сплошное "все г...но, протеус не тот, твои грабли ты и лечи" ... 2 вопроса: 1. зачем тогда форум, если не помогать людям, а отправлять их по первому же вопросу? 2. в виду отстутсвия впринципе хоть какой либо помощи в постах, для себя делаю вывод, что с познаниями у вас туго, а вот поумничать желания хоть отбавляй.
|
|
|
|
20.12.2011, 13:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,529
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: PROTEUS+DS1307 помощь
Easyrider83, не... Я например, очень люблю 1307. И работать просто, и опять же, резервное питание... Мне так актуально - нестабильность сети у нас в Москве местами. Бывает 2-3 раза в день моргает. Я уже разорился на ИБП - мои сервера домашние перезагружаются долго. Наворотил я там домен, DFS и прочее ![Улыбка](images/smilies/icon_smile.gif) Ну и часы моргают. Так бы пофиг, но если будильники заведены... И ночью сброс... А с 1307 нет проблем - все в памяти у него. Батарейка литиевая, лет на хрен знает сколько хватит. Да и программа вырождается в процедуру чтения по I2C большей частью ![Улыбка](images/smilies/icon_smile.gif)
Я вот себе часики к НГ соорудил с большими циферками в 3 дюйма (мартышка к старости слаба глазами стала (С) Крылов), так там 4 514ИД1 (а куда, нах, их девать?), PIC16F77 (выбросить жалко, почти 10 лет лежит) и 1307... Ха. Статическая индикация (за то не моргает, не мерцает, яркость ШИМ-ом регулируется от фотосенсора). За то эти часы работают как ... часы ![Улыбка](images/smilies/icon_smile.gif) Вот думаю, чтоб туда еще прикрутить... 2 канала АЦП еще свободно. А ноги почти все ушли. Вот так избавляюсь от старых деталюшек.
Сообщение от Easyrider83
|
Пусть человек по граблям прогуляется. В данном случае польза ощутимая будет.
|
Да не те это грабли, по которым стоит ходить. Особенно глюк с аналоговыми резисторами. Или вот наткнулся, что болтающийся в воздухе RX вызывает прерывание (ну, если прописано общение по RS232). Подтянул к Vdd - все заработало.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
20.12.2011, 13:07
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,529
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: PROTEUS+DS1307 помощь
Сообщение от mausUA
|
to DK: подскажите, плз, чего недовыложено, чтобы вместе победить эту проклятую микруху ...
|
Дефайны, если Вы не аппаратный порт И2С используете, а программный. У Вас там
Код:
|
#include ‹SoftwareSerial.h›
#include ‹Wire.h›
#include ‹LiquidCrystal.h› |
Соответственно, надо все выкладывать.
Код:
|
#define DS1307_I2C_ADDRESS 0x68 |
- это что?
Адрес DS1307 завсегда 0xD0 на запись или 0xD1 на чтение. Почитайте даташит.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
Последний раз редактировалось DK; 20.12.2011 в 13:12.
|
|
|
|
20.12.2011, 13:26
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: PROTEUS+DS1307 помощь
DK, на счет резервного питания. Ну разве что в 16F84 его использовать. На дешевых восьмибитниках использую таймер1, как писал, с часовым кварцем. На пик24 и stm32 вообще все хорошо - RTC на борту. Я года два назад делал логгер температуры. Тоже по началу хотел эти часы использовать. Но они у меня как-то криво шли - на 10-20 секунд в день расходились. Я несколько кварцев перепробовал, несколько конденсаторов. Не пошло. Коррекцию сделал программную т.к. флюктуации от экземпляра к экземпляру меня не волновали. Но потом прикинул... в режиме сна контроллер с внешним резонатором потребляет меньше мкА. Часы идут, календарь тикает, летнее/зимнее время переводит (чего нет в 1307 и многих других). Из затрат - две ноги на кристал. Если в проекте шина i2c не используется, то класть на схему часы просто не рационально. Впрочем, вам виднее. Я контроллер выбираю под проект, а не проект под контроллер. Хотя и накопилось уже много всего т.к. беру всегда с солидным запасом.
Автору рекомендую не хамить. Носом в "это дело" тыкать полезно. Особенно при полном нежелании самому во всем разобраться.
|
|
|
|
20.12.2011, 14:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: PROTEUS+DS1307 помощь
Сообщение от DK
|
Соответственно, надо все выкладывать.
Код:
|
#define DS1307_I2C_ADDRESS 0x68 |
- это что?
Адрес DS1307 завсегда 0xD0 на запись или 0xD1 на чтение. Почитайте даташит.
|
Да там целый С++ класс для I2C.
А адрес DS1307 реально 0x68, просто передается со сдвигом. Можно изменить на
#define DS1307_I2C_ADDRESS (0x68‹‹1)
Или сдвигать перед выводом. Скорее всего грабли в этом.
|
|
|
|
20.12.2011, 20:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,529
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: PROTEUS+DS1307 помощь
Сообщение от kison
|
А адрес DS1307 реально 0x68
|
Ну да, адрес 7 бит шириной. Первым идет старший, и выдается 8 клоков...
Код:
|
I2C_Start();
I2C_Write(0xD0);
I2C_Write(0);
I2C_Stop();
I2C_Start();
I2C_Write(0xD1);
sec = I2C_Read(1);
min = I2C_Read(1);
hr = I2C_Read(0);
I2C_Stop(); |
И голова не болит о сдвигах в классах
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:32.
|
|