Темброблок - анализатор спектра на STM32F103
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок - анализатор спектра на STM32F103
В настройках выставляете адрес I2C расширителя 0x40.
После этого, при выборе входа 0 - на PCF-ке будет появлятся лог. 1 на P0, входа 1 - на P1 и т.д.
В ждущем режиме на всех 8 выходах P0..P7 будет лог. 0.
От этого и плясать.
В коде это функция в amp.c - inputSetPower(). По сути, на выходах PCF-ки идёт простое отображение байта amp.inputStatus.
После этого, при выборе входа 0 - на PCF-ке будет появлятся лог. 1 на P0, входа 1 - на P1 и т.д.
В ждущем режиме на всех 8 выходах P0..P7 будет лог. 0.
От этого и плясать.
В коде это функция в amp.c - inputSetPower(). По сути, на выходах PCF-ки идёт простое отображение байта amp.inputStatus.
-
DimoniyJ
- Первый раз сказал Мяу!
- Сообщения: 32
- Зарегистрирован: Ср сен 10, 2014 13:07:22
- Откуда: Свердловская область, Ивдель
Re: Темброблок - анализатор спектра на STM32F103
Здравствуйте, уважаемые форумчане. Может кто нибудь заказывал платы к этому проекту в Китае и случайным образом осталась хоть одна? Буду рад купить. Спасибо.
Лужу, паяю, самоделки собираю.
Re: Темброблок - анализатор спектра на STM32F103
WiseLord, спасибо за подсказку! Чтобы не ковырять код и в дальнейшем не мучиться каждый раз при компиляции с исправлениями файлов, решил изменить схемку для управления реле логическими единицами, для чего изменил транзисторы на 2N2222 npn типа, поэтому поменял полярность их питания, а также подключил порты Р0...Р2 на управление релюшек через эти транзисторные ключи. Благо на макетке это было несложно сделать. Все работает от Ардуинки, как и в прошлый раз, осталось теперь все это хозяйство подключить к Ampcontrol, надеюсь, что глюков быть не должно 
Re: Темброблок - анализатор спектра на STM32F103
[uquote="DimoniyJ",url="/forum/viewtopic.php?p=3804365#p3804365"]Здравствуйте, уважаемые форумчане. Может кто нибудь заказывал платы к этому проекту в Китае и случайным образом осталась хоть одна? Буду рад купить. Спасибо.[/uquote]
Могу отправить, есть одна в запасе)
У самого пока проект "заморожен"( Зависли разом все посылки с рассыпухой из Китая. Уже 60 дней( Начал потихоньку закупаться в местных магазинах, в тридорого.
Могу отправить, есть одна в запасе)
У самого пока проект "заморожен"( Зависли разом все посылки с рассыпухой из Китая. Уже 60 дней( Начал потихоньку закупаться в местных магазинах, в тридорого.
Re: Темброблок - анализатор спектра на STM32F103
[uquote="Duke",url="/forum/viewtopic.php?p=3804278#p3804278"]Сделал небольшого "крабика" - платку для раздельной коммутации подачи питания +3,3 В на три источника сигналов - тюнер, блютус и карадио, на основе расширителя портов PCF8574N - нашлась в закромах. +3,3 В подаются на питание соответствующего источника через реле, которое управляется сигналами на портах PCF'ки Р5, Р6 или Р7 соответственно через pnp транзисторные ключи на 2N3906. Активный сигнал '0'. I2C адрес PCFки 0х20. Проверил работу под нагрузкой на Ардуинке, все ОК.
Подскажите, пожалуйста, что и где тогда нужно поменять в коде (выбрать в меню), чтобы внедрить сей девайс в Ampcontrol?
Конфигурация: STM32F103CBT6, TDA7313, RDA5807 - вход 1, KaRadio - вход 2, ВТ201 - вход 3.
Большое спасибо![/uquote]
схемкой поделитесь?
Подскажите, пожалуйста, что и где тогда нужно поменять в коде (выбрать в меню), чтобы внедрить сей девайс в Ampcontrol?
Конфигурация: STM32F103CBT6, TDA7313, RDA5807 - вход 1, KaRadio - вход 2, ВТ201 - вход 3.
Большое спасибо![/uquote]
схемкой поделитесь?
-
Nadim
- Встал на лапы
- Сообщения: 113
- Зарегистрирован: Пт июн 21, 2019 15:13:02
- Откуда: Украина
- Контактная информация:
Re: Темброблок - анализатор спектра на STM32F103
to WiseLord
Подправил перевод Украинского - подмените.
[uquote="Duke",url="/forum/viewtopic.php?p=3804519#p3804519"]WiseLord, спасибо за подсказку! Чтобы не ковырять код и в дальнейшем не мучиться каждый раз при компиляции с исправлениями файлов, решил изменить схемку для управления реле логическими единицами, для чего изменил транзисторы на 2N2222 npn типа, поэтому поменял полярность их питания, а также подключил порты Р0...Р2 на управление релюшек через эти транзисторные ключи. Благо на макетке это было несложно сделать. Все работает от Ардуинки, как и в прошлый раз, осталось теперь все это хозяйство подключить к Ampcontrol, надеюсь, что глюков быть не должно
[/uquote]
Если все пройдет успешно - поделитесь схемой.
Спасибо.
Подправил перевод Украинского - подмените.
[uquote="Duke",url="/forum/viewtopic.php?p=3804519#p3804519"]WiseLord, спасибо за подсказку! Чтобы не ковырять код и в дальнейшем не мучиться каждый раз при компиляции с исправлениями файлов, решил изменить схемку для управления реле логическими единицами, для чего изменил транзисторы на 2N2222 npn типа, поэтому поменял полярность их питания, а также подключил порты Р0...Р2 на управление релюшек через эти транзисторные ключи. Благо на макетке это было несложно сделать. Все работает от Ардуинки, как и в прошлый раз, осталось теперь все это хозяйство подключить к Ampcontrol, надеюсь, что глюков быть не должно
Если все пройдет успешно - поделитесь схемой.
Спасибо.
- Вложения
-
- labels_ua.c
- (7.52 КБ) 224 скачивания
- киракосян ашот
- Нашел транзистор. Понюхал.
- Сообщения: 174
- Зарегистрирован: Ср июл 23, 2014 16:59:57
- Откуда: владикавказ, россия
Re: Темброблок - анализатор спектра на STM32F103
добрый вечер! Столкнулся с проблемой,что i2c не работает вовсе, плата bluepill. При подключении лог анализатора видно только по 1 всплеску при включении и все,дальше молчит. аудиопроцессор pt2313l. прошивка последняя готовая для ili9341
Re: Темброблок - анализатор спектра на STM32F103
По-быстрому набросал в Кикаде схемку для расширителя входов. Простите, если не совсем по фэншую, но, думаю, разобраться можно. Транзисторы Q1...Q3 - любые маломощные npn: 2N2222, 2N3906, BC547 и т.д., только проверяйте цоколевку. Также использовал миниатюрные реле типа BRS 1A05 на напряжение срабатывания 5 В, гугль в помощь. Закоротил адресные входы микросхемы на землю с помощью перемычек, в итоге получился I2C адрес 0х20.
Если оставлять адресные ноги неподключенными к земле или 5В, то мой экземпляр PCFки начинает выдавать рандомные адреса при проходах сканирования. Поэтому решил намертво посадить все входы на землю, так сказать, во избежание. Если нужны на каких-то адресных ногах логические единицы для генерации адреса I2C отличного от 0х20, то сажайте их на питание (в идеале через подтягивающий резистор), не оставляйте "висячими".
Гонял на Ардуинке, зажигал светодиоды, работает четко, без глюков. В Ampcontrol пока не вставлял, но каких-то сюрпризов не ожидаю, также опираясь на объяснения автора выше. Могу переслать файл в формате Kikad, если кто заинтересуется развести платку покомпактнее с SMD компонентами. Дайте знать.
Добавлено after 42 minutes 3 seconds:
Более крупный масштаб внешнего вида после переделки, макетка
Если оставлять адресные ноги неподключенными к земле или 5В, то мой экземпляр PCFки начинает выдавать рандомные адреса при проходах сканирования. Поэтому решил намертво посадить все входы на землю, так сказать, во избежание. Если нужны на каких-то адресных ногах логические единицы для генерации адреса I2C отличного от 0х20, то сажайте их на питание (в идеале через подтягивающий резистор), не оставляйте "висячими".
Гонял на Ардуинке, зажигал светодиоды, работает четко, без глюков. В Ampcontrol пока не вставлял, но каких-то сюрпризов не ожидаю, также опираясь на объяснения автора выше. Могу переслать файл в формате Kikad, если кто заинтересуется развести платку покомпактнее с SMD компонентами. Дайте знать.
Добавлено after 42 minutes 3 seconds:
Более крупный масштаб внешнего вида после переделки, макетка
- Вложения
-
- I2C_Inputs_Expander.png
- (40.43 КБ) 466 скачиваний
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок - анализатор спектра на STM32F103
Могу добавить, что вместо биполярных транзисторов можно поставить полевики (те же BSS138) - резистор тогда становится не нужен.
Ну и резисторы подтяжки I²C к питанию можно не ставить - они уже есть на основной плате ampcontrol. А то вот так подключишь несколько устройств, в каждом по паре резисторов - и вот уже на шине меньше килоома, и девайсы пыхтят, пытаясь утянуть всё это на землю...
А вообще транзисторные ключи и реле, возможно, лучше ставить прямо на своей родной плате (KaRadio, тюнер и т.д.). Тогда от PCF-ки нужно только управление протянуть. Оно как-то и логичнее, на мой взгляд. Всё-таки питание у них может быть разное (а не только 3В), да и прочие нюансы могут вылезти.
Ну и резисторы подтяжки I²C к питанию можно не ставить - они уже есть на основной плате ampcontrol. А то вот так подключишь несколько устройств, в каждом по паре резисторов - и вот уже на шине меньше килоома, и девайсы пыхтят, пытаясь утянуть всё это на землю...
А вообще транзисторные ключи и реле, возможно, лучше ставить прямо на своей родной плате (KaRadio, тюнер и т.д.). Тогда от PCF-ки нужно только управление протянуть. Оно как-то и логичнее, на мой взгляд. Всё-таки питание у них может быть разное (а не только 3В), да и прочие нюансы могут вылезти.
Re: Темброблок - анализатор спектра на STM32F103
WiseLord, вариантов много, делал под свои детальки в наличии. Касательно подтяжки шины I2C - ставил под тестирование на Ардуино, в Уне эта шина не подтянута, если верить схемам из сети. В применении их нужно будет исключить, т.к. тут будет действовать правило "меньше меньшего", т.е. результирующее сопротивление параллельного подключения резисторов по номиналу всегда будет меньше самого маленького номинала резистора, это так. В результате шина будет подсажена.
Re: Темброблок - анализатор спектра на STM32F103
hello wiselord, if we add the version information to the settings menu, it will be easier to check after updating
Re: Темброблок - анализатор спектра на STM32F103
Пришлось кардинально разобрать свой рабочий Ampcontrol, чтобы найти место и всунуть расширитель портов на PCFке, но таки еще получилось найти место. Завтра буду собирать все обратно.
- Вложения
-
- Ampcontrol1.jpg
- (170.51 КБ) 402 скачивания
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: Темброблок - анализатор спектра на STM32F103
Подскажите, какой алгоритм применяется для сжатия шрифтов?
Хорошему коту и в декабре - март 
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок - анализатор спектра на STM32F103
Два варианта:
-N A B C D E F => идут N неповторяющихся символов A...F
N A => N раз идёт повтор символа A
Пример: буква F в шрифте terminus 16:
Распаковка: 1 раз идёт символ 0xFC; далее 3 раза идёт символ 0x44; далее 0xFD=>-3 - три неповторяющихся символа 0x04, 0x04, 0x0F; далее 5 раз символ 0x00
Распаковывается, соответственно, в
В итоге, распакованные в 12 байт данные хранились изначально в 10 байтах "архива". Вроде немного - но на крупных шрифтах с большим количеством повтором результат гораздо лучше.
Если рисовать результат, побитно, получится
В коде такая распаковка идёт в функции glcdUnRleImg()
-N A B C D E F => идут N неповторяющихся символов A...F
N A => N раз идёт повтор символа A
Пример: буква F в шрифте terminus 16:
Код: Выделить всё
static const uint8_t image_data_fontterminus16_0x46[10] = {
0x01, 0xfc, 0x03, 0x44, 0xfd, 0x04, 0x04, 0x0f, 0x05, 0x00
};Распаковка: 1 раз идёт символ 0xFC; далее 3 раза идёт символ 0x44; далее 0xFD=>-3 - три неповторяющихся символа 0x04, 0x04, 0x0F; далее 5 раз символ 0x00
Распаковывается, соответственно, в
Код: Выделить всё
{
0xFC, 0x44, 0x44, 0x44, 0x04, 0x04,
0x0F, 0x00, 0x00, 0x00, 0x00, 0x00
}Если рисовать результат, побитно, получится
Код: Выделить всё
// Первые 6 байт - старший бит снизу, младший сверху
// ∙∙∙∙∙∙
// ∙∙∙∙∙∙
// ██████
// █∙∙∙∙∙
// █∙∙∙∙∙
// █∙∙∙∙∙
// ████∙∙
// █∙∙∙∙∙
// Следующие 6 распакованных байт:
// █∙∙∙∙∙
// █∙∙∙∙∙
// █∙∙∙∙∙
// █∙∙∙∙∙
// ∙∙∙∙∙∙
// ∙∙∙∙∙∙
// ∙∙∙∙∙∙
// ∙∙∙∙∙∙
В коде такая распаковка идёт в функции glcdUnRleImg()
Последний раз редактировалось WiseLord Сб мар 14, 2020 18:31:44, всего редактировалось 1 раз.
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: Темброблок - анализатор спектра на STM32F103
[uquote="WiseLord",url="/forum/viewtopic.php?p=3807063#p3807063"]Пример: буква F в шрифте terminus 16:[/uquote]
Благодарю, теперь понял, адресация битов вертикальная старший бит внизу.
Благодарю, теперь понял, адресация битов вертикальная старший бит внизу.
Хорошему коту и в декабре - март 
Re: Темброблок - анализатор спектра на STM32F103
В итоге заработал селектор входов с отключением питания от неработающих в данный момент источников с помощью расширителя портов на шине i2c на базе PCF8574. Преимущество в том, что BT модуль, FM тюнер и KaRadio не находятся одновременно в эфире и, таким образом, не создают помехи друг другу, а при переходе на соответствующий вход запускаются стабильно, без глюков. В общем, как и ожидалось
, рекомендую. Также спасибо автору за подсказку!
Фотки изделия в работе без верхней крышки и в сборе.
Фотки изделия в работе без верхней крышки и в сборе.
Последний раз редактировалось Duke Вс мар 15, 2020 14:52:14, всего редактировалось 1 раз.
-
Frogfot
- Мучитель микросхем
- Сообщения: 443
- Зарегистрирован: Ср окт 19, 2011 08:48:27
- Откуда: Мать городов русских
Re: Темброблок - анализатор спектра на STM32F103
Кейл ругается на:
что можно сделать?
Код: Выделить всё
static tImage unRleImg = {
.rle = 0
};Код: Выделить всё
glcd.c(9): error: #29: expected an expression .rle = 0что можно сделать?
Хорошему коту и в декабре - март 
Re: Темброблок - анализатор спектра на STM32F103
[uquote="Duke",url="/forum/viewtopic.php?p=3812303#p3812303"]В итоге заработал селектор входов с отключением питания от неработающих в данный момент источников с помощью расширителя портов на шине i2c на базе PCF8574. Преимущество в том, что BT модуль, FM тюнер и KaRadio не находятся одновременно в эфире и, таким образом, не создают помехи друг другу, а при переходе на соответствующий вход запускаются стабильно, без глюков. В общем, как и ожидалось
, рекомендую. Также спасибо автору за подсказку!
Фотки изделия в работе без верхней крышки и в сборе.
[/uquote]
А когда первый раз включаете у вас остается включенным только один источник?
Фотки изделия в работе без верхней крышки и в сборе.
[/uquote]
А когда первый раз включаете у вас остается включенным только один источник?
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок - анализатор спектра на STM32F103
Frogfot, если компилятор не поддерживает такую инициализацию структур, по именам полей (что, вообще-то, странно, это часть стандарта C99), инициализируйте, как умеет. По порядку, например.
Re: Темброблок - анализатор спектра на STM32F103
[uquote="misir",url="/forum/viewtopic.php?p=3812473#p3812473"][uquote="Duke",url="/forum/viewtopic.php?p=3812303#p3812303"]В итоге заработал селектор входов с отключением питания от неработающих в данный момент источников с помощью расширителя портов на шине i2c на базе PCF8574. Преимущество в том, что BT модуль, FM тюнер и KaRadio не находятся одновременно в эфире и, таким образом, не создают помехи друг другу, а при переходе на соответствующий вход запускаются стабильно, без глюков. В общем, как и ожидалось
, рекомендую. Также спасибо автору за подсказку!
Фотки изделия в работе без верхней крышки и в сборе.
[/uquote]
А когда первый раз включаете у вас остается включенным только один источник?[/uquote]
Да, тот который был включен при выключении.
Фотки изделия в работе без верхней крышки и в сборе.
[/uquote]
А когда первый раз включаете у вас остается включенным только один источник?[/uquote]
Да, тот который был включен при выключении.