Приветствую, Владимир! Заказывал партию таких модулей для Ампконтрола (5 шт.), три осталось. Хочу бате сделать приемник. Не мог бы ты поправить программу под такой дисплей? https://ru.aliexpress.com/item/2-4-2-4- ... ff3511082b
МК его не особо потянет - где-то 5 кадров в секунду. Хотя с этим дисплеем я знаком - он у меня в проекте велокомпьютера задействован.
В принципе, тут большой скорости обновления экрана не нужно. Но я пока отвлекаться на это не хочу - в свободное время занят больше портированием ampcontrol на stm32.
Да, я в курсе. Слежу за ходом работ на форуме. Хотя скорее всего переделывать уже не буду. Но все же ,если захочется отвлечься, буду очень благодарен) Спасибо за твой труд
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Здравствуйте, собираю тоже приемник на RDA5807, в общем то все работает, единственное RDS адекватно только при хорошем уровне сигнала. Как я понял нужна коррекция ошибок, в общем научился раскладывать полученные 4 блока данных на 26 бит, инет помог, а что дальше делать х...его знает. Очень буду признателен за помощь.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
То есть, микросхема аппаратно приняла 4 блока по 26 бит (16 + 10) данных, произвела коррекцию ошибок, разложила результат в виде 4 блоков по 16 бит данных по регистрам и выставила флажок готовности RDS.
А Вы зачем-то взяли эти 4 блока готовых данных, как-то слепили из них 26 бит слово, и что-то пытаетесь из полученного битового мусора сделать.
Зачем? Просто обрабатывайте уже готовые данные. Извлекайте из этого набора в 4*16бит, например, 2 символа текста, ждите следующего, и т.д. Рано или поздно нужное слово из 8 байт будет сформировано.
Смотрите исходники. Там того кода RDS на 50 строк.
Я в общемто так и делал, но блин RDS корректно читается при уровне сигнала за 60, название станций просто выводить не интересно, а вот уже вывод RT сообщений или индикация времени куда лучше, да судя по описанию на RDA5807, может только определить наличие ошибок в первых двух блоках. Может я ошибаюсь поправьте.
В RDA5807 нет доступа к полным данным RDS. Я говорю о тех 26 битах на блок, кои 16 бит данных + 10 бит коррекции.
RDA5807 сама делает коррекцию, помещает готовый результат в регистр (всего их 4 получается для 104 бит всей посылки) и отдельно сообщает об уровне обнаруженных ошибок в отдельных (всего лишь двух) блоках. Ничего с этим поделать больше нельзя.
Выхода MPX у RDA5807 тоже нет, так что внешний декодер подцепить тоже не получится.
Ещё я игрался с Si4703 - там регистры похожие, но там есть эти регистры с уровнем ошибки для всех четырёх блоков. Но тоже - всё проделывает сам контроллер тюнера, пользователь об изначальных 26 битах не знает ничего.
Может быть немного не в тему, но всё равно спрошу. У меня непонятки по поводу общения с RDA5807M. По даташиту она поддерживает только последовательный доступ. Запись идёт нормально, а вот с чтением затык - читает только старший байт регистра 0xA, то есть первый байт из последовательности. Вместо остальных выводятся нули - проверено цифровым осциллографом. Попробовал недокументированный random доступ - почти та же канитель. Из любого запрашиваемого регистра читается только старший байт, идущий первым, а далее только нули: - МК выставляет старт - МК выдаёт адрес (0x11 для рандомного доступа) и бит R/W = 0 - 5807М выдаёт АСК (понимает значится) - МК засылает адрес регистра - 5807М выдаёт АСК - МК выдаёт стоп - МК выдаёт старт - МК засылает адрес и R/W = 1 - МК читает старший байт (здесь всё ОК) - МК выдаёт АСК - МК читает младший байт (а здесь почему-то нули!) - МК выдаёт неАСК - МК выдаёт стоп
Использую ATTINY13A + AVR300 в качестве софтового и2ц.
100% проблема с некорректным ACK со стороны МК. В случае с последовательным чтением (читать лучше именно так - банально быстрее выходит, а вот писать можно и порегистрово): - МК выставляет старт - МК выдаёт адрес (0x20 | 0x01) - 5807М выдаёт АСК (0)
Такую последовательность удобно делать периодически (скажем, два раза в секунду), вычитывая в какой-нибудь массив. И уже из этого массива в любой момент можно забирать нужные данные (уровень сигнала, индикацию стереоприёма, RDS данные и т.п.).
На осциллограмме отчетливо видно, как после вычитки первых восьми бит данных (старший байт 0xA) 5807М отпускает линию данных, готовясь принять АСК, а МК тут же её прибивает к земле (видно единичную "иголку"). И дальше МК отпускает линию и принимает байт нулей. После этого байта 5807М уже не отпускает линию данных, никаких иголок не видно.
Я сначала и сделал последовательную вычитку в полном соответствии с описанным Вами алгоритмом, только укоротил до двух регистров, поскольку мне не требуется RDS. Ладно, буду ковырять дальше.
Нашел! Это баг в AVR300, из-за него МК после постановки первого АСК не отпускал линию данных для приёма последующих байт. То есть таки да, проблема с некорректным АСК со стороны МК. Теперь всё заработало, спасибо за наводку.
Почему-то во многих примерах на просторах интернета при инициализации 5807М проставляется флаг SOFTMUTE_EN. Из китайского даташита непонятно его назначение. Хочу сказать что он очень сильно уменьшает громкость приёма, поэтому наверное имеет смысл его не устанавливать. Непонятно что такое SOFTBLEND_EN А ещё устанавливают биты LNA_PORT_SEL, даже в модификации с буквой М, хотя прямо в даташите их нет.
LNA_PORT_SEL можно не устанавливать, если не трогать соответствующий регистр вообще. Если же что-то в него пишется, он обязательно должен быть установлен в определённое значение, иначе играть не будет (внутренне будет выбран другой "пустой" вход вместо FM.
LNA_PORT_SEL нельзя не тронуть - оно в регистре 0x5, где и биты регулировки громкости. Сейчас нули в LNA_PORT_SEL, приём есть, может быть из-за близости передающего центра (просачивается через паразитные ёмкости с антенны). Хотя чувствительность вообще никакая, заявленными микровольтами и не пахнет Шум на фоне приёма, в паузах.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения