Обсуждаем приемники, передатчики, радиомикрофоны, жучки, генераторы, ВЧ-усилители, антенны и прочее радиохозяйство
Ответить

QN8035/QN80xx - FM приёмник, основные вопросы

Пт сен 16, 2022 10:21:23

По вопросам ИС QNxxxx (QN8035), заданным в другой теме, a думаю лучше создать отдельную тему.
(viewtopic.php?p=4286571#p4286571)

Микросхема QN8035 имеет хорошие параметры, стерео, с RDS, напряжение питания в широких пределах, малое потребление тока, легкое управление, ИС крайне дешевая. Имеющихся в Интернете справочных данных достаточно, чтобы собрать конструкцию с использованием основных параметров ИС. Оказывается, у семейства

ИС есть дополнительные возможности, но поиск недокументированных регистров пока не увенчался успехом. Сканирование шины I2C выявило возможность считывать/манипулировать другие регистры, но недостаток информации сводил тесты к случайным событиям.

Решил "на скорую руку" собрать себе простенькая отделная конструкция (на бредборде): просмотр регистр, биты и возможность их модификации для учета влияния. Памяти нет, с восстановлением при следующем включении. Целью является информативность недокументированных регистров.

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

0x1C, 0x35, 0x36, 0x3E, 0x40, 0x42

По какой-то причине эта микросхема звучит мне "глухo" по сравнению с другими модулями. Бит 0 из регистр 0x1C снимает de-emphasis 50/75 us (по реакции так думаю). Считаю свою задачу с QN8035 выполненной - смогу отрегулировать значение и "восстановить недостающие высокие частоты" в спектре - теперь звучит лучше :). (придется включить хардуерная RC-цепь с меньшей постоянной времени).

Делюсь своим тестом, можете дополнить результатами с найденным регистрами и битами, возможности улучшения звука и общее управление.
(частично использую переводчик)
Вложения
reg_0x1c_1.jpg
(106.25 KiB) Скачиваний: 300
reg_0x1c_0.jpg
(107.38 KiB) Скачиваний: 164
qn80.jpg
(86.12 KiB) Скачиваний: 168
qn8035_reg_test.gif
(87.44 KiB) Скачиваний: 184
qn8035_test.zip
(3.19 KiB) Скачиваний: 198

Re: QN8035/QN80xx - FM приёмник, основные вопросы

Сб сен 17, 2022 11:07:44

терпеть не могу I2C...
:facepalm:
лучше бы сделали нормальный SPI...
:tea:

Re: QN8035/QN80xx - FM приёмник, основные вопросы

Пн сен 19, 2022 00:39:05

Давно пора бы разобраться с этими QN80xx... Особенно с QN8075. Их навалом на Алиэкспресс буквально за копейки. Наверное потому дешевые, что даташита полного на них нет.

QN8065 и QN8075 содержат варикапы на входе, и систему автоматической настройки входного колебательного контура. Из недостатков 8075 - сильно чирикают при переходе с канала на канал, вероятно синтезатор частоты в чипе не продуманный. На видео хорошо слышно чириканье синтезатора.

Re: QN8035/QN80xx - FM приёмник, основные вопросы

Пн сен 19, 2022 07:45:56

Вход чипа - широкополосный LNA.
У меня (QN8035) эффекта почти нет (пш-ш-шт при отсутствии радиостанции) или ефект минимальный. Наиболее заметен вокруг частоте сильной радиостанции (напр. +/- 200 kHz). Больше похоже на долгого времени заряда PLL-фильтра (charge pump) с/без ефект AFC.

Попробуйте:
- другой УНЧ. TDA7052 - крайне нестабильная. Можно добавь и LPF напр. RC < 16 kHz на входе.
- конденсаторы в цепи энкодера (debounce) или более сложные схемы подавления дребезга: с двумя резисторами и конденсатором
- I2C шина: на 400 kHz
- более быстрый расчет и загрузка только необходимых регистров для изменения одной частоты: напр. только reg: 0x07, 0x0A, 0x00
- mute-настройка-unmute (reg 0x14, bit 0), хотя действие почти нет
Последний раз редактировалось veso74 Пн сен 19, 2022 09:55:29, всего редактировалось 1 раз.

