реклама на сайте
подробности

 
 
> Программный I2C, Непонятный и интересный глюк DS1307
manul78
сообщение Nov 14 2009, 02:02
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Начну по порядку.

Мне понадобилось подключить RTC DS1307 к AVR микроконтроллеру не имеющего TWI модуля. У меня есть самодельная
универсальная отладочная плата на ATmega16. На ней я "откатываю" софт. На борту имеется RS-232, LCD дисплей, и со-
ответственно RTC DS1307. На данной плате я решил не использовать TWI, а занятся "ногодрыганием"...
Скачал готовую рабочую библиотеку, слегка подправил её и вот что получается:

Читаю посредством дерганья ногами раз на раз не приходится, то всё хорошо, то лобуда полная...
Читаю посредством TWI все ОК. Ноги использую те-же самые.
Подключил JTAG более менее выставил задержки, процент "брака" уменьшился но не без него. Заметил, что после сброса
МК часы вообще перестают вести себя адекватно, но аппаратный TWI читает всё четко. Появилась мысль, что при сбросе
МК дергает порты, и DS1307 воспринимает это как СТАРТ (RTC подключен к батарейке, соответственно "не спит" и не сбра-
сывется ) и соответственно впадает в своеобразный ступор, т.е. ждет дальнейших сигналов от хоста. Изменил программу,
сделал возможность по одной команде от терминала читает через TWI , по другой "ногодрыганием". Думал используя аппа-
ратный буду выводить DS1307 из ступора после сброса... Ничего подобного, аппаратно читает отлично - программно полную
чушь... решил еще задействовать ЛСД для отслеживания потока... и всё заработало, но не потому, что я там что-то отсле-
дил, а потому, что ЛСД дисплей начал кушать ток... sad.gif

Вот теперь получается такая петрушка: При подключенном ЛСД и JTAG-е всё работает как без проблем. Никаких глюков.
Отключаю либо ЛСД либо JTAG - всё - пошла лобуда. Напряжение чёткое 5 В . Блок питания 4 Амперный, им чай кипят-
ить можно... Аппаратный TWI работает во всех случаях без проблем, читает всё как надо.

Кто сталкивался с подобными глюками подскажите пожалуйста где засада. Еще просьба, возможно имеется более по-
дробное описание DS1307, т.к. стандартный даташит вообще "не о чем". Меня интересуют таймы ACK и пр. не описанные,
а так-же интересно поведение микросхемы при прерванных передачах и пр. конфликтах на шине, и соответственно
выход из данных состояний.


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
manul78
сообщение Dec 9 2009, 19:28
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Исправил библиотеку в соответствии со стандартом I2C, добавил возможность вывода DS1307 из "ступора" посредством
посылки 9 и более импульсов CLOCK при инициализации шины, так-же добавил возможность нескольких попыток доступа
к шине в случае её не готовности. Все файлы снабдил подробными комментариями.

Выкладываю source файлы + даташиты на DS1307 и полную спецификацию стандарта I2C в одном архиве.
Буду рад любым дельным советам и конструктивной критике.

На столе всё работает отлично. Брака - 0%. Расстояние линии 50 см., но так как "девайс" будет работать днём и ночью,
зимой и летом на улице питаясь от заводской сети в окружении пускателей, ТЭН-ов, коллекторных двигателей постоянного тока и их тиристорных приводов, то тема я думаю пока ещё не закрыта... Сейчас доделываю эмулятор-генератор промышл-
енных помех для тестов "на столе"... Вот когда я и "девайс" пройдем все круги ада, тогда можно будет тему закрывать.

Еще раз спасибо всем ! smile.gif

Сообщение отредактировал manul78 - Dec 9 2009, 19:30
Прикрепленные файлы
Прикрепленный файл  I2C_RESERVED.ZIP ( 575.82 килобайт ) Кол-во скачиваний: 76
 


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post
Verifi
сообщение Dec 10 2009, 06:38
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 315
Регистрация: 5-05-08
Из: Kursk
Пользователь №: 37 282



Цитата(manul78 @ Dec 9 2009, 22:28) *
На столе всё работает отлично. Брака - 0%. Расстояние линии 50 см., но так как "девайс" будет работать днём и ночью,
зимой и летом на улице питаясь от заводской сети в окружении пускателей, ТЭН-ов, коллекторных двигателей постоянного тока и их тиристорных приводов, то тема я думаю пока ещё не закрыта...

