Jump to content
bulat943

Приемник на RDA5807 и семисегментнике

Recommended Posts

25я нога в DIP корпусе.

И дело в том, что прошивку programm 88-108 oa ok 04 ST ER 01.hex

не могу проверит а PROTEUSе.Глючит.

Проверял на разных компах.

Edited by vbrt

Share this post


Link to post
Share on other sites

 он и будет глючить-в программе идет запрос рда-пытается считать инфу из RDA а ее нет...

вот стереоиндикатор на portd.3 (оставлял portd.3 для фотоприемника но видно не судьба)

 

programm 88-108 oa ok 04 ST ER 02.hex

Edited by bulat943

Share this post


Link to post
Share on other sites

Тестирование литиевых батареек Fanso в нормальных условиях

Компания Компэл, эксклюзивный дистрибьютор компании Fanso, предлагает широкий перечень ЛХИТ, позволяющий подобрать элемент питания, в наибольшей степени соответствующий конкретным требованиям. Для тестирования параметров, указанных в Datasheet, специалисты Компэл организовали в апреле 2019 г. полугодовой тест на постоянный разряд в нормальных условиях четырех наиболее популярных моделей литий-тионилхлоридных и литий-диоксидмарганцевых батареек Fanso.

Посмотреть результаты первого среза

можете фото выложить,посмотрим что не так

похоже нет ответа от рда,резисторы к SCL и  SDA сколько ком?

Edited by bulat943

Share this post


Link to post
Share on other sites

Новое бюджетное семейство микроконтроллеров STM32G0 и планы его развития

Семейство STM32G0 сочетает в себе лучшие качества представителей семейств STM32F0 и STM32L0 - относительно высокую производительность и низкое энергопотребление. Модели STM32G0 имеют упрощенную схему питания, улучшенную периферию, систему тактирования и быстрые порты в/в, доп.средства защиты ПО, повышенную устойчивость к статическим разрядам, широкий ассортимент корпусов, обновленные пакеты библиотек для STM32CubeMX. STMicroelectronics планирует развивать новое семейство.

Подробнее...

@bulat943, повторил Ваш приемник, всё работает как надо. Прошивка programm 88-108 oa ok 04 ST ER 01.hex, индикатор с ОА, светодиод стереоиндикатора подключен на порт PORTC.2. На фото не все разряды светятся, это проблема фотоаппарата. Спасибо за проделанную работу.

IMG_20180128.jpg

Share this post


Link to post
Share on other sites

Уважаемый bulat943.

Все нормально работает.

Я вчера машинально проверял на м-х RDA5807SP.

Поставил модуль RDA5807M и все прекрасно заработало.

Прошивка programm 88-108 oa ok 04 ST ER 01.hex,светодиод подключен на порт PORTC.2. 

Большое спасибо.

И еще,если не трудно.Можно сделать начальную громкость не 8 а 3.

А то у меня довольно редкая м-х УНЧ CM8602B.

Чувствительная.

Заранее благодарен.

Share this post


Link to post
Share on other sites
19 минут назад, vbrt сказал:

А то у меня довольно редкая м-х УНЧ CM8602B.

Не редкая, но чувствительная. При полной громкости орет страшно. Я поставил на вход 100к, после этого стало нормально.

Share this post


Link to post
Share on other sites

По CM8602B в инете инфы минимум.

У меня готовая плата со всей обвязкой(с МР3 плейера).

Но она звучит лучше,чем РАМ8403,а параметры такие же.

Share this post


Link to post
Share on other sites

Я рад что хоть кто-то повторил один в один и мои старания оказались не напрасны )))

прошивка с громкостью=3 при включении

 

 

programm 88-108 oa ok 04 ST ER 03.hex

Edited by bulat943
изменил

Share this post


Link to post
Share on other sites

