AtTiny13 + DHT11 + TM1637. Странное поведение.

  • Автор темы Kompas
K

Kompas

  • 12 Ноя 2016
Написал код для работы AtTiny13, DHT11, TM1637. Всё удачно уместилось в памяти микрухи. На первый взгляд всё работает. Данные передаются без сбоев, контрольная сумма в норме. Вот видео
, если кому интересно. Но обнаружилась проблема. Периодически, примерно каждые 5-6 запросов данных от датчика DHT11, показания влажности и температуры скачут. На 5 - 10 единиц могут прыгнуть. При этом рассогласования с контрольной суммой нет. Поначалу списал всё на "несерьезность" датчика, но... Залил тот же самый код в Ардуино Уно - нет никаких скачков. Цепляю датчик и дисплей обратно к тиньке - пляшут данные. Подключаю питание непосредственно от этой ардуинки - не помогает, скачут показания. Припаиваю непосредственно к датчику конденсатор по питанию 100 нФ, как рекомендуется в даташите, - бесполезно. Меняю на тиньке частоты: 1.2, 4.8, 9,6 Мгц - никакого результата. Кстати, по ходу дела, заметил еще одну странность: на 9.6 Мгц тинька в этой связке запускается только от 3 вольт, от пяти - не хочет. На дисплей при этом нужно подавать 5 вольт. В общем, у меня закончились предположения, пришел за помощью к вам. В чем подвох может быть, ведь на ардуинке с тем же питанием показания стабильны?
Код:

Текст скрыт от гостей. Для просмотра войдите в свой аккаунт.
 
В

Васисуалий

Команда форума
  • 12 Ноя 2016
Пара вопросов:
1. Контрольная сумма чего имеется ввиду?
2. Как настроен и используется ли вач дог таймер?
 

Информация Неисправность Прошивки Схемы Справочники Маркировка Корпуса Сокращения и аббревиатуры Частые вопросы Полезные ссылки

  • Справочная информация

    Этот блок для тех, кто впервые попал на страницы нашего сайта. В форуме рассмотрены различные вопросы возникающие при ремонте бытовой и промышленной аппаратуры. Всю предоставленную информацию можно разбить на несколько пунктов:

    • Диагностика
    • Определение неисправности
    • Выбор метода ремонта
    • Поиск запчастей
    • Устранение дефекта
    • Настройка

    Учитывайте, что некоторые неисправности являются не причиной, а следствием другой неисправности, либо не правильной настройки. Подробную информацию Вы найдете в соответствующих разделах.

  • Неисправности

    Все неисправности по их проявлению можно разделить на два вида - стабильные и периодические. Наиболее часто рассматриваются следующие:

    • не включается
    • не корректно работает какой-то узел (блок)
    • периодически (иногда) что-то происходит

    Если у Вас есть свой вопрос по определению дефекта, способу его устранения, либо поиску и замене запчастей, Вы должны создать свою, новую тему в соответствующем разделе.
  • О прошивках

    Большинство современной аппаратуры представляет из себя подобие программно-аппаратного комплекса. То есть, основной процессор управляет другими устройствами по программе, которая может находиться как в самом чипе процессора, так и в отдельных микросхемах памяти.

    На сайте существуют разделы с прошивками (дампами памяти) для микросхем, либо для обновления ПО через интерфейсы типа USB.


    По вопросам прошивки Вы должны выбрать раздел для вашего типа аппарата, иначе ответ и сам файл Вы не получите, а тема будет удалена.
  • Схемы аппаратуры

    Начинающие ремонтники часто ищут принципиальные схемы, схемы соединений, пользовательские и сервисные инструкции. Это могут быть как отдельные платы (блоки питания, основные платы, панели), так и полные Service Manual-ы. На сайте они размещены в специально отведенных разделах и доступны к скачиванию гостям, либо после создания аккаунта:


    Внимательно читайте описание. Перед запросом схемы или прошивки произведите поиск по форуму, возможно она уже есть в архивах. Поиск доступен после создания аккаунта.
  • Справочники

    На сайте Вы можете скачать справочную литературу по электронным компонентам (справочники, таблицу аналогов, SMD-кодировку элементов, и тд.).


    Информация размещена в каталогах, файловых архивах, и отдельных темах, в зависимости от типов элементов.

  • Marking (маркировка) - обозначение на электронных компонентах

    Современная элементная база стремится к миниатюрным размерам. Места на корпусе для нанесения маркировки не хватает. Поэтому, производители их маркируют СМД-кодами.


  • Package (корпус) - вид корпуса электронного компонента

    При создании запросов в определении точного названия (партномера) компонента, необходимо указывать не только его маркировку, но и тип корпуса. Наиболее распостранены:

    • DIP (Dual In Package) – корпус с двухрядным расположением контактов для монтажа в отверстия
    • SOT-89 - пластковый корпус для поверхностного монтажа
    • SOT-23 - миниатюрный пластиковый корпус для поверхностного монтажа
    • TO-220 - тип корпуса для монтажа (пайки) в отверстия
    • SOP (SOIC, SO) - миниатюрные корпуса для поверхностного монтажа (SMD)
    • TSOP (Thin Small Outline Package) – тонкий корпус с уменьшенным расстоянием между выводами
    • BGA (Ball Grid Array) - корпус для монтажа выводов на шарики из припоя

  • Краткие сокращения

    При подаче информации, на форуме принято использование сокращений и аббревиатур, например:

      Сокращение   Краткое описание
    LEDLight Emitting Diode - Светодиод (Светоизлучающий диод)
    MOSFETMetal Oxide Semiconductor Field Effect Transistor - Полевой транзистор с МОП структурой затвора
    EEPROMElectrically Erasable Programmable Read-Only Memory - Электрически стираемая память
    eMMCembedded Multimedia Memory Card - Встроенная мультимедийная карта памяти
    LCDLiquid Crystal Display - Жидкокристаллический дисплей (экран)
    SCLSerial Clock - Шина интерфейса I2C для передачи тактового сигнала
    SDASerial Data - Шина интерфейса I2C для обмена данными
    ICSPIn-Circuit Serial Programming – Протокол для внутрисхемного последовательного программирования
    IIC, I2CInter-Integrated Circuit - Двухпроводный интерфейс обмена данными между микросхемами
    PCBPrinted Circuit Board - Печатная плата
    PWMPulse Width Modulation - Широтно-импульсная модуляция
    SPISerial Peripheral Interface Protocol - Протокол последовательного периферийного интерфейса
    USBUniversal Serial Bus - Универсальная последовательная шина
    DMADirect Memory Access - Модуль для считывания и записи RAM без задействования процессора
    ACAlternating Current - Переменный ток
    DCDirect Current - Постоянный ток
    FMFrequency Modulation - Частотная модуляция (ЧМ)
    AFCAutomatic Frequency Control - Автоматическое управление частотой

  • Частые вопросы

    Как мне дополнить свой вопрос по теме AtTiny13 + DHT11 + TM1637. Странное поведение.?

    После регистрации аккаунта на сайте Вы сможете опубликовать свой вопрос или отвечать в существующих темах. Участие абсолютно бесплатное.

    Кто отвечает в форуме на вопросы ?

    Ответ в тему AtTiny13 + DHT11 + TM1637. Странное поведение. как и все другие советы публикуются всем сообществом. Большинство участников это профессиональные мастера по ремонту и специалисты в области электроники.

    Как найти нужную информацию по форуму ?

    Возможность поиска по всему сайту и файловому архиву появится после регистрации. В верхнем правом углу будет отображаться форма поиска по сайту.

    По каким еще маркам можно спросить ?

    По любым. Наиболее частые ответы по популярным брэндам - LG, Samsung, Philips, Toshiba, Sony, Panasonic, Xiaomi, Sharp, JVC, DEXP, TCL, Hisense, и многие другие в том числе китайские модели.

    Какие еще файлы я смогу здесь скачать ?

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


  • Здесь просто полезные ссылки для мастеров. Ссылки периодически обновляемые, в зависимости от востребованности тем.



