Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Часы с DS1307 (Тактирование и не толькь)
Часы с DS1307
mikhail09p Дата: Вс, 13.05.2012, 11:30  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Здравствуйте, ребята.
Изучаю шину I2C и по ходу вопросы.
Устройство работает (несмотря на ошибки в печатке, но это потом) и я бы успокоился, но иногда происходит неверное считывание с DS1307. И вот что я заметил: если в программе отсутствует строчка Xtal = 4, то задержка при записи в Xtal = 4 (DelayMS 1000) выполняется за 30 мс! И это и в Протеусе и в железе. Получается, что микроконтроллер тактируется с частотой в 30 раз больше заданной? Что я не понимаю? И все задержки меньше без Xtal = 4. Но по-умолчанию ведь тактовая частота 4? И, получается, импульсы считывания с DS1307 следуют с очень большой частотой и потому бывают ошибки?
Проэкт прилагаю.

Ошибся в букве в описании темы...
Прикрепления: Hour_628_muter.rar (78.7 Kb)

Сообщение отредактировал mikhail09p - Вс, 13.05.2012, 11:31
ЯНДЕКС Дата: 13.05.2012
anatol Дата: Вс, 13.05.2012, 13:01  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

mikhail09p, а это что в середине программы OPTION_REG = %10001111 и Xtal = 4
кто главней - спроси у компилятора.
mikhail09p Дата: Вс, 13.05.2012, 13:16  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

anatol, погоди, а какое отношение имеет одно к другому? Там задержка, может, лишняя...
anatol Дата: Вс, 13.05.2012, 13:35  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Я к тому что принудительная установка прескалера может каким-то образом влияет на подсчет задержки. Это же не ассемблер, тем более не машинные коды. Повесили задержки (сняли) , а установить забыли. Х.З.
Вообще к конфигурированию отнесись построже. PHM - в помощь
mikhail09p Дата: Вс, 13.05.2012, 13:47  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Да я ж не просто так спрашиваю! Я уже по-всякому перепробывал.
Вот и спрашиваю: почему без Xtal = 4 частота НЕ 4 МГц? И сколько тогда? Умножить на 30 ??? Судя по работе задержки на 1000...

Сообщение отредактировал mikhail09p - Вс, 13.05.2012, 13:47
anatol Дата: Вс, 13.05.2012, 14:47  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Извини работа. По умолчанию конфигурацию ловит в c:\Program Files\ProtonIDE\PDS\Includes\
В протеусе также устанавливается конфиг по умолчанию и править надо ручками. Щелчок на контроллере и видим частоту контроллера (вернее модели). Я ее иногда занижаю. когда мощности проца не хватает.
mikhail09p Дата: Вс, 13.05.2012, 16:55  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Да это я знаю, потому и спрашиваю.
Наверное, Xtal = 4 - это для компилятора, чтоб корректно работал.

И ещё: можно ли замедлить шину I2C и если да, то как? В мануале не нашёл.

Сообщение отредактировал mikhail09p - Вс, 13.05.2012, 17:28
anatol Дата: Вс, 13.05.2012, 18:46  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Quote (mikhail09p)
В мануале не нашёл.

mikhail09p, обленился как кот. Вот кусок - Proton Compiler Manual - в переводе стр 181-182 примененного в твоей проге объявления
Quote
Declare Slow_Bus OFF

mikhail09p Дата: Вс, 13.05.2012, 19:17  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Спасибо, anatol! Не обленился я, замучался.
Это я видел. Значит, у меня частота 4 МГц и, соответственно скорость (частота) шины будет 100 КГц. Меньше нету возможности установить?
anatol Дата: Вс, 13.05.2012, 19:49  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Не знаю. Не задумывался.
______________________________________
А вообще зачем нестандартное. Свое что-то решаешь по этому протоколу.
Да и сам протокол не мешает обновить в памяти. А так в ассемблере подправить или на худой случай объявить кварц высокий а применить низкий. Свои тайминги уменшить пропорционально и тогда пониже будет.

Сообщение отредактировал anatol - Вс, 13.05.2012, 19:55
anatol Дата: Вс, 13.05.2012, 20:02  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Подкину еще доку
Прикрепления: an554rus.pdf (197.2 Kb)
ЯНДЕКС Дата: 13.05.2012
mikhail09p Дата: Вс, 13.05.2012, 20:32  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Ок. Спасибо. Изучаю.
А как увеличить частоту генератора в DS1307? Подключение конденсатора до минуса и одной ноги кварца ведь понижает частоту? А увеличить?
anatol Дата: Вс, 13.05.2012, 21:33  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Не мучься. DS1307 работает только в стандартном режиме (100 кГц). Если уход часов - монтаж и кварц.
mikhail09p Дата: Пт, 18.05.2012, 22:49  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Есть уход часов! Медленней идут, чем нужно. 3 кварца пробывал. С кварцами из материнок вовсе плохо - ещё медленней.
Неужели нету метода ускорить ход часов на DS1307? Неужель разработчики ничего не придумали? Или просто не подумали?
anatol Дата: Пт, 18.05.2012, 23:32  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Попытайся с кондером 4-15Пф последовательно. Может не возбудится.
Quote
Точность
Тут очень многое зависит от применяемого кварца и разводки платы. Даташит сообщает что емкость кварца должна быть 12.5 пф. Говорят, что лучше всего применять кварцы от материнских плат. Для коррекции хода можно подпаять к резонатору подстроечный конденсатором и при помощи него в небольших пределах менять частоту. Лично у меня эти часы работают вторые сутки и отстали на 3 секунды. Что-то мне подсказывает, что дело в ёмкости кварца, попробую другой отпишусь.

Quote
Делал подобное, отстают. В даташите кроме емкости кварца также написано что расположен он должен быть как можно ближе к выводам. Забил на отверстия, подпаял к выводам напрямую – отставание уменьшилось и заметно только при питании от батарейки часов (примерно 2-3 минуты за месяц). Кварц брал как раз от мамки.

Здесь почитай
Блин - мы уже цитируемы в гугле happy

Сообщение отредактировал anatol - Пт, 18.05.2012, 23:37
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Часы с DS1307 (Тактирование и не толькь)
  • Страница 1 из 1
  • 1
Поиск: