Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Въпрос, който не знам в кой раздел да задам
http://mcu-bg.com/mcu_site/viewtopic.php?f=22&t=18858
Страница 1 от 1

Автор:  movx2000 [ Сря Юни 21, 2023 9:11 pm ]
Заглавие:  Въпрос, който не знам в кой раздел да задам

Здравейте,
Нахендрих се с едни звукови монитори KRK GoAux, които имат досадната функция да преминават автоматично в стендбай режим, когато не им се подава сигнал да речем 20 минути.
Ползват за управляващо CPU STM32F030, който от две ADC на TI получава прекъсване за влизане в стендбай, когато зададено в регистър време изтече и сигналът, който се подава на някой от входовете е по-нисък от -50 dB или колкото му е зададено. ADC е PCM1863.
Накратко, искам да прецакам този автоматичен стендбай, искам колонките да работят непрекъснато и да не се изключват.
Закачих се със сериен порт на дебъг конектор на платката и при подаване на help връща следните налични команди:
help
Command Description and parameters (All data in hex)

? Print this message
help Print this message
fwupgrade update mcu firmware
btupgrade update bt firmware
facrst reset device
version get fw version
rc room correction
ennetstandby enter network standby mode
testmode enter test mode
volup volume up
voldown volume down
volmax volume max
volset volume set

След като го ръчках известно време установих, че мога да го вкарам в стендбай с командата ennetstandby, но няма команда за power up. А изглежда и че след като постои в стендбай известно време съвсем се изключва.
От това състояние може да се извади само с двойно щракване на бутона на предния панел, който служи и като потенциометър за силата на звука. Когато е все още само в стендбай режим, може да се активира и по серийния интерфейс като му се подаде volup, демек да се увеличи силата на звука с една степен.

В описанието на PCM1863 пише следното
Energysense Signal Loss Flag
The main ADC constantly monitors the input signal level while in ACTIVE mode. Should the input level remain
below a register defined threshold (for example –60 dB - Virtual Coefficient 0x2C, programmable through Page
1.) for a register defined amount of time (for example 1 minute - set by SIGDET_LOSS_TIME (Page.0, 0x33) ),
an interrupt can be generated.
If the system MCU decides to move to sleep mode, the PCM186x can be moved to SLEEP by stopping
BCK/LRCK or using PWRDN_CTRL (Page.0, 0x70); see Table 17 for details.
If BCK and LRCK are stopped by the host after the interrupt, the device goes to the sleep state as shown in
Figure 37. Otherwise, the interrupt continues for a few seconds, defined by SIGDET_INT_INTVL (Page.0, 0x36)
unless the interrupt and timeout counter is reset.

Та някакви идеи как най-лесно да направя това? Никакви други команди освен тези в хелпа не приема през серийния порт.

Автор:  bobihot [ Сря Юни 21, 2023 11:10 pm ]
Заглавие:  Re: Въпрос, който не знам в кой раздел да задам

На първо четене си мисля да прекъснеш интеръпта за заспиване?
ПС
В смисъл да прекъснеш пистата и евентуално пулъп резистор

Автор:  Реконструктор [ Чет Юни 22, 2023 1:45 pm ]
Заглавие:  Re: Въпрос, който не знам в кой раздел да задам

мушни му отделно mcu, къде му набива сигнал в ADC-то :)

Автор:  valioman [ Вто Юни 27, 2023 10:17 am ]
Заглавие:  Re: Въпрос, който не знам в кой раздел да задам

Пробва ли дали с команда volup/voldown не се нулира таймера който го вкарва в standby?

Автор:  movx2000 [ Вто Юни 27, 2023 2:48 pm ]
Заглавие:  Re: Въпрос, който не знам в кой раздел да задам

valioman написа:
Пробва ли дали с команда volup/voldown не се нулира таймера който го вкарва в standby?

Не се нулира, а при volup първо минава в процедура на събуждане и тогава увеличава нивото. Т.е. вероятно пак се нулира.
Но установих друго. След като прекара известно време в стендбай, минава в някакъв още по-заспал режим, от който не излиза само с volup вече.

Автор:  movx2000 [ Вто Юни 27, 2023 2:51 pm ]
Заглавие:  Re: Въпрос, който не знам в кой раздел да задам

bobihot написа:
На първо четене си мисля да прекъснеш интеръпта за заспиване?
ПС
В смисъл да прекъснеш пистата и евентуално пулъп резистор

Не съм сигурен дали няма и други интеръпти по този проводник, ако го прекъсна дали няма да се прецака друга функционалност. Рязане и такива по-инвазивни процедури само в краен случай. В смисъл колонките не са мои, а служебни, и не са само един чифт, а много. И са нови в гаранция. А кой реши да ги купи не ме питайте, не съм аз.

Автор:  itso.t [ Вто Юни 27, 2023 6:42 pm ]
Заглавие:  Re: Въпрос, който не знам в кой раздел да задам

Една селска хардуерна идея. :D
Прихващаш сигнала на детектора за липса на сигнал, и ако няма такъв за над някакво време пускаш кратък бърст с честота 20 - 25kHz с ниско ниво. Да кажем -40dB или -60dB от номиналното за мониторите. И така до безкрай.
Честотата трябва да е подбрана така, че хем да не се чува за да не пречи, хем да се обработва от АЦП-то на колоната, а не да се потиска от входните му филтри.

Автор:  movx2000 [ Вто Юни 27, 2023 8:48 pm ]
Заглавие:  Re: Въпрос, който не знам в кой раздел да задам

itso.t написа:
Една селска хардуерна идея. :D
Прихващаш сигнала на детектора за липса на сигнал, и ако няма такъв за над някакво време пускаш кратък бърст с честота 20 - 25kHz с ниско ниво. Да кажем -40dB или -60dB от номиналното за мониторите. И така до безкрай.
Честотата трябва да е подбрана така, че хем да не се чува за да не пречи, хем да се обработва от АЦП-то на колоната, а не да се потиска от входните му филтри.

Детекторът за липса на сигнал се нарича АЦП, в случая PCM1863. В нарочен регистър се записва точно под минус колко децибела се приема за липса на сигнал, както и колко време трябва да липсва.
По-лесно е софтуерно да се генерира нискочестотен сигнал през 20 минути и да се подава.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/