Re: QN8035/QN80xx - FM приёмник, основные вопросы

Пн сен 19, 2022 09:54:25

Нет, дело не в УНЧ. Совсем без УМЗЧ на высокоомные головные телефоны ТОН-2 точно так же чирикает.

Энкодер вряд ли создает помехи, мощности коммутируются небольшие. Дребезг у меня подавляется программно.

I2C работает на максимальной скорости.

Для перестройки в пределах 88-108 МГц меняются значения только одного регистра. Другие регистры при настройке не затрагиваются.

Mute пытался использовать, провалы в звучании даже хуже чириканья. Пришлось отказаться.


Это однозначно некорректная работа синтезатора частоты QN8075, PLL слишком долго приходит в состояние равновесия.


У меня есть драйвер для QN8065 под какой-то микроконтроллер (какой МК не знаю). Скачивал с китайского сайта, которого больше нет. Там в комментариях к программе вроде было что-то про настройку варикапов. На вход QN8075 пытался подключать колебательный контур с переменным конденсатором для ручной настройки. При вращении КПЕ настройка входного контура почти не изменялась, похоже, что встроенная система настройки входных цепей корректирует изменение емкости варикапами и не дает перестраиваться в ручную. Но это только мое ИМХО.

Еще есть файлы драйверов для QN8035 под soc микроконтроллеры JL. Чуть позже выложу сюда архивы с драйверами. Возможно, что-то полезное найдете в них для себя.

Re: QN8035/QN80xx - FM приёмник, основные вопросы

Пн сен 19, 2022 10:12:34

Для debounce предложил, что в некоторых приемниках: напр. ППП на КВ (SSB, CW) вместе с аппаратной обработкой енкодера (simple state machine) у меня полностью убирает треск при смене только сложная RC, но уровни ефира там на порядок ниже. Другим способом избавиться от треска енкодера не смог, но звук (еффект) там другой.

Можно дать фрагмент кода для загрузки на одной частоте? Программный код не имеет значения под какой MCU написан.

ниже: загрузка одной частоты QN8035:
Код:
void qn8035_set_freq(uint16_t m_freq) {     // frequency * 10, e.g. 105.8 MHz -> 1058
  uint16_t d = (m_freq - 600) * 2;          // d = (m_freq - 60) / 0.05;

  qn8035_write_reg(0x07, d & 0xFF);         // CH[7:0]
  qn8035_write_reg(0x0A, (d >> 8) & 0x03);  // CH[9:8]
  qn8035_write_reg(0x00, 0b00010001);       // RXREQ = 1 -> receive mode, CH is determined by CH[9:0]
}

В QN8035 так же не нравится отсутствие кварцевого генератора - либо дополнительный элемент/ы, либо от микроконтроллера, но чип интересный - 3х3 mm без внешних элементов и полностью программным управлением во всей частотной области.

Re: QN8035/QN80xx - FM приёмник, основные вопросы

Ср сен 21, 2022 05:34:38

Выкладываю файлы драйверов для чипов QN8065 и QN8035.

В первом архиве файлы драйвера для чипа QN8065 который по даташиту обладает чувствительностью 1,1 мкВ. Под какой МК делался драйвер не знаю, файлы скачаны с китайского сайта - аналога гитхаба. С года назад этот сайт прикрыли и теперь нет возможности разобраться в составе чего был этот драйвер.

https://disk.yandex.ru/d/bgSFJmAxfyfK6w

Во втором архиве драйвер для QN8035 из AC692x_SDK заточенной под чипы китайской компании JL. В коде упоминается QN8075. Возможно драйвер универсальный и может работать как с QN8035 так и с QN8075.

