Темброблок - анализатор спектра на STM32F103
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок - анализатор спектра на STM32F103
Я, в основном, всё отлаживаю на ILI9341 3.2" дисплее. Изначально он с 16-битным подключением; для перевода на 8 бит дисплей был отклеен от своей платы и переброшена одна перемычка-резистор на его шлейфе.
Также проверяю работу по SPI на ILI9341 SPI 2.4" дисплее. Вследствие некоторых ухищрений и оптимизаций скорость работы достаточная, на глаз разницы с предыдущим (параллельным) вариантом незаметна. Подобные дисплеи на Aliexpress - одни из самых популярных, бывают разные размеры по диагонали (2.2" .. 3.2").
Также периодически подключаю и проверяю разрешение 480x320 на R61581 3.95" дисплее. У него, правда, понадобилось отпаять шлейф тачскрина, так как он подвешен параллельно портам D6/D7 и мешал работе энкодера. Ну и вывода для регулировки яркости у него нет.
Также проверяю работу по SPI на ILI9341 SPI 2.4" дисплее. Вследствие некоторых ухищрений и оптимизаций скорость работы достаточная, на глаз разницы с предыдущим (параллельным) вариантом незаметна. Подобные дисплеи на Aliexpress - одни из самых популярных, бывают разные размеры по диагонали (2.2" .. 3.2").
Также периодически подключаю и проверяю разрешение 480x320 на R61581 3.95" дисплее. У него, правда, понадобилось отпаять шлейф тачскрина, так как он подвешен параллельно портам D6/D7 и мешал работе энкодера. Ну и вывода для регулировки яркости у него нет.
Последний раз редактировалось WiseLord Вт дек 11, 2018 10:07:00, всего редактировалось 1 раз.
- Реклама
-
Александр 84
- Открыл глаза
- Сообщения: 75
- Зарегистрирован: Вт дек 11, 2018 06:25:42
- Откуда: г Омск
Re: Темброблок - анализатор спектра на STM32F103
хорошо,понял,спасибо большое !
-
stepanici85
- Открыл глаза
- Сообщения: 79
- Зарегистрирован: Сб май 28, 2011 23:08:17
- Откуда: Россия(Москва)-Молдавия
Re: Темброблок - анализатор спектра на STM32F103
Здравствуйте WiseLord,в новом проекте будет поддержка тюнера tux032 и синтезатора на lm7001.в наличии есть tux032 ну и куча тюнеров от автомагнитол. Хочется качественного радиоприема, сам из деревни а там радиоприем не ахти. Я уверен что многие будут только за)
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок - анализатор спектра на STM32F103
Пока код рассчитан на то, что тюнер поддерживает автоскан, так что эти варианты отпадают. Когда (не скоро) займусь поддержкой ручного ввода частоты - тогда, вероятно, добавлю и эти варианты.
Re: Темброблок - анализатор спектра на STM32F103
припаял 10 кОм подтяжку I2C к +5В на темброблоке tda7313,
подключил к контроллерру
#define AMP_I2C_Port GPIOB
#define AMP_I2C_SCK_Pin LL_GPIO_PIN_10
#define AMP_I2C_SDA_Pin LL_GPIO_PIN_11
темброблок продолжает игнорить команды I2C.
можно тест I2C шины с опросом тюнеров и темброблоков в менюшку запилить?
подключил к контроллерру
#define AMP_I2C_Port GPIOB
#define AMP_I2C_SCK_Pin LL_GPIO_PIN_10
#define AMP_I2C_SDA_Pin LL_GPIO_PIN_11
темброблок продолжает игнорить команды I2C.
можно тест I2C шины с опросом тюнеров и темброблоков в менюшку запилить?
- Реклама
-
stepanici85
- Открыл глаза
- Сообщения: 79
- Зарегистрирован: Сб май 28, 2011 23:08:17
- Откуда: Россия(Москва)-Молдавия
Re: Темброблок - анализатор спектра на STM32F103
WiseLord хотя-бы к tux032 можно прикурить автопоиск? Он веди управлятся по квадратной шине.
Re: Темброблок - анализатор спектра на STM32F103
подкинул к магнитоле на tda7313, тоже не работает.
как продиагностировать проблему, это софт или аппаратная часть?
как продиагностировать проблему, это софт или аппаратная часть?
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок - анализатор спектра на STM32F103
Дайте мне даташит с описанием регистров. Можно не всех, а только отвечающих за запуск автоскана (регистры с битом направления вверх/вниз, и битом самого автопоиска), и регистр, из которого можно прочитать уровень сигнала. Тогда - пожалуйста, можно сделать.stepanici85 писал(а): хотя-бы к tux032 можно прикурить автопоиск? Он веди управлятся по квадратной шине.
Вполне возможно, что в программе что-то не так. Без железки под рукой сложно сказать. Если есть возможность снять лог. анализатором происходящее на шине - было бы здорово.kloker писал(а):подкинул к магнитоле на tda7313, тоже не работает.
как продиагностировать проблему, это софт или аппаратная часть?
Ну или ждите, когда я спаяю подобную плату и смогу проверить. Те две, что я делал раньше, как-то разошлись со временем по устройствам.
P.S. Совсем забыл, что адреса у TDA7439 и TDA7313 совпадают, так что можно подключить первую, и скармливать её данные от второй - ответ будет приходить. Проверил в таком виде.
В итоге оказалась совсем детская ошибка - забытые скобки - нарушенный приоритет операций. Это приводило к тому, что микросхема-то вроде как работала, но только на одном из четырёх входов, его сменить не выходило.
Поправил код, попробуйте TDA7313 с ним - должно на сей раз быть ОК,
Re: Темброблок - анализатор спектра на STM32F103
залил с исправлениями, анализатор на шине видит 2 единицы по SDA SCL, единицы 3.9 В.
если крутить энкодер в режиме громкость, то проскакивают 2 нуля, пока кручу энкодер.
никакого обмена данными по шине не просматривается.
снимал лог во время включения выключения, та-же картина.
в каком формате логи закинуть? снимал софтиной Saleae Logic
если крутить энкодер в режиме громкость, то проскакивают 2 нуля, пока кручу энкодер.
никакого обмена данными по шине не просматривается.
снимал лог во время включения выключения, та-же картина.
в каком формате логи закинуть? снимал софтиной Saleae Logic
- Вложения
-
- 2 MHz, 4 M Samples [25].zip
- Log
- (1.07 КБ) 396 скачиваний
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок - анализатор спектра на STM32F103
Пока снимал скриншоты у себя, обнаружил, что я банально забыл про регулировку громкости на TDA7313. Так что обновитесь - возможно, сработает.
А вот как у меня выглядит весь обмен для TDA7313 (подключена, правда, TDA7439, но откликается она на команды, пусть и неправильные для неё, так же):

