Перейти к содержанию
    

Часы реального времени + MSP430

Бросьте в меня примером на С по работе с часами реального времени по I2C.

 

Реально перелопатил много - не нашел.

Наверное туплю в плане адреса устройства. В даташите написано 0xA3, но у меня Протеус тупо зависает в ожидании завершения передачи.

Часы у меня PCF8563. МК в Протеусе MSP430F2132

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вы читали даташит?

Two slave addresses are reserved for the PCF8563:

Read: A3h (10100011)

Write: A2h (10100010)

И если ваша библиотека i2c умеет сама контролировать бит записи/чтения в адресе (7bit) устройства то надо опрашивать устройство с адресом 51h.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не тратьте время на протеус.

Согласен, есть в нем грешки. Уже неоднократно 100% рабочий код просто валил Протеус в фатал еррор или в зависание, но в любом случае в Протеусе проще играться, чем 1000 раз перепрошивать МК.

 

А вы читали даташит?

И если ваша библиотека i2c умеет сама контролировать бит записи/чтения в адресе (7bit) устройства то надо опрашивать устройство с адресом 51h.

Так в даташите ж и написан адрес. Вот только я не могу понять, почему Вы рекомендуете 51h ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так в даташите ж и написан адрес. Вот только я не могу понять, почему Вы рекомендуете 51h ?

Может потому, что в 7-битном режиме I2C адрес 0xA3 невозможен? Не задумывались об этом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так в даташите ж и написан адрес. Вот только я не могу понять, почему Вы рекомендуете 51h ?

В i2c младший бит адреса (0 бит) показывает на вид операции - чтение (1) или запись (0).

51h = A3h >> 1

 

Но надо знать как работает ваш код с адресом устройства и от этого отталкиваться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может потому, что в 7-битном режиме I2C адрес 0xA3 невозможен? Не задумывались об этом?

не так, чтоб задумывался... сложно после 10 лет прикладного снова на МК возвращаться.

Короче, победил частично. Часы работают, время устанавливается, а вот с будильником засада.

По-любому что-то намутил я. Скорее всего с BCD.

В 0х01 пишу 0х06 - бит будильника + бит прерывания

Ну а дальше в 0х09 пишу 0х01 - пусть на первой минуте будет прерывание.

Реакции никакой. Закипаю уже...

Даташит http://www.nxp.com/documents/data_sheet/PCF8563.pdf

В i2c младший бит адреса (0 бит) показывает на вид операции - чтение (1) или запись (0).

51h = A3h >> 1

Но надо знать как работает ваш код с адресом устройства и от этого отталкиваться.

Спасибо, уже разобрался. осталось как-то будильник побороть. Обленился. Оно же проще каждый день одно и то же, а тут новое нужно осваивать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 0х01 пишу 0х06 - бит будильника + бит прерывания

не знаю не работал с этими часами, но тут смешались таймеры и будильники (alarm), решите что используете и посмотрите в каком состоянии ножка INT. Там очищать битики надо если ножка в 0.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не знаю не работал с этими часами, но тут смешались таймеры и будильники (alarm), решите что используете и посмотрите в каком состоянии ножка INT. Там очищать битики надо если ножка в 0.

Спасибо, разобрался. Вдумчиво почитал даташит и дало результат.

Прерывание по будильнику проверил - работает. Вот только не знаю, будет ли ежедневно, если я не указал явно дни, тоесть стоят дни месяца и дни недели - дизейбл.

Ладно, на харде проверю - не маслать же Протеусу сутки :)

Остался единственный вопрос, который на даный момент для меня не понятен. Какого черта после прерывания INT часов падает на землю? Или я как-то не так это все понимаю...

Вот так до прерывания от будильника

before_INT.jpg

А это после прерывания. Я бы подумал, что где-то в коде управления на МК натупил, то по кнопке прерывание отрабатывает и возвращается в первоначальное положение.

after_INT.jpg

Изменено пользователем Herz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...