https://disk.yandex.ru/d/hgYqXzkPJtetdg

В коде обоих драйверов есть дефайны с названиями регистров чипов и их адресами, что может оказаться полезным. Может быть найдется что-то ранее неизвестное.

Re: QN8035/QN80xx - FM приёмник, основные вопросы

Ср сен 21, 2022 07:42:07

Спасибо, полезная информация есть.
---
Случайно отсоединил антенну (кусок проволоки) от входа QN8035. Перенастройка между двумя соседними частотами имеет тот же эффект (пш-ш-шт), что и в Вашем видео. Есть какая-то система шумоподавления, soft-mute? (а шум есть в то время, когда переходит из неактивного состояния при смене частоты в рабочее?).

Пробовал менять регистры. reg 0x36, bit 4 либо выключает ШП, либо меняет границу внизу. Теперь динамик "шипит" как аналоговое радио :). Можете попытаться установить бит, напр. при инициализации. Будет интересно посмотреть действие на QN8075. (Где-то в регистрах может быть больше настроек).
Код:
старое состояние: 0x36 0b00110101
новое состояние : 0x36 0b00100101

Re: QN8035/QN80xx - FM приёмник, основные вопросы

Ср сен 21, 2022 09:15:06

Года 3-4 назад, не обнаружив полного даташита на QN8075, я взял логический анализатор и снял логи с шины I2C китайского приемника Luxe Bass LB-A4FM построенного на этом чипе. Сделал на основе лога функцию инициализации и записывал полученные с китайского приемника данные в свою QN8075 на макетной плате. Регистры записывал один за другим, наблюдая за реакцией QN8075. В файле отмечены регистры при записи в которые появляется и исчезает звук на выходе чипа QN. Приемник с этим кодом включается и работает на на частоте 91,2 МГц. Следует учесть, что самая последняя запись (в самом низу текста) в регистр 0x14 выключает звук после инициализации.

Позже дописал код загрузки данных в регистры управления частотой настройки для управления настройкой энкодером, и индикацию частоты на ЖК дисплее.

По ссылке текстовый файл с кодом функции инициализации. Переменные в нем: ad - адрес чипа QN8075, reg - адрес регистра, dn - записываемые в регистры данные. Функция WR_I2C_Master_1byte (ad, reg, dn); - функция записи данных в ведомое устройство I2C.

https://disk.yandex.ru/d/0M4zXm-q4iNyJQ

Есть какая-то система шумоподавления, soft-mute?
Честно говоря не знаю. Я же наугад действовал, в даташите на QN8075 вообще никакие регистры не описаны. Но в регистр 0x36 что-то записывается из кода стянутого с китайского приемника. Возможно, это настройки soft-mute.

Пробовал менять регистры. reg 0x36, bit 4 либо выключает ШП, либо меняет границу внизу. Теперь динамик "шипит" как аналоговое радио :). Можете попытаться установить бит, напр. при инициализации. Будет интересно посмотреть действие на QN8075. (Где-то в регистрах может быть больше настроек).
Код:
старое состояние: 0x36 0b00110101
новое состояние : 0x36 0b00100101
Спасибо, обязательно попробую. Не сейчас, где-то в течении недели. Сейчас у меня все макетки, рабочие столы и измерительные приборы заняты под другие проекты. Просто не протолкнуться. Но непременно проверю. Если звон и чириканьше при перестройке исчезнут, будет совсем хорошо. У меня этих QN8075 целая куча, но не знал что с ними делать из-за неприятного эффекта.

veso74, если нетрудно, можно видео QN8035 с включенным шумоподавлением и отключенным? Хотелось бы оценить разницу.

Re: QN8035/QN80xx - FM приёмник, основные вопросы

Ср сен 21, 2022 17:45:41

Еффект зависит от "веса" - и от несколько соседних битов. Самый низкий ШП: при reg 0x36 = 0b000000101.
---
reg 0x1D, bit 6 - влияет на ШП больше. Вроде ШП выключался?, на некоторых переходах на 100 kHz (почти) никакого эффекта нет (нет антенны).
Код:
был : 0x1D 0b11101001
стал: 0x1D 0b10101001