K

Kompas

  • 12 Ноя 2016
1. Датчик передает информацию следующим образом. Пять байтов. Первые четыре data_dht[0 - 3] - значение влажности и температуры. Последний пятый data_dht[4] - это сумма первых четырех для контроля ошибок передачи. На видео она высвечивается после влажности и температуры. В показанном здесь коде немного другой алгоритм, просто идет проверка контрольной суммы. Высвечивается ошибка, если сумма не совпадает с данными.
2. Вотч дог настроен на прерывания по переполнению. Если обрыв связи с датчиком, контроллер зависает в цикле ожидания, срабатывает программа обработки прерывания. На дисплей выводится Ошибка. Сброс.
 
В

Васисуалий

Команда форума
  • 12 Ноя 2016
Т.е. получается, что WDT не может быть причиной этих сбоев?

Более того! Получается, что те данные, которые выводятся на индикатор, это именно те самые данные, которые получаются с датчика т.к. сами данные и чексумм совпадает! Ну тогда надо смотреть на датчик! А не может ли быть такой вот сценарий... У датчика не может быть определено время преобразования? Я немного экспериментировал с преобразователями (АЦП) у которых в даташите указывается время преобразования и если при этом устроить им опрос раньше времени, то на выходе получаем кашу...
 
K

Kompas

  • 12 Ноя 2016
Васисуалий сказал(а):
Т.е. получается, что WDT не может быть причиной этих сбоев?

