Comments 216
Следует заметить, что крона — одна из наименее емких батарей и что при таком включении, 7805 рассеет примерно половину батарейкиной энергии в атмосферу.
Далее, стоит рассмотреть применение специализированных RTC в отдельном чипе, которые работают годами от одной CR2032. Тогда основной контроллер может дрыхнуть сколько угодно, лишь изредка просыпаясь для смены картинки. Ну и взять менее жирный и древний контроллер, например, STM8.
Далее, стоит рассмотреть применение специализированных RTC в отдельном чипе, которые работают годами от одной CR2032. Тогда основной контроллер может дрыхнуть сколько угодно, лишь изредка просыпаясь для смены картинки. Ну и взять менее жирный и древний контроллер, например, STM8.
+6
RTC у автора как раз есть, проблема в том что контроллер не может спать из-за необходимости постоянно менять полярность напряжения на сегментах ЖК индикатора.
-1
Это относительно.
Для человека, менять полярность раз в секунду — это достаточно быстро, а для микроконтроллкра милионы тактов в холостую.
Для человека, менять полярность раз в секунду — это достаточно быстро, а для микроконтроллкра милионы тактов в холостую.
+1
> 7805 рассеет примерно половину батарейкиной энергии в атмосферу.
Конечно. Но если бы вся схема потребляла микроамперы, это было бы даже и не важно.
> RTC в отдельном чипе, которые работают годами от одной CR2032
Как раз у меня стоит очень специализированная ds1307 :-)
> Тогда основной контроллер может дрыхнуть сколько угодно, лишь изредка просыпаясь для смены картинки
А вот это нельзя по условиям задачи. ЖК-индикатор надо обновлять сто раз в секунду всегда.
> STM8
Вот это-то и интересно, как он себя чувствует в режиме постоянной работы?
Конечно. Но если бы вся схема потребляла микроамперы, это было бы даже и не важно.
> RTC в отдельном чипе, которые работают годами от одной CR2032
Как раз у меня стоит очень специализированная ds1307 :-)
> Тогда основной контроллер может дрыхнуть сколько угодно, лишь изредка просыпаясь для смены картинки
А вот это нельзя по условиям задачи. ЖК-индикатор надо обновлять сто раз в секунду всегда.
> STM8
Вот это-то и интересно, как он себя чувствует в режиме постоянной работы?
+2
Конечно. Но если бы вся схема потребляла микроамперы, это было бы даже и не важно.
Собственное потребление 7805/78L05 — 3-5 мА, кроме того, её параметры не гарантируются при нагрузке менее 1 мА. В микропотребляющих схемах применяют LDO совершенно другого класса.
+7
> STM8
Вот это-то и интересно, как он себя чувствует в режиме постоянной работы?
В даташите написано, что STM8L просыпается (выходит из состояния HALT с потреблением порядка 1 мкА) за 5 микросекунд.
Этого достаточно?
+1
По поводу STM8 можете в сторону stm8l051 посмотреть, там есть режим работы Low-power run, где МК работает на частоте 32КГц но ест всего 5 микроАмпер (не считая периферии), к тому же в этом МК и часы встроенные есть, и цена копеечная.
Если 100 раз в секунду ножкой подрыгать то такой режим хорошо подойдет
Если 100 раз в секунду ножкой подрыгать то такой режим хорошо подойдет
+1
А у STM8L152 есть встроенный контроллер LCD, даже ножками дрыгать не надо, он сам умеет.
+1
Ну для начала можно убрать 7805 и питать напрямую от батарейки на 3-3.6 вольт. Стабилизатор тоже немало кушает. Или хотя бы выбрать стабилизатор с малым собственным потреблением. А вывод на индикатор можно сделать через специализированный контроллер типа HT1621. Там мизерное собственное потребление.
+1
> HT1621
Вот спасибо, почитаю.
Вот спасибо, почитаю.
+1
А нет, готовый дисплей — это неспортивно :-)
0
А это и не готовый дисплей:
LCD контроллер с организацией памяти 32х4 для работы с микроконтроллерами
Основные характеристики
Напряжение питания: 2.4…5.2В
Встроенный 256 kHz RC генератор
Работа с внешним 32.768 kHz кварцем или от источника частоты 256 kHz
Выбор напряжения смещения (bias) 1/2 или 1/3 и выбор продолжительности работы 1/2, 1/3 или 1/4 (duty)
Внутренний формирователь основной частоты
Две частоты работы драйвера звонка (2kHz/4kHz)
Режим пониженного энергопотребления
Внутренний генератор и WDT
Вывод основной частоты или вывод переполнения WDT
8 видов источников для получения основной частоты и для WDT
32x4 LCD драйвер
Встроенная оперативная память дисплея 32х4
Трехпроводный, последовательный интерфейс
Встроенное формирование частоты возбуждение LCD
Программное конфигурирование
Два режима работы: c данными и с командами
Операции обращения к памяти с автоинкрементом
Три режима доступа к данным
Вывод VLCD для настройки рабочего напряжения LCD
Стоит кстати вполне демократично, даже в чип и дипе рублей 60 всего. Правда там корпус не очень удобный. В китае наверное и DIP можно найти.
LCD контроллер с организацией памяти 32х4 для работы с микроконтроллерами
Основные характеристики
Напряжение питания: 2.4…5.2В
Встроенный 256 kHz RC генератор
Работа с внешним 32.768 kHz кварцем или от источника частоты 256 kHz
Выбор напряжения смещения (bias) 1/2 или 1/3 и выбор продолжительности работы 1/2, 1/3 или 1/4 (duty)
Внутренний формирователь основной частоты
Две частоты работы драйвера звонка (2kHz/4kHz)
Режим пониженного энергопотребления
Внутренний генератор и WDT
Вывод основной частоты или вывод переполнения WDT
8 видов источников для получения основной частоты и для WDT
32x4 LCD драйвер
Встроенная оперативная память дисплея 32х4
Трехпроводный, последовательный интерфейс
Встроенное формирование частоты возбуждение LCD
Программное конфигурирование
Два режима работы: c данными и с командами
Операции обращения к памяти с автоинкрементом
Три режима доступа к данным
Вывод VLCD для настройки рабочего напряжения LCD
Стоит кстати вполне демократично, даже в чип и дипе рублей 60 всего. Правда там корпус не очень удобный. В китае наверное и DIP можно найти.
0
7805 от кроны = кпд < 50%
ставьте импульсный dc/dc, в два раза меньше кушать будет (а то и в 5-6 раз).
ставьте импульсный dc/dc, в два раза меньше кушать будет (а то и в 5-6 раз).
0
Нет, нет, нет. Я, видимо, недостаточно раскрыл эту тему в статье. Потребление я смотрел до того как решился (для компактности) применить крону и 7805. Просто давал 5 вольт и смотрел в разрыве цешкой. И уже расстроившись решил, что как proof-of-concept и так сойдет.
0
Хм, тогда странно, вроде в активном режиме на 1МГц 48 кушает 1мА (по даташиту). Можно на полную схему взглянуть?
0
Вот чего нет, того нет :-)
Вероятно в даташите имеется в виду ситуация, когда контроллер что-то внутри себя перемалывает. А мне же надо все время ногами дрыгать.
Четыре sn74hc595n дают 70 (max по даташиту) * 4 = 280 микроампер.
Подтяжки на всю схему ровно две, по 15 kOhm.
Tiny RTC должен давать совсем копейки.
А как оценить потребление собственно индикатора — даже не знаю. Но наверняка там какие-нибудь наноамперы :-)
Вероятно в даташите имеется в виду ситуация, когда контроллер что-то внутри себя перемалывает. А мне же надо все время ногами дрыгать.
Четыре sn74hc595n дают 70 (max по даташиту) * 4 = 280 микроампер.
Подтяжки на всю схему ровно две, по 15 kOhm.
Tiny RTC должен давать совсем копейки.
А как оценить потребление собственно индикатора — даже не знаю. Но наверняка там какие-нибудь наноамперы :-)
0
Кстати слышал утверждение, что на малых токах импульсники не блещут высоким КПД. Самому замерять правда не приходилось…
0
Самому замерять
А даташиты читать в наше время, я так понимаю, не модно.
+1
Как то не было потребности в такой ситуации использовать импульсник. Да и в той промышленной аппаратуре с которой сталкивался обычно ставят литиевый элемент на 3.6 вольт и не парятся. Видимо в этом есть смысл.
0
А ведь вместо этого ля-ля можно было просто пойти на сайт TI, открыть табличку DC/DC понижаек, отсортировать по Iq и узнать много интересного.
+2
Да я ведь не спорю что таких нет) Просто достать линейный стабилизатор с нужными характеристиками намного проще и дешевле. А в вашем примере еще и корпус довольно сложный в припайке. Ну и если делать не макет, а полноценное устройство то лучше сразу взять источник с подходящим напряжением. Будет меньше деталей, дольше время работы.
0
А если пойти на алиэкспресс, там можно купить готовый слаботочный DC/DC за цену КРЕН-ки в рознице, и не ломать голову, если в конвертерах не специалист. Там, конечно, обвязка не совсем та, что в даташитах, что влияет на КПД, но потери все равно будут сильно, сильно меньше, чем у КРЕН-ки.
Хотя на самом деле это не критично, 6мА потребляет схема или 3 — при использовании CR2032 «всю систему надо менять» (с)
Хотя на самом деле это не критично, 6мА потребляет схема или 3 — при использовании CR2032 «всю систему надо менять» (с)
0
И купите вы там с большой вероятностью что-то типа LM2596 с теми же 5-10 мА собственного потребления, что и у 7805.
Интересно, когда до любителей алиэкспресса дойдёт, что их судьба — наколенные поделки, нормально работающие через три раза на четвёртый, а у нормального разработчика минимум половина времени уходит не на махание паяльником, а именно что на чтение даташитов?..
Интересно, когда до любителей алиэкспресса дойдёт, что их судьба — наколенные поделки, нормально работающие через три раза на четвёртый, а у нормального разработчика минимум половина времени уходит не на махание паяльником, а именно что на чтение даташитов?..
0
потому, что электроника сильно «разрослась». уже доступна не пара десятков транзисторов, параметры которых можно было держать в голове, не полсотни цифровых микросхем, и т.п.
Т.е. чтобы заниматься этим профессионально — надо «очень быстро бежать»©.
Т.е. чтобы заниматься этим профессионально — надо «очень быстро бежать»©.
+1
Надо уметь читать.
А чип с 360 нА собственного потребления, на который я ссылку давал, пять лет уже выпускается.
А чип с 360 нА собственного потребления, на который я ссылку давал, пять лет уже выпускается.
0
Э-э-э… Там фото более чем достаточного разрешения, чтобы увидеть маркировку чипа. Типичная LDO-шка китайская — это 1117, ее сразу видно и ни с чем не спутать :) Да и индуктивности, опять же :)
Еще раз — взять готовый будет быстрее и дешевле, если разработчик не спец в данном вопросе.
Вы про Point-of-Load в курсе? В телекоммуникационном оборудовании они используются сплошь и рядом, поскольку разработчики спецы в высокочастотных дизайнах, но питание — не их конек. Поэтому проще поставить что-нибудь приличное, от GE или Murata за полчаса, чем тратить неделю на курение даташитов. Там свои проблемы выползают, конечно, с охлаждением, например — тепло с PoL в плату почти не уходит, но в общем случае это быстрее и надежнее, чем ваять самому DC/DC конвертер с нуля
Еще раз — взять готовый будет быстрее и дешевле, если разработчик не спец в данном вопросе.
Вы про Point-of-Load в курсе? В телекоммуникационном оборудовании они используются сплошь и рядом, поскольку разработчики спецы в высокочастотных дизайнах, но питание — не их конек. Поэтому проще поставить что-нибудь приличное, от GE или Murata за полчаса, чем тратить неделю на курение даташитов. Там свои проблемы выползают, конечно, с охлаждением, например — тепло с PoL в плату почти не уходит, но в общем случае это быстрее и надежнее, чем ваять самому DC/DC конвертер с нуля
0
Типичная LDO-шка китайская — это 1117, ее сразу видно и ни с чем не спутать :) Да и индуктивности, опять же :)
Что в названии LM2596 заставляет вас заподозрить, что я имел в виду LDO? Или вы не верите, что у DC/DC Iq может быть в десяток миллиампер? Ну, откройте даташит, что ли.
Еще раз — взять готовый будет быстрее и дешевле, если разработчик не спец в данном вопросе.
Большинство проблем имеет простое и очевидное неправильное решение.
Поэтому проще поставить что-нибудь приличное, от GE или Murata за полчаса, чем тратить неделю на курение даташитов
Я вам страшую вещь скажу: на все эти модули тоже есть даташиты. Которые тоже надо читать.
+1
А из чего эти голубенькие стойки? Неужели бумага?
0
Бумага :-) Как раз дочку привлек к процессу производства. Не оказалось в заначке подходящих шурупчиков, которые лезли бы в монтажные дырки этих макеток, поэтому стойки были сделаны из зубочисток, обернутых бумагой, покрытой цапонлаком. Крепление к макеткам — суперклей. На неделю конструкции хватит.
0
А один только вывод из сна занимает как минимум 65ms, требуемые на стабилизацию осциллятора
Выкидываем внешний кристалл, тактируемся от внутреннего RC, у которого минимальное время запуска — 6+14 KCK, т.е. 20000/8000000 = 2,5 мс.
+4
Вот да, я про эти 65ms написал со слов на каком-то форуме. В даташите это как-то не очень ясно описано (ну или я не очень понял). Буду изучать это шаманство через неделю :-)
Другое дело, будет ли от этого толк вообще, если спать надо 10ms всего.
Другое дело, будет ли от этого толк вообще, если спать надо 10ms всего.
0
![image](https://habrastorage.org/getpro/geektimes/comment_images/4b1/90a/dfe/4b190adfee4e0c2e10520eed2d6c78ba.png)
Я боюсь предположить, как можно ещё яснее-то это описать.
Не говоря уже про то, что у вас есть ещё и Standby Mode, в котором внешний осциллятор продолжает работать, энергопотребление в районе 100 мкА, а выход из сна — за единицы тактов.
+3
Я вот это все время курю: ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2545-8-bit-AVR-Microcontroller-ATmega48-88-168_Datasheet.pdf
Там такой таблицы я не нашел. Это откуда?
Там такой таблицы я не нашел. Это откуда?
0
И, к слову, я как раз внутренний осциллятор использую.
0
А почему 6+14, а не просто 14? Я так понял в случае выхода из сна (2 режима) будет только 6.
0
6ма однозначно говорят о криво написанной программе, извините.
Неоткуда взяться 6ти ма, если программа будет выходить из спячки по прерыванию RTC 25раз в секунду или около того(этого достаточно при 5в размахе) для быстрого инверса сегментов. Да даже и при 100герцах это очень много.
Используйте прерывания RTC, изучите внимательно типы сна.
Неоткуда взяться 6ти ма, если программа будет выходить из спячки по прерыванию RTC 25раз в секунду или около того(этого достаточно при 5в размахе) для быстрого инверса сегментов. Да даже и при 100герцах это очень много.
Используйте прерывания RTC, изучите внимательно типы сна.
0
> 25раз в секунду
Мало. Я пробовал разные режимы, и даже при 50 герцах заметно мерцание.
И тут другой момент — ds1307 умеет только 1Hz, 4kHz, 8kHz и 32kHz. Ничего подходящего.
> говорят о криво написанной программе, извините.
А это запросто :-) Это пока самая большая и сложная программа для контроллера, которую я написал в жизни. Знание специфики у меня очень умозрительное.
Мало. Я пробовал разные режимы, и даже при 50 герцах заметно мерцание.
И тут другой момент — ds1307 умеет только 1Hz, 4kHz, 8kHz и 32kHz. Ничего подходящего.
> говорят о криво написанной программе, извините.
А это запросто :-) Это пока самая большая и сложная программа для контроллера, которую я написал в жизни. Знание специфики у меня очень умозрительное.
0
Используйте встроенный rtc меги, тактируйте проц от того же кварца 32768
для часов это более чем достаточно.
Постоянную времени вашего индикатора не знаю, но обычно мерцание заметно только под углом, и уж точно не на 50гц, это уже не увидит глаз. Скорее всего мерцание связано с другими причинами — цикл какой-нибудь вклинивается и тп.
для часов это более чем достаточно.
Постоянную времени вашего индикатора не знаю, но обычно мерцание заметно только под углом, и уж точно не на 50гц, это уже не увидит глаз. Скорее всего мерцание связано с другими причинами — цикл какой-нибудь вклинивается и тп.
0
Подозреваю, в моем случае мерцание на 50 Hz связано с неправильной разводкой. Ведь я (ошибочно) сделал так, что все продвижения битов по 595-м неизбежно отображаются на индикаторе. А может и нет. Тайминги у меня в этом месте немного с потолка взятые.
0
Как оказалось, 4 килобайта — это очень мало. Особенно, если писать на C.
Э, нет. Это не С. это Arduino IDE. Чистый C дает вполне себе компактный код.
+7
Так какая разница какая IDE? Оно же все равно компилирует avr-gcc, с -Os. Если не допускать с++-ного оверхеда, никакой разницы быть не должно.
0
Оставил по этому поводу комментарий ниже. По моим наблюдениям Arduino IDE в исполняемый файл подсовывает какую-то свою библиотеку, отсюда и разница.
+2
Там еще стиль написания довольно странный. По крайней мере то, что я увидел в самом начале, можно заметно уменьшить, как по количеству занимаемого места, так и по количеству выполняемых команд.
Например, с самом начале, там где:
можно написать что-то вроде такого:
Оно и короче, и по крайней мере не медленнее получится.
Подобных мест, где вместо простой таблички огромный копипаст, в вашем коде очень много. Так что, скорее, это стиль а не компилятор.
Например, с самом начале, там где:
switch (num) {
case 0:
if (pos == 3) {
buf = 0b11101110;
} else {
buf = 0b11100111;
}
break;
......
можно написать что-то вроде такого:
static const unsigned char DigitCode = {0b11100111, .....};
static const unsigned char DigitCodePos3 = {0b11101110, .....};
if (num<9)
buf = (pos == 3) ? DigitCodePos3[num] : DigitCode[num] ;
Оно и короче, и по крайней мере не медленнее получится.
Подобных мест, где вместо простой таблички огромный копипаст, в вашем коде очень много. Так что, скорее, это стиль а не компилятор.
+1
Последнйи раз имел дело с Arduino лет 5 назад, и если я правильно помню, в Arduino IDE применялся язык Processing, у которого есть своя IDE — PDE (Processing Development Evironment). У этих IDE схожий вид и в Сети можно найти упоминания, что именно от Processing'а растут ноги у Arduino IDE. Также и слово «скетч» — название исходного кода программы в Arduino IDE, было позаимствовано из Processing.
Сейчас же на сайте википедии написано, что в Arduino IDE используется С++. Интересно, не ошибка ли это или действительно язык поменяли?
Сейчас же на сайте википедии написано, что в Arduino IDE используется С++. Интересно, не ошибка ли это или действительно язык поменяли?
0
Как оказалось, 4 килобайта — это очень мало. Особенно, если писать на C.
Поправьте меня кто нибудь если я не прав. Но у меня сложилось впечатление, что Arduino IDE в исполняемый файл подсовывает еще какой-то свой код. Который берет довольно много места. Например, когда для работы с LCD дисплеем я использовал Arduino IDE + liquidcrystal_i2c библиотеку, сборка заняла примерно 2500 байт. Без Arduino IDE и со своей библиотекой для i2c и дисплея та же функциональность уместилась в 750 байт.
0
Загрузчик? Я-то использовал minicore, который для atmega48 загрузчика не использует.
0
может лучше atxmega128 рассмотреть со встроенным контроллером сегментного ЖКИ?
0
В таком приложении стоило бы тупую работу по обновлению жк-экрана возложить на какой-то аппаратный rc таймер/генератор. Вполне при этом получив микропотребеление. Тем более, внешние чипы помимо контроллера задействованы
0
может вместо ЖК попробовать электронную бумагу? обновил цифру и в сон на минуту. оно не перестаёт отрисовывать изображение даже после отключения ото всего.
ссылка на али, цена $14, диагональ 2.9 дюймов
+1
Еще бы подешевле стоил( Почему то никогда не видел что нибудь самодельное с таким типом дисплея. Видимо есть какие то сложности в реализации…
+2
UFO just landed and posted this here
Этот цветной перерисовывается очень долго, секунды. Надо брать мелкий ч/б, он отрисовывается за 0.3 с кажется…
0
Можно взять 48 мегу с индексом V, или PA.У них нижний порог питания 1.8в. Для пущей экономии питания отключить ненужную периферию: компаратор(жрёт как конь), АЦП, УАРТ. RTC было бы лучше использовать, например, DS3231.У неё кварц уже на борту, питание 3.3в, потребление в активном режиме 200мкА. DS1307 тоже жрёт не мало, да ещё и кварц внешний(точности не добавляет).А что бы часы запустились, можно вписать в регистр секунд нолик и они пойдут без установки времени.
0
Если хотите использовать ЖКИ, то берите сразу микроконтроллер с драйвером ЖКИ. Это позволит разгрузить микроконтроллер и уменьшить токопотребление из-за того, что процессор не будет просыпаться 100 раз в секунду для обновления ЖКИ.
Правильное батареечное устройство с постоянной работой ЖКИ должно работать минимум полгода от одного комплекта батарей. Это единицы микроампер. Предложенный HT1621 плохо для этого годится, потому что только он потребляет в районе 20-30 мкА.
Правильное батареечное устройство с постоянной работой ЖКИ должно работать минимум полгода от одного комплекта батарей. Это единицы микроампер. Предложенный HT1621 плохо для этого годится, потому что только он потребляет в районе 20-30 мкА.
0
Ну единиц микроампер в домашних условиях наверное сложно добиться. А при 100 — 200 мкА и комплекте хороших пальчиковых батареек думаю пол года проработать может.
0
Ну единиц микроампер в домашних условиях наверное сложно добиться
И что же в домашних условиях этому мешает?
0
Большинство поделок лепится из того что под рукой) Иногда нет экономичного контроллера, иногда подходящих батареек или стабилизатора. Банально большинство самодельщиков скорее всего не имеют профильного образования или желания глубоко закапываться в даташиты. Одни могут написать экономичное ПО но у них проблемы с железом, у других обвязка почти ничего не жрет но не оптимальное ПО контроллера потребляет как паровоз.
0
Так это не сложно, а не охота.
0
Эх, если бы это была проблема самодельщиков… Сколько статей о том, как вмонтировать в мышку аккумулятор на 100500 мАч, чтобы проработала хоть месяц без зарядки, хотя у того же Logitech мыша работает год(!) на одной батарейке, соответственно два — на двух.
0
То есть в домашних условиях возникает какая-то непреодолимая сила, не позволяющая прочитать даташит на контроллер и написать прошивку нормально?
0
В домашних условиях делают устройства не только те кто могут осмыслить даташит. Часто просто дергают примеры из инета, поправляют по месту и вперед. Кому то может интереснее процесс пайки и непосредственно сборки, а к ПО отношение «лишь бы было». Это же просто хобби) Это как добиваться рекордных урожаев на домашней картофельной грядке: есть энтузиасты, а есть те кому «как то растет и ладно».
0
То есть оригинальную фразу «в домашних условиях сложно добиться единиц микроампер» надо читать как «лично мне в домашних условиях сложно добиться единиц микроампер, потому что лень этим заниматься, а хочется побыстрее сляпать на коленке»?
0
Можно и так. Хотя нет все немного сложнее. Например я могу хорошо развести плату, сделать или подобрать приличный корпус, все красиво спаять и собрать, но вот с ПО проблемы. Глядя на творения людей на проводах и скотче залитые из «соплемета» называть свои устройства сделанными «на коленке» я не хочу. Причем некоторые сопливые поделия реально жрут микроамперы, потому что создатели хорошо пишут ПО, чего я не могу. Каждому свое как говориться) Не отрицаю что есть те у кого все получается цивилизованно: и прошивка, и плата, и корпус.
0
Как вы руками такие пучки проводов паяете? Чисто субъективно гораздо меньше вариантов ошибок при проектировании в чем-то вроде Eagle. Хотя, вероятно, тут моей недостаток опыта сказывается.
+3
Тоже всегда удивлялся такому терпению) Мне проще сразу развести плату, попробовать собрать, потом в случае ошибок еще раз вытравить, чем напаивать проводок за проводком. Но обилие поклонников вот такого способа сборки говорит о том, что не все такие нетерпеливые.
0
Как раз нетерпеливые :-)
На одну разводку я бы дня три убил. А так я всю схему в голове держал и паял, просто поглядывая на распиновку.
На одну разводку я бы дня три убил. А так я всю схему в голове держал и паял, просто поглядывая на распиновку.
0
На одну разводку я бы дня три убил
Это вы утрируете. Даже впервые попробовав это сделать в каком-нибудь спринте такая плата получится менее, чем за час. При том основная масса времени уйдёт на перфекционизм :)
0
А потом внезапно помехи и наводки ловить на этот пучок проводов. А как делать дебаг такого я даже не представляю.
0
Хотя, вероятно, тут моей недостаток опыта сказывается.
Ваш недостаток опыта вполне дополняется достатком здравого смысла :)
Плату сделать действительно проще, быстрее, и с меньшим количеством ошибок. Просто под ЛУТ, дома.
0
Лут у меня получается, но не очень стабильно. Сейчас жду фабричные платы. Первый раз пробую. Хочу как белый человек нормальные использовать с шелкографией и маской.
![image](https://habrastorage.org/r/w1560/getpro/geektimes/comment_images/a89/5f7/3e3/a895f73e3cf0b133b6f95236882dd686.png)
![image](https://habrastorage.org/getpro/geektimes/comment_images/a89/5f7/3e3/a895f73e3cf0b133b6f95236882dd686.png)
+2
ЛУТ для макета самое то. И то не всякого, если сложная двухслойная плата приходится и макеты заказывать на производстве.
А так да, впервые держать в руках заводскую плату собственной разводки нереально круто!
А так да, впервые держать в руках заводскую плату собственной разводки нереально круто!
0
Лут я делал) только бумага из журнала медицинского оказалась неправильной. Тонер слишком тонким слоем перенёсся, хотя и отклеилась бумага сама без следов. В итоге вытравило сильно дорожки. Впрочем, для прототипа норм. Один чип я тупо сжёг перегрузкой) но это уже я проступил и ошибка была не в плате, а в коммутации гнезда наушников.
![](https://habrastorage.org/r/w780q1/webt/zv/uk/jf/zvukjfwpl8tmwbmxf6h2qexyntw.jpeg)
![](https://habrastorage.org/webt/zv/uk/jf/zvukjfwpl8tmwbmxf6h2qexyntw.jpeg)
0
Дорожки после травления хорошо бы залудить под паяльной кислотой и тщательно смыть (это если плата очень давно лежит и вся покрылась окислами, гидрокислами и прочей гадостью). Ну и попробовать сменить флюс и припой.
0
Зачем паяльной кислотой издеваться над жалом паяльника, дорожками, легкими и глазами? Пемолюкс на жесткую сторону губки, чуть воды и натереть плату этой кашей. Даже после сильного окисления медь становится как новой. Да и остатки тонера хорошо стираются.
0
Я до травления и тонера поверхность платы обрабатывал алмазом на 2000 Grit. Вроде все снялось. Тут проблема в том, что после травления дорожка в мелкую сеточку. По факту даже участок обрыва был. Реально перетравлено сильно. Но на руках не было других материалов — работал с тем, что было. Флюс активный спирто-канифольный. Вроде смылся без остатков в изопропаноле. Дал полежать полчаса в нем, а потом хорошо потряс.
Если я наносил олово как положено пучком медных волосков, то нанесение было ровным. Но перетравленные дорожки не давали непрерывного гладкого рисунка. Поэтому нанес жалом паяльника с избытком и не очень красиво. С другой стороны, сопротивление низкое, все норм. А когда заводские придут — уже переделаю на них.
Если я наносил олово как положено пучком медных волосков, то нанесение было ровным. Но перетравленные дорожки не давали непрерывного гладкого рисунка. Поэтому нанес жалом паяльника с избытком и не очень красиво. С другой стороны, сопротивление низкое, все норм. А когда заводские придут — уже переделаю на них.
0
![](https://habrastorage.org/webt/zo/mb/7s/zomb7sak0pi8f0sxovjz1vivffy.jpeg)
Вот такая грусть из-за плохого трансфера получилась. Причем там даже обрыв есть по питанию. В районе посадочной площадки конденсатора слева вверху. Что есть) Переделывать некогда было. Прототип, однако.
0
ЛУТ требует навыка, «набивки руки» — именно в привязке к конкретному принтеру, утюгу и бумаге. Но при «набитой руке» крайне быстр. Фоторезист — более стабилен, хотя привычки тоже требует. Ну и чуть медленнее. ну а изготовление плат под заказ — медленно, но крайне качественно
0
Мне очень редко нужно, поэтому привычки особо нет)
0
Фоторезист требует ещё и некоторого оборудования — как минимум самого резиста, лампы, плёнки для шаблонов. А для ЛУТа утюг, принтер и журнал с сиськами, то есть порог вхождения ниже, можно начать прям вот когда загорелось.
0
Я смотрел на фоторезист. Но там реально порог для единичных экземпляров уже такой, что проще на заводе заказать.
0
абсолютно согласен. ЛУТ — это вотпрямщазз с нуля, фоторезист — следующий шаг, ибо надо заранее купить фоторезист (рублей 200), лампу (еще 200), пленку (еще 200). Зато когда это есть — оно по «старту» уже не отличается, но тут уже и качество выше, и повторяемость.
То же касается и паяльника — первый детекторный приемник можно и на скрутках, затем — дедовским стоваттником, потом хочется что-то нормально лежащего в руке и не перегреавющегося — ну а затем и станцию можно прикупить. То же касается и измерений. И отладки софта. Предела совершенству нет, но каждый останавливается на своем уровне.
То же касается и паяльника — первый детекторный приемник можно и на скрутках, затем — дедовским стоваттником, потом хочется что-то нормально лежащего в руке и не перегреавющегося — ну а затем и станцию можно прикупить. То же касается и измерений. И отладки софта. Предела совершенству нет, но каждый останавливается на своем уровне.
0
где Вы его за 200 видели? Давече покупал позитив 20 — 1000 р. Лампа — 2500 для ногтей, пленка может и 200, но лазерный принтер хорошо бы в смету добавить
0
видел.
Лампы — я засвечиваю энергосберегайкой, извиняюсь, «черного света» :-), цена 180 рублей.
не рекламы ради
Лампы — я засвечиваю энергосберегайкой, извиняюсь, «черного света» :-), цена 180 рублей.
0
пленка тоже есть, но у меня с ней не заладилось, как-то грубо выходит, шаг 0.5 не протравливается. С позитивом лучше, там 0.5 не проблема. А черную лампу так и не нашел в продаже, пришлось купить косметическую лампу для полимеризации лака
0
это уже нюансы. но главное то, что сейчас окромя древних методов а-ля стеклянный рейсфедер и цапон-лак (а то и резака из ножовочного полотна ) — вполне доступны и ЛУТ, и фоторезист (не из «белка куриного яйца и еще чего-то», как в рецептуре книги «радиолюбительские технологии», а вполне заводской ), причем фоторезисты еще можно выбирать.
плюс smd. Это ж по радиокружковым меркам — просто рай :-)
плюс smd. Это ж по радиокружковым меркам — просто рай :-)
0
о да, молодежь наверное о рейсфедерах не в курсе… особо было сложно степень разведения лака ацетоном подобрать чтобы нормально наносились дорожки. А еще вариант был в стержень шариковой ручки лак заливать, а из наконечника выдавить шарик. Эх время
0
Купите у китайцев бумагу для ЛУТ. Очень удобная вещь. Желтенькие такие листы:
www.ebay.com/itm/10PCS-A4-Sheets-Heat-Toner-Transfer-Paper-For-DIY-PCB-Electronic-Prototype-Mak-/400505239086?hash=item5d3ff8f62e
www.ebay.com/itm/10PCS-A4-Sheets-Heat-Toner-Transfer-Paper-For-DIY-PCB-Electronic-Prototype-Mak-/400505239086?hash=item5d3ff8f62e
0
Я видел. Во всех комментариях стоят маты по поводу того, что китайцы не упаковывают в жесткий картон. В итоге все скомканное приходит.
0
у нас в городе в радиолюбительских ее магазинах продают (хотя я не пробовал). Ну и фоторезист (которого тоже надолго хватает при хранении в прохладном месте) там же.
0
Это да) Мне вообще в трубочку свернули пачку листов. Поставил под стопку книг чтоб выровнялись. Я потом режу лист на четыре и приклеиваю клейкими ценниками к обычной бумаге. Так экономичнее выходит и неровность не так сильно сказывается.
0
О, это ещё не пучки совсем :)
Там их меньше сотни даже.
Там их меньше сотни даже.
+1
Чисто субъективно гораздо меньше вариантов ошибок при проектировании в чем-то вроде Eagle
Всё абсолютно правильно делаете. Время, потраченное на спагетти из проводов, ЛУТ и Sprint Layout — это время, потраченное впустую.
+4
Про Sprint Layout не пойму, чем он плох для любительских устройств низкой сложности?
0
Да ничем не плох на самом деле. Да и провода не плохи. Это же для себя, развлечение типо. Если говорить про потраченное впустую время, то и часы можно за 50 рублей купить в ларьке ближайшем)
+1
Нет сквозного проектирования, соответственно, непригоден для сколь-нибудь сложного устройства.
Зачем тратить на него время, если тот же DipTrace бесплатен и осваивается за полчаса?
Зачем тратить на него время, если тот же DipTrace бесплатен и осваивается за полчаса?
0
Eagle для двухслойных тоже бесплатен. Более чем достаточно.
0
Не бесплатен, у него ограничение на размеры. Вроде для большинства поделок и достаточные (100х100мм ЕМНИП, лень точно искать), но иногда можно упереться по одному габариту, т.е. например узенькую линеечку на 150 уже не сделаешь.
0
Это согласен. На большинство хобби-проектов не влияет. Ну KiCad есть, в конце концов. Хотя я и к Eagle-то мучительно привыкал с нуля. До него цапонлаком рисовал кривулины на текстолите руками.
0
запах цапонлака, хлорного железа и канифоли — прям картин «детство в радиокружке».
0
Ага) Но оно было фантастически кривым. И еще все элементы выводные. Я сейчас прям не могу нарадоваться SMD. Сверлить не надо, места мало занимают.
0
«и ведь всего-то — просто НЕ НАДО БЫЛО приделывать выводы к деталям»© :-0
0
Самое интересное ведь эти детали и раньше существовали. Помню в институте были древние советские гибридки с вполне себе современно выглядящими SMD конденсаторами. Почему их в обычных схемах не применяли непонятно… Видимо у нас эффект послезнания) Додуматься не приделывать ноги наверное было не так просто
0
На самом деле, пайка пучка проводов на плате индикатора, вдумчиво и размеренно, заняла только около двух часов. Не то что бы это меня совсем не достало, но все же оказалось не так и страшно. В паре мест недопаял, в паре мест перепаял, но это легко удалось исправить. Где-то паяльником, а где-то кодом. Да, было бы здорово немного переделать, вывести линию RCLK на контроллер, но этим я вряд ли займусь :-)
А вот ЛУТ, с его множеством операций меня не привлекает. Плавали, знаем. Сначала развести, причем в один слой там не получится, придется пачку мостиков городить. Потом напечатать-прокатать утюгом. Где у меня валяется подходящая бумага, я даже не помню, и как ЛУТ отнесется к имеющемуся в наличии неродному тонеру — не знаю. Травить, мыть — вонюче и грязно. Сверлить. Не помню почему, но это операция почему-то вызывает особенное отвращение.
И при этом, в результате будет сложнее исправить неизбежные ошибки. Вон, пытался заодно реанимировать плату, красиво разведенную и распаянную семь лет назад под 0.3mm дорожки, TQFP и прочие smd. Думал когда-то красивый такой термометр соорудить. Оказалось — reset у AtMega8 забыл подтянуть. Поправить уже затруднительно.
А вот ЛУТ, с его множеством операций меня не привлекает. Плавали, знаем. Сначала развести, причем в один слой там не получится, придется пачку мостиков городить. Потом напечатать-прокатать утюгом. Где у меня валяется подходящая бумага, я даже не помню, и как ЛУТ отнесется к имеющемуся в наличии неродному тонеру — не знаю. Травить, мыть — вонюче и грязно. Сверлить. Не помню почему, но это операция почему-то вызывает особенное отвращение.
И при этом, в результате будет сложнее исправить неизбежные ошибки. Вон, пытался заодно реанимировать плату, красиво разведенную и распаянную семь лет назад под 0.3mm дорожки, TQFP и прочие smd. Думал когда-то красивый такой термометр соорудить. Оказалось — reset у AtMega8 забыл подтянуть. Поправить уже затруднительно.
0
А вот ЛУТ, с его множеством операций меня не привлекает.
Это вы фоторезист не пробовали)
Травить, мыть — вонюче и грязно
Травите не хлорным железом, а перекисью и лимонной кислотой (ну еще соли щепотка) и будет все чисто.
Сверлить.
Переходить на поверхностный монтаж с минимумом дыр. В макете можно совсем без дырок обойтись.
0
А вы измеряли что именно жрет 6ма?
Сам микроконтроллер или может быть ЖК индикатор.
Если микроконтроллер то резать частоту. Зачем аж 1 МГц :)
Сам микроконтроллер или может быть ЖК индикатор.
Если микроконтроллер то резать частоту. Зачем аж 1 МГц :)
0
> А вы измеряли что именно жрет 6ма?
На самом деле, нет. Методика получения этого результата хромает у меня на все ноги. Мерил я в одной точке, все целиком. И как бы даже с лишними деталями, имевшимися во время измерения в схеме.
Вот, будет чем через неделю заняться :-)
> Если микроконтроллер то резать частоту. Зачем аж 1 МГц :)
А тут уже есть варианты.
Вот хотелось бы всем участникам обсуждения спасибо сказать — здравых и интересных идей я увидел множество. Есть куда думать и что делать.
На самом деле, нет. Методика получения этого результата хромает у меня на все ноги. Мерил я в одной точке, все целиком. И как бы даже с лишними деталями, имевшимися во время измерения в схеме.
Вот, будет чем через неделю заняться :-)
> Если микроконтроллер то резать частоту. Зачем аж 1 МГц :)
А тут уже есть варианты.
Вот хотелось бы всем участникам обсуждения спасибо сказать — здравых и интересных идей я увидел множество. Есть куда думать и что делать.
0
Как оказалось, 4 килобайта — это очень мало
А какой посоветуете контроллер под часы под ТЗ ниже?
Описание
— 14 семисегментных индикаторов (светодиодных)
— 2 датчика температуры (DS18B20)
— Аналоговый датчик давления (выводить данные надо в мм.рт.ст с десятыми)
— Авторегулировка яркости по логарифмическому закону (датчик света + плавная регулировка)
— ИК пульт управления
— Режим обучения для пульта, чтобы можно было использовать пульт от любой ненужной техники
— Установка времени с пульта
— Цифровая коррекция хода (RTC не используются, только МК), с пульта
— Корректировка отображения давления (компенсация высоты) с пульта
— 10 режимов отображения информации (с секундами, без, дата, разные комбинации температуры/давления)
— Связь с ПК по UART (установка времени)
— 2 датчика температуры (DS18B20)
— Аналоговый датчик давления (выводить данные надо в мм.рт.ст с десятыми)
— Авторегулировка яркости по логарифмическому закону (датчик света + плавная регулировка)
— ИК пульт управления
— Режим обучения для пульта, чтобы можно было использовать пульт от любой ненужной техники
— Установка времени с пульта
— Цифровая коррекция хода (RTC не используются, только МК), с пульта
— Корректировка отображения давления (компенсация высоты) с пульта
— 10 режимов отображения информации (с секундами, без, дата, разные комбинации температуры/давления)
— Связь с ПК по UART (установка времени)
0
Можно Atmega328 (1.7$) или STM32F103C8T6 (2.13$).
Проще, (и, уверен, дешевле) вместо 14 семисегментных индикаторов (светодиодных) использовать 0.96" I2C IIC Serial 128X64 за 2.91$.
Проще, (и, уверен, дешевле) вместо 14 семисегментных индикаторов (светодиодных) использовать 0.96" I2C IIC Serial 128X64 за 2.91$.
0
Ладно, я не зря процитировал автора — скорее ему на заметку.
Эти часы висят передо мной и работают 9й год, весь функционал как раз на ATMega48. И памяти ещё немного осталось :)
Светодиодные индикаторы выбраны из-за габаритов (6 шт под время 35мм высотой, два блока по 4 индикатора на 20мм) — их видно с любого места зала. Ну и читаемость отличная.
Авторегулировка позволяет не светить как ночник ночью, и нормально читаться при прямом солнечном свете. Индикаторы работают через те же 595е, т.к. никаких ног не хватит обслужить всё напрямую. Аналоговый датчик давления — за неимением лучшего.
По поводу точности: цифровая коррекция, при условии, что часы постоянно находятся при комнатной температуре, позволила их отстроить до нескольких секунд в год (около 15ти, ЕМНИП, дальше уже муторно), что более, чем достаточно.
Эти часы висят передо мной и работают 9й год, весь функционал как раз на ATMega48. И памяти ещё немного осталось :)
Светодиодные индикаторы выбраны из-за габаритов (6 шт под время 35мм высотой, два блока по 4 индикатора на 20мм) — их видно с любого места зала. Ну и читаемость отличная.
Авторегулировка позволяет не светить как ночник ночью, и нормально читаться при прямом солнечном свете. Индикаторы работают через те же 595е, т.к. никаких ног не хватит обслужить всё напрямую. Аналоговый датчик давления — за неимением лучшего.
По поводу точности: цифровая коррекция, при условии, что часы постоянно находятся при комнатной температуре, позволила их отстроить до нескольких секунд в год (около 15ти, ЕМНИП, дальше уже муторно), что более, чем достаточно.
0
Вот. 595.
Плюс их, хоть и копеечная, но стоимость, плюс время на разработку и пайку…
Сейчас всё очень сильно дешевле и удобнее.
Кстати, на больших светодиодных индикаторах у меня 595е неслабо даже грелись.
Плюс их, хоть и копеечная, но стоимость, плюс время на разработку и пайку…
работают 9й год
Сейчас всё очень сильно дешевле и удобнее.
Кстати, на больших светодиодных индикаторах у меня 595е неслабо даже грелись.
0
Кстати, на больших светодиодных индикаторах у меня 595е неслабо даже грелись.
35-миллиметровые усиливал транзисторами. Под него как раз помещается 595й и 8 транзисторов :) 20-миллииетровые нормально тянут. Точнее, не просто «нормально», схема вся продумывалась и рассчитывалась по даташитам.
Сейчас всё очень сильно дешевле и удобнее.
И не так интересно :( Старею наверное…
0
Меня учили, что «чем меньше элементов на плате, тем лучше» (если при этом задача правильно исполняется). Транзисторы на ULN2003 поменял бы.
И, кстати, интересно всё равно. Просто возможностей больше.
И, кстати, интересно всё равно. Просто возможностей больше.
0
Ну, поди, все-таки не на C прошивка? :-)
Нет, я знаю как и с моего кода примерно килобайт срезать оставаясь на C, но такого желания не испытываю. Переживания главного героя известного рассказа «Один байт» я повторять не хочу :-)
Нет, я знаю как и с моего кода примерно килобайт срезать оставаясь на C, но такого желания не испытываю. Переживания главного героя известного рассказа «Один байт» я повторять не хочу :-)
0
Нет, не на Си, я тогда им ещё не владел на таком уровне. Но позже понял, что на Си это получилось бы ничуть не хуже.
Тут ещё дело в архитектуре — ассемблер AVR8 настолько прост и логичен, что после килобайта кода, на нём начинаешь разговаривать и посылаешь к чёрту все остальные средства разработки :) С каким-нибудь STM8 уже так не получится, а STM32 — это будет просто баловством, никак не связанным с реальностью.
Тут ещё дело в архитектуре — ассемблер AVR8 настолько прост и логичен, что после килобайта кода, на нём начинаешь разговаривать и посылаешь к чёрту все остальные средства разработки :) С каким-нибудь STM8 уже так не получится, а STM32 — это будет просто баловством, никак не связанным с реальностью.
0
UFO just landed and posted this here
На самом деле такие неудачи получаются, когда используешь микросхему широкого потребления для решения специфических задач.
Во-первых у серии ATmega есть контроллеры с буквой L — это как раз со сниженным потреблением питания (типа ATmega8L). Еще меньше потребляют STM8L… У некоторых микросхем STM32L есть внутренние часы реального времени, специализированная ножка Vbat с помощью которой они питаются и отдельный вход для часового кварца.
Во-вторых требуемый контроллеру ток пропорционален (кроме частоты работы, чего вы снижать не хотите из-за I2C) от напряжения питания. Снижайте напряжение питания до 1.8В.
В-третьих в данной ситуации постоянно загружать в SN54HC595 новые данные — расточительство. Надо грузить их туда раза 2 (на самом деле чуть чаще, чтобы обновление было без рывков) в секунду, а осцилляции напряжения на выходе из микросхемы, чтобы обновлялся экран с частотой 100 Гц с помощью отдельной микросхемы ключей, которые будут дергать ногами от генератора с чатотой 100 Гц… мультивибратора какого-нибудь.
В итоге микроконтроллер просыпается 2 раза в секунду, опрашивает часы, загружает информацию в буфер и засыпает.
Во-первых у серии ATmega есть контроллеры с буквой L — это как раз со сниженным потреблением питания (типа ATmega8L). Еще меньше потребляют STM8L… У некоторых микросхем STM32L есть внутренние часы реального времени, специализированная ножка Vbat с помощью которой они питаются и отдельный вход для часового кварца.
Во-вторых требуемый контроллеру ток пропорционален (кроме частоты работы, чего вы снижать не хотите из-за I2C) от напряжения питания. Снижайте напряжение питания до 1.8В.
В-третьих в данной ситуации постоянно загружать в SN54HC595 новые данные — расточительство. Надо грузить их туда раза 2 (на самом деле чуть чаще, чтобы обновление было без рывков) в секунду, а осцилляции напряжения на выходе из микросхемы, чтобы обновлялся экран с частотой 100 Гц с помощью отдельной микросхемы ключей, которые будут дергать ногами от генератора с чатотой 100 Гц… мультивибратора какого-нибудь.
В итоге микроконтроллер просыпается 2 раза в секунду, опрашивает часы, загружает информацию в буфер и засыпает.
+1
Еще меньше потребляют STM8L
… у которых есть серия с драйвером ЖК. Общее потребление уже в микроамперах идёт.
0
в серии stm32l до черта чипов с LCD контроллерами. Я нежно любил stm8(f правда, не l), но возьня с теперь имеет мало смысла.
0
У других производителей тоже есть.
Собственно, всё сводится у первому предложению выше: автор использовал "… микросхему широкого потребления для решения специфических задач", и он их решил отчасти, на сколько она позволяет.
Собственно, всё сводится у первому предложению выше: автор использовал "… микросхему широкого потребления для решения специфических задач", и он их решил отчасти, на сколько она позволяет.
0
Да ничего он не решил.
У него в камне есть полдюжины режимов энергосбережения. Какой-нибудь Extended Standby Mode оставляет включённым внешний осциллятор, продолжает тактировать Timer/Counter2, имеет потребление 50 мкА на подходящем кристалле и выходит на полные обороты за 6 тактов.
Это, конечно, не 0,5-1,5 мкА чипов с нормальным RTC и низкопотребляющей периферией, но это в десятки раз лучше того, что получил автор.
У него в камне есть полдюжины режимов энергосбережения. Какой-нибудь Extended Standby Mode оставляет включённым внешний осциллятор, продолжает тактировать Timer/Counter2, имеет потребление 50 мкА на подходящем кристалле и выходит на полные обороты за 6 тактов.
Это, конечно, не 0,5-1,5 мкА чипов с нормальным RTC и низкопотребляющей периферией, но это в десятки раз лучше того, что получил автор.
0
Решил в плане того, что устройство заработало. С потреблением конечно у него швах полный, можно было сократить намного, все варианты уже озвучили, но это всё равно не было бы решением задачи полностью (если она не звучит как «сделать кровь из носа на ATMega48»).
0
Я вот полистал даташит пятнадцать минут (а я в этом десятилетии, если мне память не изменяет, сделал один проект на AVR, да и тот был вспомогательной фигнёй на 8-ногой тиньке в одну страницу кода размером — это к вопросу о том, насколько хорошо я их знаю), и в принципе спокойно готов сделать на ATMega48 часы со средним потреблением не выше 10 мкА и без всякого внешнего обвеса.
1) вешаем внешний кварц 32,768 кГц на TOSC1/TOSC2
2) Timer/Counter2 включаем в асинхронный режим от этого кварца
3) чип заводим от встроенного RC на 8 МГц с делителем 8
4) уводим чип в Power-Save Mode, оставляя TC2 тикать асинхронно
5) каждые 1/128 с = 7,8125 мс просыпаемся по прерыванию от TC2, раскочегаривание внутреннего RC занимает 6 тактов, т.е. меньше микросекунды
6) перещёлкиваем полярность ЖК, добавляем 1/128 с в счётчик времени, засыпаем обратно
Даташит не раскрывает нам, сколько оно жрёт в PSM с часовым кварцем, но это не должно быть больше 2-3 мкА.
10 мкА среднего потребления — это почти три года работы на CR2032.
1) вешаем внешний кварц 32,768 кГц на TOSC1/TOSC2
2) Timer/Counter2 включаем в асинхронный режим от этого кварца
3) чип заводим от встроенного RC на 8 МГц с делителем 8
4) уводим чип в Power-Save Mode, оставляя TC2 тикать асинхронно
5) каждые 1/128 с = 7,8125 мс просыпаемся по прерыванию от TC2, раскочегаривание внутреннего RC занимает 6 тактов, т.е. меньше микросекунды
6) перещёлкиваем полярность ЖК, добавляем 1/128 с в счётчик времени, засыпаем обратно
Даташит не раскрывает нам, сколько оно жрёт в PSM с часовым кварцем, но это не должно быть больше 2-3 мкА.
10 мкА среднего потребления — это почти три года работы на CR2032.
0
Вместе с потерями на сдвиговых регистрах и рассыпухе будет все равно под 0,5мА. По крайней мере, если оставить, как у автора.
0
Понятно, что 7805 придётся закопать, равно как и регистры на MC74VHC595 какой-нмбудь поменять.
Но в атмеге48 с 10 мкА среднего потребления в этой схеме совершенно ничего фантастического нет.
Но в атмеге48 с 10 мкА среднего потребления в этой схеме совершенно ничего фантастического нет.
0
Не, с 7805 будет еще раз в 10-20 больше, но это так уж.
А вообще, я с вами полностью согласен, и для меня вообще было удивительно, что узким местом у автора какм-то образом оказался контроллер. Тем более, что они очень хорошие у Atmel, хоть и слабоваты по фаршу по нынешним меркам.
А вообще, я с вами полностью согласен, и для меня вообще было удивительно, что узким местом у автора какм-то образом оказался контроллер. Тем более, что они очень хорошие у Atmel, хоть и слабоваты по фаршу по нынешним меркам.
0
А вообще, я с вами полностью согласен, и для меня вообще было удивительно, что узким местом у автора какм-то образом оказался контроллер
Для меня — нет, не удивительно. Нагромождение однотипных поверхностных руководств «для новичков» в интернете плюс привычка к тому, что думать не надо, надо на алиэкспрессе купить и готовую библиотечку скачать.
Причём последнее сейчас разными говорящими головами, которые попросту сами не умеют ничего более сложного, чем сунуть алиэкспрессу номер своей кредитки, воспитывается под лозунгами «стартап должен первым собрать MVP», «некогда тратить время на ненужные вещи» и т.п.
P.S. Параллельно этому треду наблюдаю, как в фейсбуке человеку в ответ на вопрос, как сделать в ардуине 10-секундный таймер, советуют в loop() воткнуть процедуру, которая на каждом витке будет смотреть аптайм и считать, не прошло ли десять секунд. Это при том, что даже в этом убожестве давно уже изобрели таймер с прерываниями, а для автора loop() вообще черти отдельную сковородку в аду греют.
0
Тут кто то недавно автоматику лифта на ардуине делал) Скоро будут в производство пускать поделки сделанные на беспаечных макетках)
0
залил провода, воткнутые в макетку, из пистолета-соплемёта (это еще один — судя по ютубу- любимый инструмент импортных DIYщиков), и «в продакшн»©
0
Так на GT были недавно чуваки, у которых китайский поставщик чип флэшки поменял на условно-совместимый — и всё встало, потому что скачанный из инета драйвер с новой флэшкой не работает, а как это отлаживать и править, они даже примерно не представляют.
У них там всё комьюнити за месяц (!) не смогло даже выяснить, что конкретно сломалось-то.
У них там всё комьюнити за месяц (!) не смогло даже выяснить, что конкретно сломалось-то.
+2
Это все из за невероятно снизившегося порога вхождения. Сейчас любой может что то как то работающее сварганить посмотрев урок на ютубе и воткнув провода в ардуину. Это здорово повышает самооценку (и это очень даже хорошо). У многих повышает настолько, что они мнят себя гениальными конструкторами (что уже плохо) и начинают рожать «это». Раньше эти товарищи даже не сунулись бы в эту область или наняли бы профессионала.
0
У некоторых микросхем STM32L есть внутренние часы реального времени, специализированная ножка Vbat с помощью которой они питаются и отдельный вход для часового кварца.
RTC и часовой кварц есть у всех STM32L.
Ножки Vbat у STM32L нет, потому что она им не нужна.
0
Другая батарея, другой контроллер, лишние микросхемы выкинуть и всё будет ок.
CR2032 должно хватать на пару лет минимум.
CR2032 должно хватать на пару лет минимум.
0
Я делал (давно, правда) счётчик импульсов с некоторыми наворотами типа запоминания, установки и тоже на 3x7 segment индикаторе. Так импульсы ловил через прерывание. Всё работало идеально (правда, на PIC16F628A). Выполнял функции все и при этом спокойно считал до 10к Hz. (Код есть).
Сейчас как раз захотел попробовать на Atmega8 поуправлять пучком светодиодных лент в разных режимах, попробую и ваш код глянуть. Сразу удивляет отсутствие
Да и вроде сперва проще и понятнее сформировать весь экран и потом отправить на отрисовку.
Сейчас как раз захотел попробовать на Atmega8 поуправлять пучком светодиодных лент в разных режимах, попробую и ваш код глянуть. Сразу удивляет отсутствие
такой структуры.
const unsigned char seg[] = {
0b00000010, // 0
0b01001111, // 1
0b00010001, // 2
0b00000101, // 3
0b01001100, // 4
0b10000100, // 5
0b10000000, // 6
0b00001111, // 7
0b00000000, // 8
0b00000100, // 9
};
0b00000010, // 0
0b01001111, // 1
0b00010001, // 2
0b00000101, // 3
0b01001100, // 4
0b10000100, // 5
0b10000000, // 6
0b00001111, // 7
0b00000000, // 8
0b00000100, // 9
};
Да и вроде сперва проще и понятнее сформировать весь экран и потом отправить на отрисовку.
Ещё чуть имхо.
Такие вещи я сделал
mode = MODE_SET_HOUR;
mode_timeout = MODE_TIMEOUT_SET;
} else if (mode == MODE_SET_HOUR) {
mode = MODE_SET_DAY;
mode_timeout = MODE_TIMEOUT_SET;
в виде
mode++; // и с комментариями, конечно. Так на пару тактов меньше, хотя в код компилятора ещё стоило бы глянуть, возможно, и оптимизировал.
mode = MODE_SET_HOUR;
mode_timeout = MODE_TIMEOUT_SET;
} else if (mode == MODE_SET_HOUR) {
mode = MODE_SET_DAY;
mode_timeout = MODE_TIMEOUT_SET;
в виде
mode++; // и с комментариями, конечно. Так на пару тактов меньше, хотя в код компилятора ещё стоило бы глянуть, возможно, и оптимизировал.
0
Штука в том, что все рекомендации встреченные мною на тему энергопотребления AVR-ок замечательно описываются фразой «спите глубже». Но контроллеру в часах нельзя спать! Ему денно и нощно, 100 раз в секунду необходимо обновлять экран.
Контроллер должен спать. Для обновления индикатора активируйте SQW/OUT на DS1307 и подайте его на ножку ОЕ 595-их. Для снижения потребляемой мощности от батарейки, можно также использовать солнечную панель, встроив её в корпус часов.
0
Заинтриговали. Попробую на MSP430FR4133 сделать, благо платка есть уже.
0
Я бы так делал:
1. Микроконтроллер взял самый современный ATxxxPA.
2. Питание от 3 вольтовой литиевой батарейки напрямую.
3. Частота обновления LCD 50Гц или меньше.
4. ATmega почти все время в глубоком сне, запущен только Watchdog, который её и будит 50 раз в секунду. Потребление 4uA.
5. ATmega тактируется либо от внутреннего RC генератора, либо от внешнего клока, поданного напрямую от микросхемы часов.
6. Отключена вся остальная периферия.
7. Вывод цифр идет с помощью заранее расчитанных таблиц.
8. Никаких Arduino библиотек, пишем в нормальной среде с полным контролем кода на выходе (IAR) на С/С++.
1. Микроконтроллер взял самый современный ATxxxPA.
2. Питание от 3 вольтовой литиевой батарейки напрямую.
3. Частота обновления LCD 50Гц или меньше.
4. ATmega почти все время в глубоком сне, запущен только Watchdog, который её и будит 50 раз в секунду. Потребление 4uA.
5. ATmega тактируется либо от внутреннего RC генератора, либо от внешнего клока, поданного напрямую от микросхемы часов.
6. Отключена вся остальная периферия.
7. Вывод цифр идет с помощью заранее расчитанных таблиц.
8. Никаких Arduino библиотек, пишем в нормальной среде с полным контролем кода на выходе (IAR) на С/С++.
+1
А никто не подскажет где вообще описание на похожие жк дисплеи взять??? А то есть похожий, выбран из счетчика газа, только у него не 40 ног, а 8-мь. А как на него описание искать даже мыслей нет никаких(((
0
8 ног — это либо одна цифра, либо там есть свой контроллер.
Если это одна цифра, то соответствие сегментов ногам выясняется просто тестером и записывается на бумажке (как это делал я). А вот если там свой контроллер…
Если это одна цифра, то соответствие сегментов ногам выясняется просто тестером и записывается на бумажке (как это делал я). А вот если там свой контроллер…
0
Это COG (Chip On Glass), у него внутри контроллер, с меньшей вероятностью — с I2C/SPI, с большей — просто сдвиговый регистр типа ML1001.
Смотреть у производителя данного экрана. Если он неизвестен — надо было смотреть, что там на ножках происходит, до того, как экран выдирать.
Смотреть у производителя данного экрана. Если он неизвестен — надо было смотреть, что там на ножках происходит, до того, как экран выдирать.
0
Сегментный ЖК-индикатор. Скорее всего 4bit-параллельный интерфейс. Смотрите по плате счетчика, где питание, а где данные.
0
- Снизить рабочее напряжение контроллера. 2.7V
- Снизить до минимума рабочее напряжение дисплея.
- Снизить временные периоды сигналов дисплея.
- Нафиг линейник и крону. 2032 и диод ваш друг.
0
Все уже придумано. 20 мкА при питании от 3-х вольт: danyk.cz/avr_lcd_hod_en.html
0
Всякие DC/DC здесь, конечно, ни к чему. Мой вариант также на ATMega48 (хотел на Atmega8 сначала сделать) — собственно этот контроллер с работой от внутреннего генератора 1МГц (8МГц, деленное на 8), ЖК индикатор от мультиметра DT890. Управляется четырьмя регистрами 595. Сами часы на DS1302. Они и модуль с ЖК индикатором работают через аппаратный SPI. Он настроен на максимальную частоту. К контроллеру подключен часовой кварц для работы в асинхронном режиме. Настроено прерывание по совпадению. В прерывании в SPI выводятся 4 байта, которые записываются в регистры. Каждый раз в прерывании данные выводятся инвертированными по сравнению с значениями ранее. Прерывание происходит приблизительно 50 раз секунду. Все остальное время спим. Итого от 4 с небольшим вольт потребление около 160мкА. Точнее это то, что усредненно показывает мультиметр. Работает это от б/у мизинчиковых батареек от тонометра. Т.к. там они уже не тянут, хотя и напряжение на них 1.35В. А в таких часах вполне год могут отработать. Планирую заменить их на аккумуляторы с подзарядкой от солнечной батареи. Правда теряется некоторая мобильность в таком случае. А так же хочу добавить к часам датчик температуры DS1820 и выбросить его за окно (программно это уже реализовано), а также подсветку на светодиодах от светодиодной ленты.
Часы
Плата для ЖК индикатора
Плата для ЖК индикатора
0
Класс)
Поставьте лучше вместо аккумулятора ионистор. Проблем с деградацией не будет (хотя ионистор тоже не вечен). Энергии как раз должно хватить.
Планирую заменить их на аккумуляторы с подзарядкой от солнечной батареи.
Поставьте лучше вместо аккумулятора ионистор. Проблем с деградацией не будет (хотя ионистор тоже не вечен). Энергии как раз должно хватить.
0
Любой проект нужно начинать с исходного задания и выбора материалов.
Если исходное задание уже выбрано – часы, то далее нужно подойти к выбору материалов.
1 Конечно есть специализированные контроллеры в которых уже всё реализовано (сами часы включительно), однако это не интересно и не принесёт вам пользы – всё продумано за вас.
Можно взять контроллер распространённый – но это чревато не оптимальностью схемы и сложностью схемы. Я бы конечно взял какой STM с встроенным RTC. По итогу получается компактнее и надёжнее. Но даже выбор ARDUINO не проблема – да, микросхема должна почти всё время спасть.
2 Писать конечно нужно не на С а на ассемблере, так вы контролируете процесс поле полно.
3 Батарея не нужна на 9в, возьмите литиевую. При меньшем размере вы получите большую ёмкость. И конечно никаких 7805.
4 контроллер LCD – использовать в схеме прорисовки(обновления) контроллер — непозволительная роскошь. Для таких схем используются готовые контроллеры или как в вашем случае можно взять например К176ИЕ4(вместо 595 как я понял из описания вашей схемы). Там есть вход 6, на который подаётся сигнал модуляции для экрана. Частоту на эту ногу подавать с ds1307. В принципе должны быть аналоги данной микросхемы(если для вас советское не кошерно), нужно просто поискать.
В таком случае контроллер будет спасть у вас 99,9% времени, а просыпаться только в момент изменения секунд. В этом случае ток потребления будет минимальный.
Если исходное задание уже выбрано – часы, то далее нужно подойти к выбору материалов.
1 Конечно есть специализированные контроллеры в которых уже всё реализовано (сами часы включительно), однако это не интересно и не принесёт вам пользы – всё продумано за вас.
Можно взять контроллер распространённый – но это чревато не оптимальностью схемы и сложностью схемы. Я бы конечно взял какой STM с встроенным RTC. По итогу получается компактнее и надёжнее. Но даже выбор ARDUINO не проблема – да, микросхема должна почти всё время спасть.
2 Писать конечно нужно не на С а на ассемблере, так вы контролируете процесс поле полно.
3 Батарея не нужна на 9в, возьмите литиевую. При меньшем размере вы получите большую ёмкость. И конечно никаких 7805.
4 контроллер LCD – использовать в схеме прорисовки(обновления) контроллер — непозволительная роскошь. Для таких схем используются готовые контроллеры или как в вашем случае можно взять например К176ИЕ4(вместо 595 как я понял из описания вашей схемы). Там есть вход 6, на который подаётся сигнал модуляции для экрана. Частоту на эту ногу подавать с ds1307. В принципе должны быть аналоги данной микросхемы(если для вас советское не кошерно), нужно просто поискать.
В таком случае контроллер будет спасть у вас 99,9% времени, а просыпаться только в момент изменения секунд. В этом случае ток потребления будет минимальный.
0
В PSoC 4 есть контроллер LCD дисплея:
http://www.cypress.com/documentation/component-datasheets/psoc-4-segment-lcd-seglcd
0
7805 — в топку, как и любой другой стабилизатор — они в любом случае единицы миллиампер потребляют.
olartamonov практически прав, но я не люблю режимы сна.
лучше взять атмег-у с индексом V, есть одна хитрость с питанием — как ни парадоксально, на одной и той-же частоте при снижении напряжения питания с 5 до 3.3, ток потребления падает на порядок. У меня на двух солевых батарейках АА безо всяких стабилизаторов напряжения месяц молотит без сна(1 мегагерц).
olartamonov практически прав, но я не люблю режимы сна.
лучше взять атмег-у с индексом V, есть одна хитрость с питанием — как ни парадоксально, на одной и той-же частоте при снижении напряжения питания с 5 до 3.3, ток потребления падает на порядок. У меня на двух солевых батарейках АА безо всяких стабилизаторов напряжения месяц молотит без сна(1 мегагерц).
0
но я не люблю режимы сна
месяц молотит без сна(1 мегагерц)
Вот мы и дожили до счастливого момента, когда месяц работы электронных часов на батарейке — уже достижение, потому что автор «не любит режимы сна».
Автор, не любящий режимы сна! У меня водосчётчик с ЖК-экраном и радио на одной батарейке молотит 8 лет (и часы в нём тоже есть).
+1
а можно схему? а то поставить-то счетчики «с контактом» — поставил, а до съема данных руки не доходят… :-(
0
Берёте провод от контакта, протягиваете к ножке микроконтроллера.
С точки зрения схемотехники этого достаточно, далее начинается софт.
С точки зрения схемотехники этого достаточно, далее начинается софт.
0
радиоканал хочется. BLE, например.
ну нет, так нет. дойдут руки — наваяю. главное, чтоб не в конце межповерочного интервала :-)
ну нет, так нет. дойдут руки — наваяю. главное, чтоб не в конце межповерочного интервала :-)
0
А я все хочу во время глобального ремонта туда два Cat5e кабеля кинуть. И PoE и данные. Или один кабель, а в ванной Raspberry Pi, который уже ведет логи кидает куда надо.
0
Во, аналогично. При чём у меня уже мысль в каждую розетку по кабелю. Если не надо — закроется, а так и управление чем угодно можно замутить, да и просто розетку под LAN поставить.
0
Радиоканал тут LoRa, и разработка в общем и целом коммерческая.
0
А не нужна Вам схема (потому, мнээээ..., что она не поможет). А не поможет она потому, что Вы никогда не сможете гарантировать, что все импульсы прочитаны (села батарейка, например, или в розетке электричество кончилось и так далее).
Совсем панковский вариант, который я встречал — OCR того, что у счетчика на морде. Это, кстати, 99% гарантия правильности сбора данных в колхозно-домашних условиях, 1% заложим на то, что софт глюканет и в первом разряде вместо 0 распознает 9, что приведет к довольно большому счету на воду (решается логикой софта, конечно же).
А Олег, насколько я знаю, не пользуется готовыми счетчиками, которые генерят импульсы, он строит счетчики с нуля.
Совсем панковский вариант, который я встречал — OCR того, что у счетчика на морде. Это, кстати, 99% гарантия правильности сбора данных в колхозно-домашних условиях, 1% заложим на то, что софт глюканет и в первом разряде вместо 0 распознает 9, что приведет к довольно большому счету на воду (решается логикой софта, конечно же).
А Олег, насколько я знаю, не пользуется готовыми счетчиками, которые генерят импульсы, он строит счетчики с нуля.
0
ага, он и водой готовой не пользуется — он ее тоже генерит…
0
А Олег, насколько я знаю, не пользуется готовыми счетчиками, которые генерят импульсы, он строит счетчики с нуля.
Да могу и готовыми пользоваться.
А за батарейкой следить надо, конечно.
0
Однако ведь есть уже наручные часы которые каждый день заряжать надо) Так что месяц для настольных это прям лонг лайф)
0
они в любом случае единицы миллиампер потребляют.Нет. Есть полно Low Quiescent Current LDO с собственным током на уровне 1-2µA. В том числе доступных.
+1
Именно! Я вот ставлю MCP1700, где это возможно.
0
Да их сейчас как грязи, с собственными токами в единицы-десятки микроампер.
Даже у 1117 есть низкопотребляющая версия — TLV1117LV (и у неё же заодно нет требований по минимальной нагрузке).
Даже у 1117 есть низкопотребляющая версия — TLV1117LV (и у неё же заодно нет требований по минимальной нагрузке).
0
Ну. я не стал бы называть это неудачей, скорее это опыт. И очень полезный.
Идея интересная, я бы все же поставил DC-DC преобразователь и две обычные батарейки или аккумуляторы типа АА.
И еще один момент, ЖКИ без подсветки? Если да, то можно поставить вместо него сегментный LED индикатор. Есть модели как раз под часы.
И их бы еще в корпус и классно было бы)
А еще, бумажные стойки это оригинальное решение)
Идея интересная, я бы все же поставил DC-DC преобразователь и две обычные батарейки или аккумуляторы типа АА.
И еще один момент, ЖКИ без подсветки? Если да, то можно поставить вместо него сегментный LED индикатор. Есть модели как раз под часы.
И их бы еще в корпус и классно было бы)
А еще, бумажные стойки это оригинальное решение)
0
- Нельзя использовать обычный линейный стаб, КПД у него никакущее. Обычно узают DC-DC, причем есть специализированные, с сверх малым потреблением и режимом спячки.
- Почитайте документацию на на МК, там есть разные уровни засыпания, возможно схему надо было собрать так, чтобы можно было использовать(скажем) один таймер и ещё почитать по принцип управления ЖКИ (там же аля емкости, не всегда нужно аж на 180 градусов менять полярность): http://www.russianelectronics.ru/leader-r/review/2195/doc/57771/
0
Я бы посоветовал заменить скучный ЖК индикатор на что то более гиковское, газоразрядные лампы там, или светодиоды какие нить, и работать от сети т.к. даже в нынешнем виде часы явно не наручные. В противном случае не совсем ясно ради чего это все
0
Лет 20 назад я делал устройство с батарейным питанием для анализа АОН сигналов, применил дешевый калькулятор (чип+индикатор) и управлял воспроизведением на нем из Atmel контроллера путем имитации нажатий на клавиши.
0
А кто подскажет RTC, которая просто имеет двоичный счётчик без всяких там календарей в бинарно-десятичном формате как у DS1307?
Наверное это лет 20 назад было оправданно, когда подобная логика была в железе зашита. Сейчас контроллер любую конвертацию сделает сам. И наоборот, надо какие-то странные вычисления проводить, если, например, две таймзоны хочется отобразить. Почему все эти микросхемы с годами, месяцами, днями, минутами и секундами всё-ещё так популярны, а тупой счётчик миллисекунд не найти?
Наверное это лет 20 назад было оправданно, когда подобная логика была в железе зашита. Сейчас контроллер любую конвертацию сделает сам. И наоборот, надо какие-то странные вычисления проводить, если, например, две таймзоны хочется отобразить. Почему все эти микросхемы с годами, месяцами, днями, минутами и секундами всё-ещё так популярны, а тупой счётчик миллисекунд не найти?
0
Конвертацию чего он сделает, если обесточен? В том и смысл RTC — работать независимо ни от чего.
Если нужен тупой счётчик — ставьте тупой счётчик. Их, кстати, и в МК можно использовать независимо от ядра (когда то спит), минимизируя потребление.
Если нужен тупой счётчик — ставьте тупой счётчик. Их, кстати, и в МК можно использовать независимо от ядра (когда то спит), минимизируя потребление.
0
Конвертацию сделает, когда проснётся, чтобы прочитать время из RTC, работающей независимо и питающейся от CR2032 и обновит индикатор. Из DS1307 он прочитает год, месяц, день, час (в 12 или 24 часовом формате, как настроено), минуты и секунды. При этом это всё по одной цифре в двоично-десятичном формате. И большинство RTC имеют такой API. А я хочу прочитать тупо 64 бит счётчика миллисекунд и сам сконвертить в дату.
0
UFO just landed and posted this here
1. сама 7805 жрет минимум 5-6мА. вывод — заменить на менее жручее.
2. емкость кроны 200мАч. Заменить на более емкое.
Простой вариант — 7805 убрать, запитать от 3 последовательных алкалиновых элемента АА емкость 2000мАч, время работы — два-три месяца.
Хороший вариант — взять stm32L053, L152 и т.п. со встроенными часами и контроллером LCD и запитать напрямую от CR2032 потребление будет не больше 30мкА, проработает минимум год. Потренироваться взять такую штуку ru.aliexpress.com/item/Free-Shipping-1pc-ST-STM32L-Discovery-STM32L152-Cortex-M3-development-board/1238095354.html
2. емкость кроны 200мАч. Заменить на более емкое.
Простой вариант — 7805 убрать, запитать от 3 последовательных алкалиновых элемента АА емкость 2000мАч, время работы — два-три месяца.
Хороший вариант — взять stm32L053, L152 и т.п. со встроенными часами и контроллером LCD и запитать напрямую от CR2032 потребление будет не больше 30мкА, проработает минимум год. Потренироваться взять такую штуку ru.aliexpress.com/item/Free-Shipping-1pc-ST-STM32L-Discovery-STM32L152-Cortex-M3-development-board/1238095354.html
0
UFO just landed and posted this here
Sign up to leave a comment.
Неудача с часами на ATMega48