Увеличенная область сброс (изначальный импульс на шине - нужен для Si4703, затем уже инициализация аудиопроцессора):

Инициализация аудиопросессора:

Включение (выход из ждущего режима):

Регулировка громкости (неправильная, в новом коде пофикшено - должно быть одним байтом):

Выключение похоже по данным на то, что идёт при начальной инициализации.
Если у Вас совсем не так, то да, сбросьте свои результаты. Если что, скачаю софтинку от Saleae для просмотра, она вроде есть и для Linux, Я же на своём анализаторе (клоне Saleae) пользуюсь pulseview / libsigrock.
А вот как у меня выглядит весь обмен для TDA7313 (подключена, правда, TDA7439, но откликается она на команды, пусть и неправильные для неё, так же):

Увеличенная область сброс (изначальный импульс на шине - нужен для Si4703, затем уже инициализация аудиопроцессора):

Инициализация аудиопросессора:

Включение (выход из ждущего режима):

Регулировка громкости (неправильная, в новом коде пофикшено - должно быть одним байтом):

Выключение похоже по данным на то, что идёт при начальной инициализации.
Если у Вас совсем не так, то да, сбросьте свои результаты. Если что, скачаю софтинку от Saleae для просмотра, она вроде есть и для Linux, Я же на своём анализаторе (клоне Saleae) пользуюсь pulseview / libsigrock.
Re: Темброблок - анализатор спектра на STM32F103
по регулировке похоже, но инициализации нет. снял лог libsigrock с включением регулировкой выключением.
дискретность выборки 2 мгц. похоже темброблок не отвечает на посылки Master I2C контроллера
дискретность выборки 2 мгц. похоже темброблок не отвечает на посылки Master I2C контроллера
- Вложения
-
- test.zip
- libsigrock
- (1.54 КБ) 383 скачивания
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок - анализатор спектра на STM32F103
Ну, судя по тому, что я вижу, TDA7313 банально не отвечает ACK-ом при обращении к ней. Адрес 0x88 - правильный, но она молчит.

Так что, либо неисправна (хотя, как я понял, в других случаях вполне работала), либо она не воспринимает данные из-за неправильных уровней на шине. Должно быть 5В неактивных, питание самого аудиопроцессора 9В, ЕМНИП.
Ещё, на всякий случай, можете попробовать закомментировать содержимое функции pinsHwReset(). Там при сбросе МК по сути генерируется один STOP на шине - возможно, TDA7313 как-то плохо это воспринимает.
И, надеюсь, на шине всё правильно? Резисторы подтяжки в наличии?