Более того! Получается, что те данные, которые выводятся на индикатор, это именно те самые данные, которые получаются с датчика т.к. сами данные и чексумм совпадает! Ну тогда надо смотреть на датчик! А не может ли быть такой вот сценарий... У датчика не может быть определено время преобразования? Я немного экспериментировал с преобразователями (АЦП) у которых в даташите указывается время преобразования и если при этом устроить им опрос раньше времени, то на выходе получаем кашу...
Да, я тоже предполагаю, что проблема кроется где-то непосредственно на этапе обработки параметров тока на измерительном элементе микросхемой датчика. Так как с передачей данных всё нормально. Но каким образом и что именно влияет на этот процесс - моих знаний не хватает.
В даташите датчика говорится, что запрашивать данные у датчика нужно не ранее одной секунды после подачи питания. В программе установлено 1,5 секунды. Интервалы запросов пробовал увеличивать вплоть до 20 секунд - не помогает. Да и на ардуинке то нет проблем. Наверное, нужно искать аппаратные отличия на портах Atmega328P и AtTiny13V. Но разве они есть?
 
В

Васисуалий

Команда форума
  • 12 Ноя 2016
А чем тогда вообще отличается работа программы в "Дуньке" и в отдельном чипе "Тини"? Ведь по идее это практически одно и то же с точки зрения выполнения этой программы.? :upset:

Может стоит повергнуть эту алгебру осциллографом? :lol: Ну в смысле посмотреть, что происходит на линии передачи данных в одном и в другом случае? Да и по питанию глянуть... Ну вдруг? :pain25:
 
K

Kompas

  • 12 Ноя 2016
Отличие получается в частоте. Дунька на 16 МГц, Тинька проверялась максимум на 9,6 МГц. Ну и таймер считает на Дуньке с частотой 16/8 = 2 МГц. На тиньке 1,2 МГц. В остальном , вроде, все также. Имена битов в вотч доге только чуть отличаются. Осциллографа у меня нет. Если кто проверит - было бы хорошо)
 
В

Васисуалий

Команда форума
  • 12 Ноя 2016
А если запихать тиньке кварц на 16 мег? Выпаять из дуньки на время, например? Ведь проц заработает, я практически уверен. Оставлять его там, конечно, не стОит, но попробовать можно?
 
K

Kompas

  • 12 Ноя 2016
У меня есть такой кварц. Но, судя по даташиту, AtTiny13V максимум 10 МГц.


 
В

Васисуалий

Команда форума
  • 12 Ноя 2016
Есть? Ставь! Не сгорит, максимум, что плохого получится - не запустится ну или на границе реального предела будет глючить, но я почему то думаю, что реальный предел у него гораздо выше. Проверить хватит...
 
В

Васисуалий

Команда форума
  • 13 Ноя 2016
Вьехал... Чет сразу не дошло... :lol: А ведь к тини13 не так то легко подключить внешний кварц?
 
K

Kompas

  • 13 Ноя 2016
Собрал вчера снова макетку с тинькой. До сих пор ниодного скачка))) В чем была проблема , видимо, останется тайной. До этого ведь несколько раз все пересобирал. Проверял и дома, и на работе. Что еще заметил. На ардуинке стоит пальцем прижать контакты датчика, начинает выскакивать ошибка Err0 (ошибка контрольной суммы). На тиньке, как не прикасался, передача стабильно идет.
P.S. Зато после прикасаний скачки начались :lol:
Резистор подтяжки, может, внутренний убрать из программы.
 
В

Васисуалий

Команда форума
  • 13 Ноя 2016
Осциллограф нужен категорически! :one: Иначе любая подобная задача превращается в гадание на кофейной гуще! :lol:
 
K

Kompas

  • 14 Ноя 2016
В общем, подключил датчик от другой линии питания. Стабильно поработал он у меня минут 15. Потом я нечаянно полярность перепутал и спалил микросхему датчика))) Ну... есть вероятность, что раздельное питание просто надо делать, чтобы не было проблем.
P.S. Если быть точнее, непосредственно с датчиком удар случился))
 ссылка скрыта от гостей 
 
В

Васисуалий

Команда форума
  • 14 Ноя 2016
Бывает! Обидно, но так случается... Придется купить еще один! :gigi:

А вот с отдельным питанием вопрос - а почему? Категорически надо исследовать это дело осциллографом! Я уверен, что все грабли всплывут! :stopud:
 
K

Kompas

  • 14 Ноя 2016
Васисуалий сказал(а):
Бывает! Обидно, но так случается... Придется купить еще один! :gigi:

А вот с отдельным питанием вопрос - а почему? Категорически надо исследовать это дело осциллографом! Я уверен, что все грабли всплывут! :stopud:
Ну мне тут академики подсказывают, что разводка цифровой и аналоговой части всегда сложным процессом было)
 
В

Васисуалий

Команда форума
  • 14 Ноя 2016
На эту тему есть хорошая книжка -"Искусство схемотехники" (The art of electronics) , Авторы Пауль Оровиц и Уинфелд Хилл. Там в первом (если не ошибаюсь) томе есть на эту тему целый раздел :umnik: Книжка переведена на Русский и свободно находится в сети...

Вот >>  ссылка скрыта от гостей 
 
K

Kompas

  • 14 Ноя 2016
Спасибо!
 
D

dsp155

  • 7 Июн 2017
Или попробуй другой проц что ли..
Например мега 8 ,32.
Ещё задам возможно глупый вопрос. Тайминги соблюдены?
Если rc генератор то возможны сбои .
 

Верх Низ