(В Вашем коде бит уже установлен в 0)
---
Нет надежды на хороший "аналоговой" ручной режим :). Надеюсь, автоматический режим с поиском станций подойдет.

Re: FM приёмник с RDS на RDA5807

Вс дек 11, 2022 23:37:09

Собрал модуль и на QN8075. Подтверждаю: тот же управление как QN8035 - те же регистры, те же данные (+ пин INT в 8035). По крайней мере, те биты, которые я ранее заметил, влияли. Звук тот же (модули могу поменять быстро, выводы сделал одинаковый).

Звук хороший. (Не могу решить, нравится ли мне больше высоких частот :) - не могу найти другого варианта, кроме как удалить de-emphasis -> бит 0 в 0x1C: из 0 в 1: reg 0x1C = 0b00001110 -> 0b00001111).

Код инициализации и загрузка на одной частоте ниже, оставил так на данный момент.
Спойлерvoid qn8075_init() {
qn8075_write_reg(0x01, 0b01000000); // inject sine-wave clock, LO > RF, image is in upper side
qn8075_write_reg(0x14, 0b00000111); // no mute, 50 us, GAIN_DIG[2:0] = 0 dB, GAIN_ANA[2:0] = 0 dB

// qn8075_write_reg(0x36, 0b00100101); // soft-mute noise filter off?
qn8075_write_reg(0x1D, 0b10101001); // soft-mute noise filter off?

qn8075_write_reg(0x54, 0x47); // mod PLL setting
qn8075_write_reg(0x19, 0xC4); // select SNR as filter3, SM step is 2db
qn8075_write_reg(0x33, 0x9E); // set HCC and SM Hystersis 5db
qn8075_write_reg(0x2D, 0xD6); // notch filter threshold adjusting
qn8075_write_reg(0x43, 0x10); // notch filter threshold enable
qn8075_write_reg(0x47, 0x39);
// qn8075_write_reg(0x57, 0x21); // only for qn8075B test
qn8075_write_reg(0x00, 0x11); // enter receiver mode directly
qn8075_write_reg(0x1D, 0xA9); // enable the channel condition filter3 adaptation, let ccfilter3 adjust freely
qn8075_write_reg(0x4F, 0x40); // dsiable auto tuning
qn8075_write_reg(0x34, 12); // set SMSTART
qn8075_write_reg(0x35, 51); // set SNCSTART
qn8075_write_reg(0x36, 18); // set HCCSTART
}
//----------
void qn8075_set_freq(uint16_t m_freq) { // frequency * 10, e.g. 105.8 MHz -> 1058
uint16_t d = (m_freq - 600) * 2; // d = (m_freq - 60) / 0.05;

qn8075_write_reg(0x07, d & 0xFF); // CH[7:0], FM channel: CH = (60 + CH * 0.05) MHz
qn8075_write_reg(0x0A, ( d >> 8 ) & 0x03); // CH[9:8]
qn8075_write_reg(0x00, 0b00010001); // RXREQ = 1 -> enter receive mode, CH is determined by CH[9:0]
}

Re: FM приёмник с RDS на RDA5807

Ср дек 14, 2022 00:36:36

Просканировал регистры QN8035 и соответственно QN8075. Чипы загруженные одной частотой. Есть небольшая разница. Сравнение может быть полезно для последующего анализа. Вероятно за разницу в некоторых - из за уровень в антенне (RSSI).
Вложения
qn_read_regs.zip
(2.48 KiB) Скачиваний: 84

Re: FM приёмник с RDS на RDA5807

Ср дек 14, 2022 00:45:24

К слову про RSSI. При измерении RSS и SNR нужно ждать приблизительно 200-300 миллисекунд после загрузки частоты настройки в регистры QN8075. Иначе будут считаны неправильные значения.
Ответить