FM радио на TEA5767

KennyMc

✩✩✩✩✩✩✩
6 Фев 2024
6
0
Нужен программист для написание скетча для FM радио. В сети много проектов на базе TEA5767, но все они используют либо кнопки, либо энкодер. Вот пример. Мне же нужно чтобы перестройка по частоте была через переменный резистор по таблице соответствия напряжения и частоты.
Задание такое
имеем 4 зависимых переключателя на пине А0 через разные резисторы , 4 потенциометра А1,2,3,6. Один переключатель стерео/моно А7, диод стерео D7 (не от переключателя стерео/моно, а от сигнала "стерео" с TEA5767). Аналоговый индикатор уровня сигнала на D5. И соответственно TEA5767 А4,5.
Две таблицы соответствия напряжения от потенциометров частоте, каждая по 320 строк (все писать не нужно, шт по 10 для проверки, остальные буду дописывать самостоятельно, подгоняя показания по шкале) Первая для потенциометра на А6, вторая для А1,2,3
При включении проверка напряжения на А0, если ничего нет, то работа с потенциометром на А6 и первой таблицей. Если есть, то в зависимости от напряжения работа с потенциометрами на А1,2,3 и второй таблицей. И дальше только отслеживание А0 и работа от соответствующего потенциометра. Ну и соответственно работа индикатора уровня сигнала, диода "стерео" и переключателя стерео/моно

А совсем идеал, организовать это все на raspberry. Так как уже есть малина с АЦП шляпой, на которой крутится Volumio.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
320 дискретов на 10 битном ацп и механическом резисторе, даже многооборотном, надежно работать не будет. У вас разница между дискретами в 3 единицы или меньше 2х разрядов ацп. В один разряд будет шуметь сам ацп, плюс температура, плюс механика резистора - в итоге ваши "станции" будут скакать в зависимости от погоды на улице. Соберите макет для начала с резистором и потестируйте на стабильность.
 

KennyMc

✩✩✩✩✩✩✩
6 Фев 2024
6
0
Мне абсолютная стабильность в принципе не нужна. Просто хочу в старой радиоле оставить аналоговое управление. А по поводу разницы между дискретами - поэтому и хочу реализацию через таблицу, чтобы можно было расширить в частотах приема.
 

poty

★★★★★★✩
19 Фев 2020
3,230
940
@KennyMc, речь не о соответствии реальной частоте, а о том, что при существующих условиях процессор будет получать с АЦП постоянно меняющиеся и нестабильные данные из-за шума, температуры...
 

KennyMc

✩✩✩✩✩✩✩
6 Фев 2024
6
0
@poty, это я понимаю, тут вопрос насколько большим будет разброс данных? А если применить внешний АЦП? Это стационарная радиола и соответственно можно расширить диапазон напряжений на частотах радиостанций и соответственно уменьшить между.
 

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
Дался вам этот ацп, нацепите на ручку энкодер и не занимайтесь ерундой. Если хотите избавиться от дискретности поворота энкодера, то или возмите энкодер без трещетки или поставьте магнитный энкодер и получите шикарное разрешение и плавный ход с какой угодно шкалой
 

KennyMc

✩✩✩✩✩✩✩
6 Фев 2024
6
0
@vortigont, тогда не будет связи со стрелкой на шкале. Можно конечно сделать так, при включении через переменный резистор определять ± частоту, а потом уже перестраиваться с помощью энкодера. Но тогда отпадают переменные резисторы на памяти станций и все равно ацп ))))
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
3,230
940
@KennyMc, разрешение - 1024 уровня. 320 дискретов даст требуемую для "улавливания" разницу в уровнях 1024/320 = 3. При соблюдении всех условий точность АЦП - около 2,5 уровней (без учёта шумов). Т.е. фактически 320 уровней Вы никогда не получите.
А память можно реализовать на flash микроконтроллера, всё равно шкала к переменникам "памяти" в оригинальном ТЗ не привязана. И почему Вы думаете, что со стрелкой на шкале не будет связи от энкодера? Есть абсолютные энкодеры, например. Ну, и другие способы определения текущего положения.
 

KennyMc

✩✩✩✩✩✩✩
6 Фев 2024
6
0
@poty, я же написал, что мне не нужно постоянно искать новые станции. Их около 20 шт. Соотвественно в районе нахождения станции шаг можно делать в три раза больше, а между станциями меньше. Память в радиоле организована 3 зависимыми переключателями и тремя переменными резисторами (в ТЗ они упоминаются). Причем каждая ячейка памяти имеет свою шкалу со стрелкой
По механике сильно не разгуляться, так как осью шкифа веньерного устройства является ось переменного резистора. Конечно все можно переделать, но это будет увы совсем не бюджетно. А с резисторами памяти вообще не переделать.
 

Вложения

vortigont

★★★★★★✩
24 Апр 2020
1,022
542
Saint-Petersburg, Russia
Что такое 'ячейка памяти' в радиоле я не понял. Но вам тут прям просится магнитный энкодер - он выдает угол поворота, вы всегда будете знать "положение" ручки от 0-360 градусов. 3 зависимых переключателя можно завести на цифровые пины что бы знать что "нажато" и какой 'диапазон' крутит энкодер. Если угол поворота ручки больше 360 градусов, то придется отслеживать и хранить переход через 0. Но это всяко проще и надежнее возни со значениями ацп.
Не понятно как вы хотите "расширять" значения в пределах станции. Сколько градусов у вас полный поворот ручки/резистора от края до края и сколько на этом диапазоне нужно дискретных значений, откуда взялась цифра 320?
Ну думайте сами. Но я бы советовал собрать макет
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
3,230
940
@KennyMc, так и надо сделать пусть 100 "дискретов", нафига тут 320 - непонятно. В скетче (или чем Вы там собираетесь управлять) сканировать диапазон текущего "дискрета" с любым нужным Вам разрешением и ловить сигнал. Именно это найденное значение управления записывать в таблицу.
Но я бы тоже ушёл в энкодеры, это ничему не противоречит.
 

KennyMc

✩✩✩✩✩✩✩
6 Фев 2024
6
0
Что такое 'ячейка памяти' в радиоле
"ячейка памяти " в радиоле это такое механическое ПЗУ ))) Переключатель, переменный резистор, своя отдельная мини шкала. Настроил частоту резистором и в любое время имеешь доступ к этой частоте при включении переключателя. Заморачиваться с заменой переменного резистора на энкодер не имеет смысл, так как все равно переменные резисторы на памяти не заменить. Можно конечно оставить только как кнопки памяти, но это уже не то. А так можно взять за 300р китайское радио с переменным резистором и просто встроить его