@bulat943 , нужна Ваша помощь, или консультация. Не могу добить RDS. Я так понял, Вы с этим разобрались. Но, все по порядку. Включил бит 02L.3 = 1( RDS_EN). Включил бит 04H.5=1 (RBDS в полнофункциональном режиме). Дальше попробовал считать BLERA и BLERB. Значения получились 00 и 01. Поэтому пока на них заморачиваться не стал. Поставил условие: если 0AH.7 = 1 (RDS/RBDS группа готова) и OAH.4 = 1(декодер RDS синхронизирован), попытался считать данные. Как я понял они делятся на четыре блока. A,B,C,D. Причем текстовые данные (два байта) передаются в блоке D, в то время, когда в блоке B два младших бита принимают значения : 00 01 10 11. Получается четыре двухбайтных слова. Я их считал, или думаю, что считал именно их. Но на экран выводятся цифры. Как их сложить, или что сделать, чтобы получились буквы не представляю. Сначала выводил на 1602 без кириллицы. Подумал, может знакогенератор не подходит. Сегодня подключил LS020. Тоже цифры. А я хочу буквы. Если не трудно, растолкуйте.

Share this post


Link to post
Share on other sites

какие цифры высвечиваются ?просто иметь представление как они выглядят

Share this post


Link to post
Share on other sites

Прошил прошивкой programm 88-108 oa ok 04 ST ER 01.hex,

энкодер стал работать только в сторону уменьшения.

Share this post


Link to post
Share on other sites
1 час назад, proekt07 сказал:

@andrusha152 Возможно цифры-это коды символов ASCII.

Да, возможно, но по таблице кодов совпадений я не нашел. Сейчас попробую видео выложить. Блин, фотик у сына.

Share this post


Link to post
Share on other sites
1 минуту назад, bulat943 сказал:

повторяю-вы напишите какие числа выводятся

Почему то видео снять не удалось. Выкладываю фото. Получается так: все цифры начинают бегать, через пару секунд останавливаются. Секунд 30 стоят неподвижно, после чего снова начинают бегать.

IMG_20180129_183838.jpg

IMG_20180129_183912.jpg

IMG_20180129_184003.jpg

Share this post


Link to post
Share on other sites

что-то не так в программе,числа не могут быть более 255,ищите косяк

должно идти по ASC коду,давайте кусочек программы,посмотрим

 

Share this post


Link to post
Share on other sites

Сначала считываю все байты из RDA:

    I2cinit
    I2cstart
    I2cwbyte Adress
    I2cwbyte &H0A
    Waitms 50
    I2cstart
    I2cwbyte Adressread
    I2crbyte Datahi0 , Ack
    I2crbyte Datalo0 , Ack
    I2crbyte Datahi1 , Ack
    I2crbyte Datalo1 , Ack
    I2crbyte Datahi2 , Ack
    I2crbyte Datalo2 , Ack
    I2crbyte Datahi3 , Ack
    I2crbyte Datalo3 , Ack
    I2crbyte Datahi4 , Ack
    I2crbyte Datalo4 , Ack
    I2crbyte Datahi5 , Ack
    I2crbyte Datalo5 , Nack
    I2cstop

Далее, проверяю готовность и синхронизацию RDS

 If Datahi0.7 = 1 Then    'RDS группа готова
   If Datahi0.4 = 1 Then  'синхронизация RDS
   Gosub Rds                                                
   End If
   End If

Ну, а потом вывожу на индикацию.

Rds:
 If Datalo3.0 = 0 And Datalo3.1 = 0 Then
     Stroka_2 = Str(datahi5) + "  " + Str(datalo5)
     End If
 If Datalo3.0 = 0 And Datalo3.1 = 1 Then
    Stroka_1 = Str(datahi5) + "  " + Str(datalo5)
    End If
 If Datalo3.0 = 1 And Datalo3.1 = 0 Then
    Stroka_3 = Str(datahi5) + "  " + Str(datalo5)
   End If
   If Datalo3.0 = 1 And Datalo3.1 = 1 Then
   Stroka_4 = Str(datahi5) + "  " + Str(datalo5)
   End If
    Lcdat 60 , 15 , Stroka_1 , Blue , White
     Lcdat 78 , 15 , Stroka_2 , Black , White
    Lcdat 96 , 15 , Stroka_3 , Green , White
    Lcdat 114 , 15 , Stroka_4 , Darkblue , White
Return

Конечно все дело в коде. Но примеров работы с RDS я не нашел. Есть кое что на радиокоте и у catcat но на C. А это темный лес.

Share this post


Link to post
Share on other sites

Я как то делал,не помню как,сейчас снова пытаюсь сделать,кое что нашел здесь

 

там написано-

Цитата

Принцип получения данных названия станций.

Контроллер постоянно читает 12 байт данных.

Если обнаруживается установка бита RDSS и отсутствие ошибок BLERA и BLERB = 0. Производиться запись полученных байт (BLOCK D) Байт 10 и Байт 11 , в массив по адресу по 2 младшим битам байта 7 если код сообщения 0A.

Если это условие не соблюдается массив очищается.

Когда указатель переходит на 0 данные выводятся для индикации

 

Share this post


Link to post
Share on other sites

Да, я это читал, но практически реализовать не смог. Считал байты 10 и 11, а что с ними делать не знаю. Решил вывести на индикатор, чтобы хотя бы посмотреть, что там. Но и тут не получилось.

Еще на радиокоте нашел немножко:

Цитата

if (rdsBlock[6] >= 0x20 && rdsBlock[6] < 0xFF)
  rdsText[(rdsBlock[3] & 0x03) * 2] = rdsBlock[6];
if (rdsBlock[7] >= 0x20 && rdsBlock[7] < 0xFF)
  rdsText[(rdsBlock[3] & 0x03) * 2 + 1] = rdsBlock[7];

Вся магия где-то здесь. Я сам где-то в интернете нашёл принцип и сильно не вникал, но можно более-менее
разобраться.
rdsText - массив из 8 байтов, куда помещается принимаемый текст. Сам текст (два байта) находится в блоках 6 и 7
(RDS block D). Адрес этого текста - последние два байта rdsBlock[3] (RDS block B).
Вот и выходит, что при приёме сигнала итоговый результат нужно собирать таким образом (все 4 строки передаются
 в разное время):
Код:
         REG 0x0C      |         REG 0x0D      |          REG 0x0E      |   REG 0x0F
     RDS BLOCK A   |     RDS BLOCK B   |      RDS BLOCK C   |   RDS BLOCK D
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxx00 xxxxxxxx xxxxxxxx aaaaaaaa bbbbbbbb
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxx01 xxxxxxxx xxxxxxxx cccccccc dddddddd
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxx10 xxxxxxxx xxxxxxxx eeeeeeee ffffffff
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxx11 xxxxxxxx xxxxxxxx gggggggg hhhhhhhh

В итоге 8 байтов abcdefgh и соберутся в некую строку, передаваемой станцией.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Я только за,пусть играющий в рулетку сам отвечает за наличие патрона в барабане,но тот кто пришёл в компанию(любую зарегистрированной этим государством) должен быть застрахован от косяков с незастройкой,от произвола ментов,от коррупционеров. Я в общем говорю ,а не именно в этом,так вот-мне нужно за то что я платил и плачу налоги ,получать не обман,получать защиту от ментов,от судов всех мастей и не тогда когда уже будет поздно,а по первому обращению гражданина рф,а не там ктото из гренландии.мне нужно быть уверенным в законности любой организации,любой и я должен уверен что тот кто организовал её, прикосякахмне сбежит куда в Камбоджу т потом по прошествии лет его признают виновным и выпустят ,и он теперь опять беленький и пушистый,а люди десять лет были без жилья,он должен улицы пожизненно мести а он предприниматель...правильно сказал один перец в мид, дибилы бл@ть
    • Эта защита работает по максимально выставленному току, у меня он допустим 5A, я про то, чтобы выход отключался при кз.  Ладно сам сделаю.
    • Рисовал ,Лейку, на этот бп, но флешку удачно потерял... если интересно могу на работе в компе поискать, если не снесли.
    • Весело тут у вас,хоть в тему "юмор не ходи".
    • К LM311 присмотритесь,  у нее на выходе транзистор,  который можно по разному включать . 
    • К соратникам нужно относиться более лояльно. А ник, думаю взят из тех же соображений, что и Ваш аватар.
×
×
  • Create New...