Заголовок сообщения: Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт мар 06, 2015 11:12:26
Нашел транзистор. Понюхал.
Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вт сен 11, 2012 09:13:52 Сообщений: 174 Откуда: Брест, Беларусь
Рейтинг сообщения:0
три мелких вопроса по часикам DS1307 1) мне нужно получить с SQW 4кГц, кварц по-любому цеплять часовой на 32768 Гц и программно задавать RS1..RS0 0 1? без кварца она не работает? 2) при тактовой частоте меги32 8 МГц и подключении обработчика прерываний INT1 к SQW DS1307 (на 4 кГц) протеус кряхтит и его отсчетная секунда в готовом коде превращается в 10-15 реальных секунд (там опрос кнопок, парсинг времени и вывод на дисплей). если поставить частоту 1 Гц, то работает норм. самих часиков еще нет, проверить не могу, но теоретически же в железе все должно быть ок, это протеус тормозит? 3) мне объективно не нужно 4 тысячи прерываний в секунду для секундомера, достаточно даже 128 (я так делал на таймер/каунтере2, но в протеусе все было ок, а в железе он не запустился почему-то, правда я случайно спалил контроллер раньше, чем добрался конкретно до отладки счетчика). можно ли как-то от этих часиков взять кратные частоты, с частотой не только 1гц, 4, 8 и 32 кгц?
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Пт мар 06, 2015 11:24:14
Друг Кота
Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21 Сообщений: 18777 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения:1 Медали: 1
1. да. нет. 2. да 3. напрямую нет.
Цитата:
four square - wave frequencies (1Hz, 4kHz, 8kHz, 32kHz)
Можно поставить делитель частоты на триггере(-рах).
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
А зачем завязывать опрос кнопок на внешнее тактирование от DS-ки и прерывание на INT1? Почему просто не делать опрос по прерываниям таймера, чтобы опрос кнопок не зависел от часов? А завязываться на внешние 4кГц - неправильно архитектурно, с точки зрения здравого смысла, да и сложнее в реализации.
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Пт мар 06, 2015 12:08:42
Друг Кота
Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21 Сообщений: 18777 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения:0 Медали: 1
Может, у человека все таймеры заняты
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650.
Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Пт мар 06, 2015 12:49:23
Нашел транзистор. Понюхал.
Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вт сен 11, 2012 09:13:52 Сообщений: 174 Откуда: Брест, Беларусь
Рейтинг сообщения:0
WiseLord писал(а):
А зачем завязывать опрос кнопок на внешнее тактирование от DS-ки и прерывание на INT1?
ненене, ds-ка тикает только для реализации секундомера/таймера. внутренние таймеры не заняты. я ж описал в 3 вопросе ситуацию: изначально на T/C2 я и сделал, меня все устраивало при симуляции, но в железе не запустилось, а пока я других функции до ума доводил, случайно уронил плату на припой, замкнул видимо дорожки и все я попробую сначала добить этот вариант как только контроллер приедет, но на всякий случай продумал и запасной, если все же не получится.
Gudd-Head, спасибо за ответы. если в железе по быстродействию все ок (как и предполагается теорией), то частоту делить и не нужно мне
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Рано я обрадовался по поводу рабочих часиков После полного цикла записи регистров провожу их чтнение - и получаю какой - то бред. Но часы идти видимо начинают (читаемый бред с течением времени изменяется). Пока покопаюсь в коде обмена по шине. Но не исключаю и электротехническую проблему. Паял все на коленке при практически полном отсутствии инструментов на отломаном куске от макетки Где то тут видел сообщение о установке конденсатора по питанию, которая решила подобную проблему. Не подскажете, каким номиналом ставить кондер и куда? Возник вопрос по поводу чтения, в двух разных источниках обнаружил различные инструкции: 1)После приёма и декодирования байта адреса, устройство выдаёт подтверждение на линию SDA. Затем DS1307 начинает передавать данные, начиная с указанного адреса, находящегося в регистровом указателе. Если перед началом чтения указатель регистра не записан, то первый читаемый адрес - это адрес, который был сохранён в нём последним. DS1307 должен принять "неподтверждение" для окончания чтения. Судя по этому, что бы начать читать данные откуда мне нужно, я инициирую запись 1 байта в ds1307, этим байтом я устанавливаю указатель регистра. Потом я заканчиваю сеанс, и начинаю новый уже на чтение. Сейчас именно так делаю. В другом источнике: 2)В отличии от станларта I2C данная ИС должна принять ACK=0 от ведущего в случае, когда ведущий передает заголовок чтения по заданному адресу
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Сб мар 07, 2015 14:08:51
Модератор
Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4510 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
ACK всегда выставляет тот, кто принимает данные, а читает его всегда тот, кто передаёт. Дабы передающий знал, что приёмник принял данные и можно проводить дальнейшие действие. "Непердавание" микроконтроллером АСК при чтении данных, соответственно, "рубит" DS'ку от передачи данных, и дальше она перестаёт что-либо передавать, до следующего старта и принятия адреса. И с чтением по определённому адресу, так же, нет никаких проблем. Читаем один байт и всё.
Это для стандартного I2C. 1307 такой функции как чтение по произвольно заданному адресу официально не знает (такой режим в даташите явно не указан). Там есть только установка заданного адреса для записи байта - ежли применить таким образом - запись в последний байт ОЗУ фиктивного значения - последующее чтение будет выполнено с адреса 0х00 ( или установленный в предыдущей команде адрес записи +1) что чаще всего и делается... Посему и "изголяж" дабы избавится от автоинкремента адреса внутри 1307. Естественно там добавляется "повторный старт" - как в случае с обычным протоколом. Пользуюсь практически во всех своих конструкциях (особо удобно при выборке отдельных ячеек ОЗУ). Хотя... как кому удобнее.
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Сб мар 07, 2015 14:37:42
Модератор
Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4510 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
Ну и какие это проблемы ? Старт -> Передача адреса -> Рестарт -> Читаем байт -> Стоп Ровно как и с чтением нескольких байтов : Старт -> Передача адреса -> Рестарт -> Читаем байты -> Стоп Рестарт в любом случае необходим, т.к. бит "R/W" нужно сменить на "read".
ПыСы: Рабочие функции по-байтного чтения и записи:
Делаю почти так же: Старт->Передача адреса->Стоп; Старт->Читаем байты->Стоп Немного переделал код, в общем добился кое-какого результата. Записываем данный массив: На SMB_ARRAY_OUT[0] внимания особо не обращайте - в ней хранится адрес первой записываемой ячейки. После окончания записи сразу производим чтение, и о чудо: Далее небольшая задержка - на паузе пока делал скриншоты, плюс программно 500мс. Производим повторное чтение, и рыдаем Ну как же так И еще - может все таки поставить конденсаторы по питанию? А то мне никто так и не подсказал. На руках есть на 100мкф и 0,1мкф. Хотя, по идее, питание просидать не должно, так как стоит стабилизатор LM, в цепи которого уже употребляются конденсаторы.
upd: Ошибка обнаружена. Видимо, не правильно понял ДШ на микроконтроллер. Начал перед любой записью сбрасывать бит STO вручную, все заработало. До этого в начале второй итерации записи оставался поднятым бит STO после окончания предыдущей записи. Таким образом получали STA = 1 & STO = 1, SMBus фиксировал нестандартную ситуацию и благополучно сбрасывался, запись не производилась. Теперь все проде бы работает, спасибо за помощь!!!
Последний раз редактировалось 4elovek37 Сб мар 07, 2015 19:22:31, всего редактировалось 3 раз(а).
Пока редактировал предыдущий пост, проглядел Ваш. Как написано выше, проблема решена.
Цитата:
Рабочие функции чтения и записи нескольких байтов:
Спасибо, но у меня аппаратный smbus (он же i2c с примочками), и часть операций делается аппаратно, при этом большинство действий у меня производится в прерывании). Поэтому очень сложно брать что то из чужого кода.
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Сб мар 07, 2015 19:37:06
Модератор
Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4510 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
Ну код я выложил для наглядности, не обязательно его использовать. Хотя и можно, т.к. в нём ничего, связанного с низким уровнем I2C, нет. Только вызовы его функций. Ну мож кому и пригодится То, что Вы разобрались - хорошо. Мои поздравления
Может кому пригодиться. Беда: счёт убегает на несколько секунд в минуту! Это не ошибка! Со всеми доступными (5-6 шт. перепробовал) кварцами 32768 Гц.
Искал решение по форумам, но ничего подходящего. Оказалась проблема с питанием. У меня LM317 питает ATmega8A и сами RTC. Навесил кондёр 0,1 Мкф на ножки DS1338Z и точность (с адекватной погрешностью) пришла в норму.
_________________ Если в голове каша, значит ваш котелок варит!
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Чт мар 12, 2015 09:02:57
Друг Кота
Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21 Сообщений: 18777 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения:0 Медали: 1
Дык, куда ж без кондёров по питанию у (цифровых) микросхем???
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Чт мар 12, 2015 09:19:03
Нашел транзистор. Понюхал.
Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Вт сен 11, 2012 09:13:52 Сообщений: 174 Откуда: Брест, Беларусь
Рейтинг сообщения:0
для часового кварца нужны кондеры при использовании его с DS или на входах TOSC МК? кто-то пишет, что они нужны только для основного высокочастотного кварца. но без них часы не запускаются ни на T/C2, ни через DS1307 нет генерации импульсов на SQW (даже диодик не моргает раз в секунду в железе). то ли кондеры решают, то ли кварц мертвый. сегодня докуплю еще парочку для чистоты эксперимента и пару кондеров на 22пФ (пойдут такие?)
Заголовок сообщения: Re: Всё по DS1307 и прочим часам Dallas (Maxim)
Добавлено: Чт мар 12, 2015 09:37:48
Друг Кота
Карма: 67
Рейтинг сообщений: 1012
Зарегистрирован: Чт сен 18, 2008 12:27:21 Сообщений: 18777 Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения:0 Медали: 1
Для DS-ки не нужны (при этом хорошо бы кварц с указанной в ДШ нагрузочной ёмкостью), у МК AVR при настраивании асинхронного таймера на работу от часового кварца они подключаются внутренние.
_________________ [ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ] Измерить нннада?
Предпочтение маленькому цилиндрику диаметром под 3 милиметра и длиной милиметров под 8 с выводами "в торец". Примерно такой (жаль отдельной фотки нету...): http://img.radiokot.ru/files/20529/dtg3kkk1v.jpg
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения