Обсуждаем цифровые устройства...
Ответить

Re: Темброблок - анализатор спектра на STM32F103

Вт дек 11, 2018 08:21:17

Я, в основном, всё отлаживаю на ILI9341 3.2" дисплее. Изначально он с 16-битным подключением; для перевода на 8 бит дисплей был отклеен от своей платы и переброшена одна перемычка-резистор на его шлейфе.

Также проверяю работу по SPI на ILI9341 SPI 2.4" дисплее. Вследствие некоторых ухищрений и оптимизаций скорость работы достаточная, на глаз разницы с предыдущим (параллельным) вариантом незаметна. Подобные дисплеи на Aliexpress - одни из самых популярных, бывают разные размеры по диагонали (2.2" .. 3.2").

Также периодически подключаю и проверяю разрешение 480x320 на R61581 3.95" дисплее. У него, правда, понадобилось отпаять шлейф тачскрина, так как он подвешен параллельно портам D6/D7 и мешал работе энкодера. Ну и вывода для регулировки яркости у него нет.
Последний раз редактировалось WiseLord Вт дек 11, 2018 10:07:00, всего редактировалось 1 раз.

Re: Темброблок - анализатор спектра на STM32F103

Вт дек 11, 2018 08:46:12

хорошо,понял,спасибо большое !

Re: Темброблок - анализатор спектра на STM32F103

Вт дек 11, 2018 12:46:09

Здравствуйте WiseLord,в новом проекте будет поддержка тюнера tux032 и синтезатора на lm7001.в наличии есть tux032 ну и куча тюнеров от автомагнитол. Хочется качественного радиоприема, сам из деревни а там радиоприем не ахти. Я уверен что многие будут только за)

Re: Темброблок - анализатор спектра на STM32F103

Вт дек 11, 2018 13:54:46

Пока код рассчитан на то, что тюнер поддерживает автоскан, так что эти варианты отпадают. Когда (не скоро) займусь поддержкой ручного ввода частоты - тогда, вероятно, добавлю и эти варианты.

Re: Темброблок - анализатор спектра на STM32F103

Вт дек 11, 2018 16:27:31

припаял 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 шины с опросом тюнеров и темброблоков в менюшку запилить?

Re: Темброблок - анализатор спектра на STM32F103

Вт дек 11, 2018 16:52:58

WiseLord хотя-бы к tux032 можно прикурить автопоиск? Он веди управлятся по квадратной шине.

Re: Темброблок - анализатор спектра на STM32F103

Вт дек 11, 2018 17:09:00

подкинул к магнитоле на tda7313, тоже не работает.
как продиагностировать проблему, это софт или аппаратная часть?

Re: Темброблок - анализатор спектра на STM32F103

Вт дек 11, 2018 18:56:19

stepanici85 писал(а): хотя-бы к tux032 можно прикурить автопоиск? Он веди управлятся по квадратной шине.
Дайте мне даташит с описанием регистров. Можно не всех, а только отвечающих за запуск автоскана (регистры с битом направления вверх/вниз, и битом самого автопоиска), и регистр, из которого можно прочитать уровень сигнала. Тогда - пожалуйста, можно сделать.

kloker писал(а):подкинул к магнитоле на tda7313, тоже не работает.
как продиагностировать проблему, это софт или аппаратная часть?
Вполне возможно, что в программе что-то не так. Без железки под рукой сложно сказать. Если есть возможность снять лог. анализатором происходящее на шине - было бы здорово.

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

P.S. Совсем забыл, что адреса у TDA7439 и TDA7313 совпадают, так что можно подключить первую, и скармливать её данные от второй - ответ будет приходить. Проверил в таком виде.

В итоге оказалась совсем детская ошибка - забытые скобки - нарушенный приоритет операций. Это приводило к тому, что микросхема-то вроде как работала, но только на одном из четырёх входов, его сменить не выходило.

Поправил код, попробуйте TDA7313 с ним - должно на сей раз быть ОК,

Re: Темброблок - анализатор спектра на STM32F103

Вт дек 11, 2018 22:58:54

залил с исправлениями, анализатор на шине видит 2 единицы по SDA SCL, единицы 3.9 В.
если крутить энкодер в режиме громкость, то проскакивают 2 нуля, пока кручу энкодер.
никакого обмена данными по шине не просматривается.
снимал лог во время включения выключения, та-же картина.
в каком формате логи закинуть? снимал софтиной Saleae Logic
Вложения
2 MHz, 4 M Samples [25].zip
Log
(1.07 KiB) Скачиваний: 307

Re: Темброблок - анализатор спектра на STM32F103

Вт дек 11, 2018 23:33:22

Пока снимал скриншоты у себя, обнаружил, что я банально забыл про регулировку громкости на TDA7313. Так что обновитесь - возможно, сработает.

А вот как у меня выглядит весь обмен для TDA7313 (подключена, правда, TDA7439, но откликается она на команды, пусть и неправильные для неё, так же):

Изображение

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

Изображение

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

Изображение

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

Изображение

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

Изображение

Выключение похоже по данным на то, что идёт при начальной инициализации.

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

Re: Темброблок - анализатор спектра на STM32F103

Ср дек 12, 2018 00:09:37

по регулировке похоже, но инициализации нет. снял лог libsigrock с включением регулировкой выключением.
дискретность выборки 2 мгц. похоже темброблок не отвечает на посылки Master I2C контроллера
Вложения
test.zip
libsigrock
(1.54 KiB) Скачиваний: 297

Re: Темброблок - анализатор спектра на STM32F103

Ср дек 12, 2018 11:53:43