Так что, либо неисправна (хотя, как я понял, в других случаях вполне работала), либо она не воспринимает данные из-за неправильных уровней на шине. Должно быть 5В неактивных, питание самого аудиопроцессора 9В, ЕМНИП.
Ещё, на всякий случай, можете попробовать закомментировать содержимое функции pinsHwReset(). Там при сбросе МК по сути генерируется один STOP на шине - возможно, TDA7313 как-то плохо это воспринимает.
И, надеюсь, на шине всё правильно? Резисторы подтяжки в наличии?
Re: Темброблок - анализатор спектра на STM32F103
[uquote="WiseLord",url="/forum/viewtopic.php?p=3524899#p3524899"]И, надеюсь, на шине всё правильно? Резисторы подтяжки в наличии?[/uquote]
подтяжки делал к +5 резисторами 10 кОм, при единице уровень 3.95 В на пине темброблока. контроллер запитал +5В с темброблока (на нем 2 стабилизатора последовательно 12V вход ->9V->5V, земля общая).
может подтяжки на 4,7-2.2 кОм поставить?
по даташиту у TDA7313
Input High Voltage 3 V Min.
Data transmission from microprocessor to the
TDA7313 and viceversa takes place thru the 2
wires I2C BUS interface, consisting of the two
lines SDA and SCL (pull-up resistors to positive
supply voltage must be connected).
частоту шины не найду в даташите. может он переварить поток не может?
подтяжки делал к +5 резисторами 10 кОм, при единице уровень 3.95 В на пине темброблока. контроллер запитал +5В с темброблока (на нем 2 стабилизатора последовательно 12V вход ->9V->5V, земля общая).
может подтяжки на 4,7-2.2 кОм поставить?
по даташиту у TDA7313
Input High Voltage 3 V Min.
Data transmission from microprocessor to the
TDA7313 and viceversa takes place thru the 2
wires I2C BUS interface, consisting of the two
lines SDA and SCL (pull-up resistors to positive
supply voltage must be connected).
частоту шины не найду в даташите. может он переварить поток не может?
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок - анализатор спектра на STM32F103
В проекте используется 100кГц, т.е., по минимуму. В даташите на TDA7313 (стр. 9) указана Max clock speed 100kbit/s.
Я на шине ставил подтяжки на 4,7кОм. И это даже интересно, почему у Вас уровни на шине меньше 4В. Попробуйте просто отдельно на тюнере и МК сделать эти подтяжки, между собой не подключая. Просто интересно, что утягивает линию до 4В - МК или аудиопроцессор.
Я на шине ставил подтяжки на 4,7кОм. И это даже интересно, почему у Вас уровни на шине меньше 4В. Попробуйте просто отдельно на тюнере и МК сделать эти подтяжки, между собой не подключая. Просто интересно, что утягивает линию до 4В - МК или аудиопроцессор.
Re: Темброблок - анализатор спектра на STM32F103
и да, у аудиопроцессора 2 земли, аналоговая, и отдельным пином цифровая, чтобы цифровые шумы не лезли в аналоговый тракт. как это развязано внутри, нигде не описано, у меня пока общая земля.
а с подтяжками вечером еще поиграюсь.
тюнер RDA5807M кстати тоже молчит. на AVR он FM шумы выдавал (или кварц битый или дядюшка Ляо не того номинала впихнул, надо попробовать поменять на часовой 32768 Гц, или антенный вход жестко забит на провода наушников, а не пин антены). tea5767 на AVR\ESP12 нормально работал, но тоже на длинных проводах выхода аудио, под STM еще не ставил, распаять надо на макетке.
Добавлено after 46 minutes 1 second:
[uquote="WiseLord",url="/forum/viewtopic.php?p=3524899#p3524899"]Ещё, на всякий случай, можете попробовать закомментировать содержимое функции pinsHwReset().[/uquote]
dispdrv.c
..
151: // pinsHwReset();
..
нашел только сдесь, функция из дефолтных библиотек?
а с подтяжками вечером еще поиграюсь.
тюнер RDA5807M кстати тоже молчит. на AVR он FM шумы выдавал (или кварц битый или дядюшка Ляо не того номинала впихнул, надо попробовать поменять на часовой 32768 Гц, или антенный вход жестко забит на провода наушников, а не пин антены). tea5767 на AVR\ESP12 нормально работал, но тоже на длинных проводах выхода аудио, под STM еще не ставил, распаять надо на макетке.
Добавлено after 46 minutes 1 second:
[uquote="WiseLord",url="/forum/viewtopic.php?p=3524899#p3524899"]Ещё, на всякий случай, можете попробовать закомментировать содержимое функции pinsHwReset().[/uquote]
dispdrv.c
..
151: // pinsHwReset();
..
нашел только сдесь, функция из дефолтных библиотек?
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок - анализатор спектра на STM32F103
Функция эта в pins.h/c. Она там дополнительно SDA/SCL дёргает, так что можно для проверки убрать лишнее.
Кстати, если проект открыть в QtCreator, можно по F2 (или Ctrl-click) быстро переходить по функциям.
Кстати, если проект открыть в QtCreator, можно по F2 (или Ctrl-click) быстро переходить по функциям.
Re: Темброблок - анализатор спектра на STM32F103
[uquote="WiseLord",url="/forum/viewtopic.php?p=3525063#p3525063"]Кстати, если проект открыть в QtCreator, можно по F2 (или Ctrl-click) быстро переходить по функциям.[/uquote]
попробую еще раз QtCreator, но слишком он навороченый.
еще вопрос для понимания, кто держит шину SCL в низком уровне, когда идет 11 попыток связаться с темброблоком? по протоколу I2C мастер передатчик должен 8 тиков сделать, и освободить шину, слейв приемник сделать 1 тик SCL для подтверждения приема пакета, за генерацией синхросигнала следит мастер шины, или я не до конца понял протокольную часть?
в моем логе 11 попыток, и между ними длинные пробелы с состоянием SDA=1 и SCL=0, в конце отбой P( кто его создал, STM или аудиопроцессор?)
попробую еще раз QtCreator, но слишком он навороченый.
еще вопрос для понимания, кто держит шину SCL в низком уровне, когда идет 11 попыток связаться с темброблоком? по протоколу I2C мастер передатчик должен 8 тиков сделать, и освободить шину, слейв приемник сделать 1 тик SCL для подтверждения приема пакета, за генерацией синхросигнала следит мастер шины, или я не до конца понял протокольную часть?
в моем логе 11 попыток, и между ними длинные пробелы с состоянием SDA=1 и SCL=0, в конце отбой P( кто его создал, STM или аудиопроцессор?)
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок - анализатор спектра на STM32F103
Мастер делает 8 тиков, отпускает линию (она за счёт подтяжек уходит в 1) и ждёт, что теперь уже подчинённый опустит линию (ACK). Но тот того не делает (NACK), после чего мастер прерывает передачу (после 5мс таймаута - столько у меня выставлено в коде). Все эти 5мс мастер ждёт и надеется на ответ, поэтому линия SCL и остаётся в нуле.
Re: Темброблок - анализатор спектра на STM32F103
подчиненный не мог держать линию SCL в нуле все 11 попыток, иначе и второй попытки бы не произошло, линия сидела бы в нуле удержанием темброблока.
попробую залогать всю процедуру без темброблока. потом с подтяжками поэкспериментирую.
а логика инициализации аудиопроцессора сильно изменилась с проекта AVR? инициализация сразу после подачи питания (аудиопроцессору нужно больше времени после подачи питания), или при каждом выходи из слип режима? на AVR темброблок иногда затыкался в процессе отладки, когда питание на него подавалось (забыл включить) после подачи питания на контроллер AVR, и шину I2C коротил(тюнер с часами тоже в ступор входили).
попробую залогать всю процедуру без темброблока. потом с подтяжками поэкспериментирую.
а логика инициализации аудиопроцессора сильно изменилась с проекта AVR? инициализация сразу после подачи питания (аудиопроцессору нужно больше времени после подачи питания), или при каждом выходи из слип режима? на AVR темброблок иногда затыкался в процессе отладки, когда питание на него подавалось (забыл включить) после подачи питания на контроллер AVR, и шину I2C коротил(тюнер с часами тоже в ступор входили).
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Темброблок - анализатор спектра на STM32F103
Линию в нуле держит мастер, потому что подчинённый не ответил.
А инициализацию я как раз переделываю сейчас, чтобы было независимо от питания.
Добавлено after 23 minutes 16 seconds:
kloker, один, возможно, глупый вопрос.
Линии SDA и SCL, случаем, не перепутаны? По даташиту SCL - это 28 ножка аудиопроцессора, SDA - 27.
Просто, например, в этой статье, на схеме ошибка, и мало ли где ещё по сети она гуляет.
А инициализацию я как раз переделываю сейчас, чтобы было независимо от питания.
Добавлено after 23 minutes 16 seconds:
kloker, один, возможно, глупый вопрос.
Линии SDA и SCL, случаем, не перепутаны? По даташиту SCL - это 28 ножка аудиопроцессора, SDA - 27.
Просто, например, в этой статье, на схеме ошибка, и мало ли где ещё по сети она гуляет.