На столе и будет работать,в цеху при длине больше 1-1,5м даже на100кгц будет сбоить а больше 2м не работает проверено!
Вообще-то I2C ВНУТРИПРИБОРНЫЙ ИНТЕРФЕЙС,несколько раз переделывал на обьектах разработки такого типа,всё работало но вдруг рядом электрик дядя вася поставил электрошкаф с насосом и перестало работать или перенесли силовую электропроводку,передвинули на 3м технологическое оборудование с вашим датчиком и пр.
Для измерения температур есть стандарты, соответствующие датчики и очень желательно их придерживаться,во избежании проблем себе и другим.
А если разработчик ищет лёгкие пути с интегральными датчиками да ещё и с I2C то он откровенно слаб laughing.gif как конструктор и бездумно использует готовые шаблонные решения скачанные порой с интернета.
Вопрос использования этого интерфейса в промышленном окружении,неоднократно поднимался на форуме и как минимум 2 разработчика уже наступали на эти грабли.Поищите в поиске здесь на форуме.
А по прохождению всех кругов ада ,так вы однако инженер(программист)-мазохист ! biggrin.gif
Причина редактирования: Излишнее цитирование.


--------------------
"Если я в чем-то сомневаюсь, я возвращаюсь к началу"
Go to the top of the page
 
+Quote Post
manul78
сообщение Dec 10 2009, 15:08
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Цитата(Verifi @ Dec 10 2009, 09:38) *
А если разработчик ищет лёгкие пути с интегральными датчиками да ещё и с I2C то он откровенно слаб laughing.gif как конструктор и бездумно использует готовые шаблонные решения скачанные порой с интернета.


У меня не интегральный датчик, а часы (RTC) ВЫ1307. Других вариантов нет, т.к. в МК который я использую в своем
девайсе есть всё что мне нужно, кроме аппаратного I2C (TWI).
А по поводу мазохизма, это Вы зря, есть такое понятие профессиональный перфекционизм. Изделие должно быть простым
как всё гениальное, надежным как автомат Калашникова, и красивым как Афродита... smile.gif
Причина редактирования: Излишнее цитирование.


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- manul78   Программный I2C   Nov 14 2009, 02:02
- - rezident   В оригинальной спецификации I2C от Philips есть ре...   Nov 14 2009, 03:31
- - defunct   Цитата(manul78 @ Nov 14 2009, 04:02) Кто ...   Nov 14 2009, 03:41
- - manul78   Спасибо всем за информацию и советы. Не буду ут...   Nov 19 2009, 23:39
|- - defunct   Цитата(manul78 @ Nov 20 2009, 01:39) Кста...   Nov 20 2009, 00:32
|- - sonycman   Цитата(defunct @ Nov 20 2009, 04:32) А я ...   Nov 29 2009, 10:54
- - manul78   "Чьёрт побьери..." (с) "Бриллиантов...   Nov 29 2009, 09:46
- - sonycman   Цитата(rezident @ Nov 29 2009, 16:33) Апп...   Nov 29 2009, 14:36
- - rezident   Цитата(manul78 @ Nov 29 2009, 21:07) Не н...   Nov 29 2009, 17:47
- - manul78   Нашел кое чего, возможно будет интересно. Цитата...   Nov 29 2009, 18:11
|- - rezident   Цитата(manul78 @ Nov 29 2009, 23:11) Выво...   Nov 29 2009, 18:28
|- - manul78   Цитата(rezident @ Nov 29 2009, 21:28) P.S...   Nov 30 2009, 00:23
|- - Сергей Борщ   Цитата(manul78 @ Nov 30 2009, 02:23) Мног...   Nov 30 2009, 01:07
|- - rezident   Цитата(manul78 @ Nov 30 2009, 05:23) Знач...   Nov 30 2009, 17:31
- - Verifi   Цитата(manul78 @ Dec 10 2009, 18:08) А по...   Dec 11 2009, 06:18
- - Сергей Борщ   Цитата(Verifi @ Dec 11 2009, 08:18) зачем...   Dec 11 2009, 11:06


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 04:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01395 секунд с 7
ELECTRONIX ©2004-2016