Ну, судя по тому, что я вижу, TDA7313 банально не отвечает ACK-ом при обращении к ней. Адрес 0x88 - правильный, но она молчит.

Изображение

Так что, либо неисправна (хотя, как я понял, в других случаях вполне работала), либо она не воспринимает данные из-за неправильных уровней на шине. Должно быть 5В неактивных, питание самого аудиопроцессора 9В, ЕМНИП.

Ещё, на всякий случай, можете попробовать закомментировать содержимое функции pinsHwReset(). Там при сбросе МК по сути генерируется один STOP на шине - возможно, TDA7313 как-то плохо это воспринимает.

И, надеюсь, на шине всё правильно? Резисторы подтяжки в наличии?

Re: Темброблок - анализатор спектра на STM32F103

Ср дек 12, 2018 13:29:11

И, надеюсь, на шине всё правильно? Резисторы подтяжки в наличии?


подтяжки делал к +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).

частоту шины не найду в даташите. может он переварить поток не может?

Re: Темброблок - анализатор спектра на STM32F103

Ср дек 12, 2018 13:34:09

В проекте используется 100кГц, т.е., по минимуму. В даташите на TDA7313 (стр. 9) указана Max clock speed 100kbit/s.

Я на шине ставил подтяжки на 4,7кОм. И это даже интересно, почему у Вас уровни на шине меньше 4В. Попробуйте просто отдельно на тюнере и МК сделать эти подтяжки, между собой не подключая. Просто интересно, что утягивает линию до 4В - МК или аудиопроцессор.

Re: Темброблок - анализатор спектра на STM32F103

Ср дек 12, 2018 14:33:29

и да, у аудиопроцессора 2 земли, аналоговая, и отдельным пином цифровая, чтобы цифровые шумы не лезли в аналоговый тракт. как это развязано внутри, нигде не описано, у меня пока общая земля.
а с подтяжками вечером еще поиграюсь.
тюнер RDA5807M кстати тоже молчит. на AVR он FM шумы выдавал (или кварц битый или дядюшка Ляо не того номинала впихнул, надо попробовать поменять на часовой 32768 Гц, или антенный вход жестко забит на провода наушников, а не пин антены). tea5767 на AVR\ESP12 нормально работал, но тоже на длинных проводах выхода аудио, под STM еще не ставил, распаять надо на макетке.

Добавлено after 46 minutes 1 second:
Ещё, на всякий случай, можете попробовать закомментировать содержимое функции pinsHwReset().


dispdrv.c
..
151: // pinsHwReset();
..

нашел только сдесь, функция из дефолтных библиотек?

Re: Темброблок - анализатор спектра на STM32F103

Ср дек 12, 2018 14:50:55

Функция эта в pins.h/c. Она там дополнительно SDA/SCL дёргает, так что можно для проверки убрать лишнее.

Кстати, если проект открыть в QtCreator, можно по F2 (или Ctrl-click) быстро переходить по функциям.

Re: Темброблок - анализатор спектра на STM32F103

Ср дек 12, 2018 15:48:55

Кстати, если проект открыть в QtCreator, можно по F2 (или Ctrl-click) быстро переходить по функциям.


попробую еще раз QtCreator, но слишком он навороченый.

еще вопрос для понимания, кто держит шину SCL в низком уровне, когда идет 11 попыток связаться с темброблоком? по протоколу I2C мастер передатчик должен 8 тиков сделать, и освободить шину, слейв приемник сделать 1 тик SCL для подтверждения приема пакета, за генерацией синхросигнала следит мастер шины, или я не до конца понял протокольную часть?

в моем логе 11 попыток, и между ними длинные пробелы с состоянием SDA=1 и SCL=0, в конце отбой P( кто его создал, STM или аудиопроцессор?)

Re: Темброблок - анализатор спектра на STM32F103

Ср дек 12, 2018 16:18:35

Мастер делает 8 тиков, отпускает линию (она за счёт подтяжек уходит в 1) и ждёт, что теперь уже подчинённый опустит линию (ACK). Но тот того не делает (NACK), после чего мастер прерывает передачу (после 5мс таймаута - столько у меня выставлено в коде). Все эти 5мс мастер ждёт и надеется на ответ, поэтому линия SCL и остаётся в нуле.

Re: Темброблок - анализатор спектра на STM32F103

Ср дек 12, 2018 16:32:17

подчиненный не мог держать линию SCL в нуле все 11 попыток, иначе и второй попытки бы не произошло, линия сидела бы в нуле удержанием темброблока.
попробую залогать всю процедуру без темброблока. потом с подтяжками поэкспериментирую.

а логика инициализации аудиопроцессора сильно изменилась с проекта AVR? инициализация сразу после подачи питания (аудиопроцессору нужно больше времени после подачи питания), или при каждом выходи из слип режима? на AVR темброблок иногда затыкался в процессе отладки, когда питание на него подавалось (забыл включить) после подачи питания на контроллер AVR, и шину I2C коротил(тюнер с часами тоже в ступор входили).

Re: Темброблок - анализатор спектра на STM32F103

Ср дек 12, 2018 18:43:00

Линию в нуле держит мастер, потому что подчинённый не ответил.

А инициализацию я как раз переделываю сейчас, чтобы было независимо от питания.

Добавлено after 23 minutes 16 seconds:
kloker, один, возможно, глупый вопрос.

Линии SDA и SCL, случаем, не перепутаны? По даташиту SCL - это 28 ножка аудиопроцессора, SDA - 27.

Просто, например, в этой статье, на схеме ошибка, и мало ли где ещё по сети она гуляет.
Ответить