Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Простая метеостанция с часами

Сообщений 31 страница 43 из 43

31

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

З.Ы.: в авторском варианте этого транзистора и светодиода нет, к слову...

Отредактировано Mantrid (2025-03-20 22:42:28)

0

32

Mantrid написал(а):

Не, ну как это?
i2c-шина чисто аппаратная, там SCK все время быть должно.

Для начала - не SCK, а SCL... ;)
В состоянии покоя на обоих линиях I2C высокий уровень, формируемый "подтяжкой".
Первый же "дрыг" в "0" на SDA Мастером сразу же вызывает "беспокойство" у Slave-ов, имеющихся на шине - "А кого/чего Мастер желает ?..." ;)
Вот тут уже на шине начинается "движ"...
После обмена данными обе линии опять переводятся в состояние покоя до следующего "дрыга" Мастера.
Может через секунду, а может и через месяц... ;)
Протокол TWI/I2C никто не отменял...  :dontknow:

Mantrid написал(а):

Если в БАСКОМЕ есть способ i2c программно "глушить" без всяких там условий, то "Париж стоит мессы!" (с), как говаривал один товарищ.

Оператор (команда) I2cstop переводит шину в состояние покоя (см. выше)
Едем в Париж ? ;)

Mantrid написал(а):

Хех, это, стало быть, "часы" ежесекундно немаскируемое прерывание организуют? Хех, и правда! INT0, а я даже и не обратил внимания, думал, нафига секундный импульс на обычный порт подавать?

Именно так.
Но, независимо от прерывания, на индикаторах что-то отображается.
Прерывание же инициирует опрос датчиков и отображение (смену) значений на индикаторах.

Mantrid написал(а):

А как инфа в "максах" сохраняется в промежутках, там разве есть статический буфер, "защелка"? Глубоко их не изучал, слишком "шумные" они для моих задач, не применяю давно. А когда применял, то не задумывался об этом.

Возможно и статика, я этими микрухами никогда не занимался.

В очередной раз пролистал всю программу. Уже больше 15 раз, наверно... ;)
Должна она работать, просто обязана...
А учитывая, что использованы наработки таких наших гуру, как sasha_1973 и radan, то сомнения в работоспособности просто отпадают... Лично у меня. ;)
Остаются только "аппаратные" вопросы...

0

33

Mantrid написал(а):

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

Применительно к схеме из #7 ?
Кстати да !  Скорее все тут "собака и порылась"...
Делитель R10/R1 - прекрасное условие для "вечного INT0"...
Сделайте это ДО "сдувания" остальных микросхем... ;)
Можно катод светика подключить к ноге PD2 МК, а R1 удалить.

Mantrid написал(а):

З.Ы.: в авторском варианте этого транзистора и светодиода нет, к слову...

Ваш косяк !  ;)
Ни слова не было про отклонения от исходной схемотехники !
И поэтому никто (наверняка) не вдавался в изучение схемы.

0

34

Nord написал(а):

Для начала - не SCK, а SCL... ;)

Да, верно, спутал чутка :)

Nord написал(а):

Оператор (команда) I2cstop переводит шину в состояние покоя (см. выше)
Едем в Париж ? ;)

В оригинале фразы не о Париже как таковом было дело, а о том, что ради действительно высокой цели можно иногда и пересмотреть устоявшиеся взгляды на жизнь ;) В ардуине тоже есть команды старта-остановки шины, но они не работают так, как мне надо. В этом была суть вопроса.
Если после I2cstop физически на шине еще присутствуют любые импульсы SCL, а просто убирается SDA, тогда это ничем не лучше ардуины, на мой взгляд. И Париж подождет. :)

Nord написал(а):

Остаются только "аппаратные" вопросы...

Да, ответ уже очевиден, думаю.

Nord написал(а):

Можно катод светика подключить к ноге PD2 МК, а R1 удалить.

Смысл транзистора со светодиодом был другим. Изначально светодиодов было два, стояли друг за другом и токоограничительный резистор был побольше. Питалось это дело от 12 вольт, т.к. два последовательно включенных светодиода достаточной яркости от пяти вольт зажечь было проблематично. И транзистор просто согласовывал ТТЛ-уровень на базе с напряжением коммутации светодиодов. Все это добро стояло (и стоит) в других часах, тоже схема из Интернета, на атмеге восьмой, там на базу сигнал идет со свободного порта. А я просто шесть лет назад не обратил на это внимания и тягнул весь этот узел в обсуждаемую схему. И сомнений не было: светодиод моргает? Моргает! Значит, схема работает и просто что-то с индикацией не то. В нынешнее время получилось ровно то же самое, но светодиод остался один для стенда :) Так что через часик мы узнаем всю правду...

Nord написал(а):

Ваш косяк !  ;)

Несомненно.

Nord написал(а):

И поэтому никто (наверняка) не вдавался в изучение схемы.

Просто никому это было не инетерсно. А кому интересно, тот не потрудился схемы сравнить, так что, по правде-то, косяк не только мой ;)

0

