Обновить
15
Сергей Терентьев@Sergey78

Пользователь

0,1
Рейтинг
5
Подписчики
Отправить сообщение

Не проще взять внешний АЦП и использовать его вместо ардуины? В ядре есть поддержка разных АЦП, можно выбрать что-то простое. Вся работа с АЦП будет сведена к чтению из "файла" значений. Ну можно и на питоне конечно, если у вас много батарей :)

Можно АЦП с функцией оповещения о изменении уровня и просто по прерыванию с gpio реагировать. На вскидку не подскажу конкретной модели, но не думаю, что это редкость. Кстати, возможно в ядре есть уже готовый драйвер, который за значением АЦП следит.

Если вас интересует только превышение конкретного уровня напряжения (выше-ниже), а не его значение, можно и без АЦП вообще обойтись, решив задачу вообще пассивными элементами. Просто получая на gpio 1 или 0.

У вас в описании указан драйвер led Holtek ht1632c. На плате его не видно, зато видно кучку элементов похожих на транзисторы. Отказались от него?

Вообще, если бы показали принципиальную схему устройства, возможно это сняло бы столько вопросов про 6 слоев.

Про модуль уже ответили выше, я не внимательно читал. Я спрашивал про сенсор Plantower.

Про "далекий форум" немного смешно. При том, что у вас скриншот из официальной документации от Expressif про ADC :)

Я правильно понял, что развести вот эту плату стоило 180 тыс. рублей?

А что за модуль под крышкой металлической, самый большой на плате?

Не знаю про ваших домохозяек.

Для смены прошивки вскрывать устройство не нужно. Собственно только из-за этого и нужен tuay-convert.

Я esp-home не использовал, точно не скажу. В tasmota есть вебморда.

Поскольку устройства на tuya, можно использовать https://github.com/ct-Open-Source/tuya-convert и прошить их tasmota или esp-home. И будут локально управляться, без китайских облаков.

А как работает шифрование прошивки? Где хранится ключ, и где код, который занимается расшифровкой? Если в самом МК нет флеша и он стартует с spi-флешки.

Зачем вы используете DMA на приеме, если принимаете по 1 байту?

rDMA2->HIFCR.CHTIF5 = 0; // Clear Half-transfer interrupt flags
rDMA2->HIFCR.CTCIF5 = 0; // Clear Transfer complete interrupt flags
rDMA2->HIFCR.CTEIF5 = 0; // Clear Transfer error interrupt flags
rDMA2->HIFCR.CDMEIF5 = 0; // Clear Direct mode error interrupt flags

Флаги сбрасываются записью 1, а не 0.

Во что эта вот конструкция превращается компилятором не смотрели? В классическом варианте сброса флагов, вроде такого:

DMA2->HIFCR = (DMA_HIFCR_CDMEIF5|DMA_HIFCR_CFEIF5|DMA_HIFCR_CHTIF5|DMA_HIFCR_CTCIF5|DMA_HIFCR_CTEIF5);

Все битовые операции происходят еще на стадии сборки и в коде только три инструкции будет, LDR адреса, MOV значения в регистр и затем STR в регистр.

Ну сам драйвер вот https://elixir.bootlin.com/linux/v5.10.91/source/drivers/iio/humidity/dht11.c

Параметры для overlay тут https://elixir.bootlin.com/linux/v5.10.91/source/Documentation/devicetree/bindings/iio/humidity/dht11.txt

Про работу с device tree посмотрите серию статей на https://devdotnet.org/ Там достаточно подробно.

Вам видимо уже не нужно, но для dht22 в ядре уже есть драйвер. Делаете overlay на device tree и просто читаете из "файла" показания. Судя по описанию, работает через bit banging.

Сложилось впечатление, что у вас "если в руках молоток, всё вокруг превращается в гвозди". Это про тягу к python.

Пытаюсь повторить ваш путь, и остановился на замене rootfs из Arch или Debian.
Не понятно, откуда конкретно вы брали root? У debian нашел только ссылки на установочные iso полной системы или netboot. Они вроде бы есть под arm, обозначены как armhf.
У Arch ссылки на x86_64 образы.
Если не сложно, уточните пожалуйста этот момент.

Поскольку с момента написания статьи прошло уже прилично времени, я не делал изменений в buildroot для сборки ядра 4.19, а собрал со свежим ядром. На данный момент это 5.8.13
Для теста я сразу записал на карту готовый sdcard.img.
Система загрузилась, но отличается разметка разделов — нет раздела kernel. На карте разделы fsbl1, fsbl2, ssbl, rootfs. И образ rootfs.ext4 является симлинком на rootfs.ext2
А вы дальше так от 4 МГц и работаете? Или переключаете тактовую? Не имеет смысла, например, сначала переключить тактирование, а потом уже копировать? Смена тактовой частоты не очень сложное занятие, можно и на асме под конкретный проект переписать в startup, если это даст в итоге уменьшение времени запуска.
Специально покупал какие-то дешевые с CS32 :) Не срочно нужна была отладочная плата с F072. Изготавливать плату не хотелось, поэтому просто взял с CS32, сдул их, и поставил F072, они по ногам совместимы.
Приятно видеть код без HAL :), только небольшое замечание:
MB_USART->CR1 = 0;
MB_USART->CR1 |= (USART_CR1_TE | USART_CR1_RE | USART_CR1_RTOIE);


Зачем тут чтение из CR1? Вы же его обнулили только что, можно просто присваивать.
Ну это я так, просто на глаза попалось :)
Достаточно просто их не использовать, gcc сам умеет выкидывать не используемый код :)

Я не достаточно ясно выразился. Я имел ввиду, что библиотека при изменении элемента не весь экран перерисовать будет.
Ясное дело, что при желании можно и весь экран обновить.

Библиотека приятная, но достаточно ресурсоемкая. И по флеш памяти, и по оперативной. Ей нужен во-первых видеобуфер, а во вторых куча под хранение объектов. Пробую внедрить ее на f103 с экраном 480*320 по FSMC. По факту нужно видеобуфер хотябы на 20 строк (480*20), а лучше больше. На моем не сильно замороченном интерфейсе размер данных в куче доходит до 11кб. Для МК у которого всего 64кб это проблема.
В другом проекте использую H750, у него с оперативной памятью проблем нет, но флеша всего 128кб :)

Я в код библиотеки не лазил, но судя по документации и описанию от автора, библиотека умеет перерисовывать только изменившуюся часть картинки.

Очень понравился механизм файловых систем. Мне нужно было показывать картинку из SPI флеш и картинки создаваемые «на лету» из файлов на SD карте. При помощи файловых систем удалось решить достаточно просто и прозрачно.
Конечно смущает. ELM тут явно лишняя, можно напрямую из CAN получать. Да и ESP лишняя, поскольку у MK64FX512VMD12 есть CAN.
snap шикарная вещь. Если не ошибаюсь, калькулятор который идет в составе Ubuntu как раз snap пакет. Раньше калькулятор запускался дольше, чем хромиум. Секунды 2-3, и это немного удивляло. Но потом разработчики это блестяще исправили. Теперь новые версии хромиума только ввиде snap и он уже не запускается быстрее калькулятора.
Я думаю и open source редакторы тоже так умеют.
Вообще основной смысл моего комментария был в том, что из KiCad можно 3D модель экспортировать. Я когда обнаружил эту возможность, был прямо в восторге :)

Информация

В рейтинге
4 842-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность