‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

worklog: заработал I2C

Довольно долго ковырялся в коде и не мог понять, почему не удаётся достучаться до DS1337. Оказалось - вместо адреса 0x68 вписал 0xC8. Кроме того, контролировать работу чипа пытался по активности пина SQW - на нём, по умолчанию, должен быть меандр с частотой 1 Гц. Но там тишина... потом дошло - это ж open drain выход, а я его никуда не подключал, вот и нету ничего.

заодно обнаружил, что чип может "заклинить" в некоем полуподвисшем состоянии, если простым поллингом опрашивать флаг, который никаким процессом не может быть взведён (как раз когда контроллер пытается опросить не отвечающее I2C-устройство) - причём даже JTAG-отладчик оказывается не в состоянии сбросить. Пробовал разные методы - хардварный сброс тоже почему-то не помогает (нонсенс!). Сработало только после переброса пинов BOOT0/BOOT1 (т.е. загрузка системного бутлоадера) и переподключения питания. Загадочно.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 11 comments