35

Ну, что же, убираем базовый резистор и...
http://forumupload.ru/uploads/0000/25/b8/2186/t232653.jpg

Отредактировано Mantrid (2025-03-21 08:17:59)

0

36

Так, дело пошло. Прежде всего переписываем частоту в программе на 8 МГц, выкидываем кварц на 16 МГц из схемы и с платы, переходим на внутренний генератор. Чуть меньше радиопомех имеем, в моем случае это важно. Дальше: возвращаем базовый резистор на место, но транзистор BC847 меняем на банальный 2N7002, один в один на плате. Теперь входное сопротивление взлетело до небес и бывший базовый резистор не оказывает влияния на схему. Можно было и вообще убрать, заменив перемычкой, но лень :)  Осталось подправить код как надо.
По коду: вот картинка, где индикаторы условно идут слева направо в таком порядке: время - давление - дата - влажность - температура. Причем, последний разряд температуры как-то криво отображается, как будто сегменты перепутаны:

http://forumupload.ru/uploads/0000/25/b8/2186/t935978.jpg

Вопрос к гуру БАСКОМа, можно на возмездной основе: как правильно в коде переставить блоки, чтобы было всего четыре индикатора: время - давление - влажность - температура? Дата не нужна совсем, как и прочие части кода, отвечающие за "графику" дня недели. В коде сейчас объявлены "максы" следующим образом:

  Const Const_amount_max7219 = 5                                     ' Количество используемых чипов MAX7219
  Const Const_skip_max7219 = Const_amount_max7219 * 1       ' Константа для пропуска чипов MAX7219

Хотя на деле "максов" всего три и один из них не нужен в принципе, самый нижний индикатор.

Отредактировано Mantrid (2025-03-21 09:39:08)

0

37

Пока ждал, сам сделал большинство хотелок. Вот как-то так я себе это и представлял:
http://forumupload.ru/uploads/0000/25/b8/2186/t776050.jpg
Теперь надо получившийся код почистить от всяких там дат, лет и прочего, что не будет мной использоваться. И да, отличная новость: все это дело влезает в атмегу168-ю, которые все равно без дела валялись! :) 328-ю жалко, у меня их мало, а этих как раз много. Так что в тему. Теперь можно будет подумать о том, как к "максу" приделать здоровенные индикаторы с общим анодом. Где-то я что-то такое видел... Тут задача чисто аналоговая, так что сделаю.  А вот еще вопрос: где-то в коде более продвинутой версии этих часов мелькало что-то про пульт RC5: в БАСКОМе есть обработка инфы от пультов? Если да, то интересует: хочу всю индикацию включать-выключать по кнопочке с пульта от телека, чтобы ночью не светило :) Ну а если нет, то и ладно, реализую внешней схемой.

Отредактировано Mantrid (2025-03-21 12:03:16)

+1

38

Рад, что все получается !  :cool:

Про общие аноды/катоды покопайтесь в примерах sasha_1973, где вы уже нашли что-то по текущей теме.
Было у него и про это...

RC5 и даже прием сторонних ИК неоднократно обсуждалось на Форуме.
Через "Поиск" легко ищется, а так же есть отдельный раздел, где фигурируют эти вопросы.

0

39

Хорошо, спасибо.

0

40

Mantrid написал(а):

В ардуине тоже есть команды старта-остановки шины, но они не работают так, как мне надо.
В этом была суть вопроса.
Если после I2cstop физически на шине еще присутствуют любые импульсы SCL, а просто убирается SDA, тогда это ничем не лучше ардуины, на мой взгляд. И Париж подождет.

Увы, поездке быть !;)
Вот скриншот из Proteus.
Желтый - канал A, линия SCL
Синий - канал C, линия SDA
МК с интервалом шлет на PCF8574 байт, добавляя побитно "1" на выходе - 1, 3, 7, 15 и т.д.
Что мы видим ?
Канал А в паузе "висит" в высоком уровне, даже не шелохнется...
Канал С в это время в "0" и тоже "не брыкается"...
Шина остановлена !
Каюсь, в #32 был неправ, утверждая, что обе линии в состоянии покоя в "1", но сути это не меняет... ;)
Стартовый импульс на SDA (под вертикальным пунктиром) - началось тактирование шины до окончания сеанса (I2cstop в программе).
Все в соответствии с протоколом TWI/I2C (второй скриншот).
http://forumupload.ru/uploads/0000/25/b8/1743/t67252.jpg
http://forumupload.ru/uploads/0000/25/b8/1743/757197.jpg

+1

41

Nord написал(а):

Увы, поездке быть !;)
Вот скриншот из Proteus.

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

0

42

Mantrid написал(а):

Пока осциллограммы не увижу при работающей шине и при отключенной, в Париж не поедем.

Конструкция уже собрана и вроде работает. :)  Лог. анализатор на шину и смотреть что там. :)

0

43

Пётр написал(а):

Конструкция уже собрана и вроде работает.

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

Отредактировано Mantrid (2025-03-24 21:26:42)

0