Jump to content
bulat943

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

Recommended Posts

Проводками тоже не айс. Помню подключал две разные платы, на одной  приемник, на второй управление. Прием упал ниже плинтуса. Подключил РДА прямо на плату, появился нормальный прием.

Share this post


Link to post
Share on other sites

Изготовление 2-х слойных плат от 2$, а 4-х слойных от 5$!

Быстрое изготовление прототипа платы всего за 24 часа! Прямая доставка с нашей фабрики!

Смотрите видео о фабрике JLCPCB: https://youtu.be/_XCznQFV-Mw

Посетите первую электронную выставку JLCPCB https://jlcpcb.com/E-exhibition чтобы получить купоны и выиграть iPhone 12, 3D-принтер и так далее...

Пробую еще раз. Если убрать регулировку громкости, то влазит спящий режим.

Проект.zip

Edited by andrusha152
дополнение

Share this post


Link to post
Share on other sites

Высокая надежность SiC! Как они этого добились?

За несколько лет кропотливых исследований и совершенствования технологии компания Infineon смогла довести показатели надежности и стабильности параметров высоковольтных и быстродействующих карбид-кремниевых транзисторов линейки CoolSiC практически до уровня их кремниевых собратьев.

Подробнее

А это моя новая программа приемника-теперь при вкл радио частота вкл как надо-ввел задержку 1 сек

Скрытый текст

$Regfile = "attiny2313a.dat"
$Crystal = 4000000
'$hwstack = 40
'$swstack = 16
'$framesize = 32
'i2c                             09.01.2018
Config Scl = Porta.1
Config Sda = Porta.0
Config I2cdelay = 40
I2cinit
dim bit_02h as byte , bit_02l as byte
bit_02h = &B11000011       'dhiz dmute (1=mono.2=stereo) (1=bass)  rclk  rclk seekup  seek
bit_02l = &B10000101
' настраиваем порты  к индикатору
segmentj alias portb : config portb = output
dig1 alias portd.6 : config dig1 = output
dig2 alias portd.3 : config dig2 = output
dig3 alias portd.5 : config dig3 = output
dig4 alias portd.4 : config dig4 = output
button alias pind.2 : config portd.2 = input : portd.2 = 0
dim buttons as byte
dim flag as byte
' таймеры
const const_t0 = 0       '128
Config Timer0 = Timer , Prescale = 64       ' 256
'Timer0 = const_t0
On Timer0 Pulse       '4000000/256/64=244   4.1 msec
Config Timer1 = Timer , Prescale = 256       '256
 On Timer1 индикация       '4.19 sec
Config Int0 = LOW LEVEL
dim freg as Integer
dim a as Integer
dim digit as Byte
dim stereo as bit
dim volume as byte
dim dane as byte
'начальные настройки
Waitms 250
Readeeprom dane , 10
waitms 1000
volume = 5
  'I2cinit
  I2cstart
  I2cwbyte &H20       '      20
  '02
  I2cwbyte &B11000010       'dhiz dmute mono bass  rclk  rclk seekup  seek    D2=11010010
  I2cwbyte &b00001101       '    85= 10000101
  '03
  'dane = freg - 870
  'dane = dane / 4
  I2cwbyte dane / 4       '
  'dane = freg - 870
  dane = dane mod 4
  dane = dane * 64
  set dane.4
  I2cwbyte dane       '
  '04
  I2cwbyte &B00010000       ' 000000000
  I2cwbyte &B00000000       '
  '05
  I2cwbyte &B10001000       ' 0000 4 бита-порог поиска
  dane = &B10000000 + volume
  I2cwbyte dane
  '06
  'I2cwbyte &B00010000       ' 000000000
  'I2cwbyte &B00000000
  '07
  'I2cwbyte &B00000000       ' 000000000
  'I2cwbyte &B00000000

  I2cstop
gosub Readword
'*******************************************************************************
' flag.0=1  переключение по частоте
' flag.1=1  громкость
' flag.1=0  rda on  flag.2=1  rda off
'
'
' flag.7=1сон
'*******************************************************************************
main:
  'gosub rda5807_init
  Enable Interrupts
  gosub enable_timer


  'buttons=16
do
  'если нажата кнопка(стоит флаг нажатия кнопки)
 if buttons < 15 then

    'если скан+ или скан-
    if buttons.0 = 0 OR buttons.1 = 0 then
         'ставим флаг автосканирования  для индикатора-отображать частоту
         flag.1 = 0
         bit_02h.1 = buttons.0       'end if       'направление скани рования 1=вверх,0=вниз
         bit_02h.0 = 1
         gosub rda5807_init
         bit_02h.0 = 0       'сброс бита автосканирования
         gosub Readword
    end if


    if buttons.2 = 0 OR buttons.3 = 0 then
         flag.1 = 1       'ставим флаг громкости для индикатора-отображать громкость
         if buttons.2 = 0 then incr volume
         if buttons.3 = 0 and volume > 0 then decr volume
         'volume = volume mod 16
         'if volume > 200 then volume = 0
         if volume > 15 then volume = 15
         gosub rda_volume
    end if


 waitms 100
 timer1 = 0
 flag.0 = 0       'сброс  флага нажатия кнопки
 end if
 'flag = 0
 if timer1 > 16000 then flag.1 = 0       'если прошло 16000*256/4000000= 1 сек то из индикации громкости переход на индикацию частоты
 if flag.7 = 1 then       'таймер сна,если не нажата ни одна из кнопок и прошло 65536*256/4000000= 4 сек то
   radio_sleep:
     'Writeeeprom dane , 10
     gosub disable_timer       'гасим индикацию
     Enable Int0       'ждем нажатия любой кнопки
     powerdown       'баиньки,аттини в сон
     disable Int0       'нажата кнопка,просыпаемся
     gosub enable_timer       ' вкл индикации,запуск таймера сна
     gosub Readword1
     end if
loop

goto main
'выкл таймеов,индикации
disable_timer:
   TIMSK = &B00000000
   dig1 = 0 : dig2 = 0 : dig3 = 0 : dig4 = 0
   portb = 0

return
'запуск таймеров,индикации
enable_timer:
   flag = 0
   TIMSK = &B10000010
   waitms 250
   Timer1 = 0
   flag = 0
return


'подпрограмма таймера сна,как прошло 4 сек то ставим флаг
индикация:
  flag.7 = 1
return

'чтение частоты
Readword:
  gosub disable_timer
  portb = 128
Readword1:
    'I2cinit
    I2cstart
    I2cwbyte &B00100000       'read
    I2cwbyte &h0a       ' b  Regno = &B00001010
    Waitms 50
    I2cstart
    I2cwbyte &B00100001       'adressread
    I2crbyte freg , Ack       ' RDSR STC  SF RDSS  BLK_E  ST  READCHAN[9:8]
    I2crbyte dane , nack       'READCHAN[7:0]
    I2cstop
 while freg.6 = 0       'ждем установки флага STC-стопа сканиования=найдена несущая
             timer1 = 0
             waitms 40
             goto Readword
             wend
             stereo = freg.2
             freg = dane + 870
             Writeeeprom dane , 10

    gosub enable_timer
  Return
' скан +/-
rda5807_init:
I2cinit
         I2cstart
         I2cwbyte &H20       '      20
  '02
         I2cwbyte bit_02h       'dhiz dmute mono bass  rclk  rclk seekup  seek    D2=11010010
         I2cwbyte bit_02l       '    85= 10000101
         I2cstop
  'Writeeeprom volume , 11
  return
'громкость
rda_volume:
      I2cstart
      I2cwbyte &h22
      I2cwbyte &h05       'H02
      I2cwbyte &B10001000       'H08
      dane = &B10000000 + volume
      I2cwbyte dane
      I2cstop
      return

'подпрограмма индикации
Pulse:
  'Timer0 = const_t0
  stop timer0
  incr digit
     if digit > 3 then digit = 0
  dig1 = 1 : dig2 = 1 : dig3 = 1 : dig4 = 1


  if digit = 0 then
      a = freg / 1000
      if a = 0 then a = 10
      if flag.1 = 1 then a = 11
      dig1 = 0
      'waitus 10
      buttons.3 = button
      end if
  if digit = 1 then
      a = freg / 100
      a = a mod 10
      if flag.1 = 1 then a = 12
      dig2 = 0
      'waitus 10
      buttons.2 = button
      end if
  if digit = 2 then
      a = freg / 10
      a = a mod 10
      if flag.1 = 1 then
            a = volume / 10
            if a = 0 then a = 10
            end if
      dig3 = 0
      'waitus 10
      buttons.1 = button
      end if
  if digit = 3 then
      a = freg mod 10
      if flag.1 = 1 then a = volume mod 10
      dig4 = 0
      'waitus 10
      buttons.0 = button
      end if
  portb = Lookup(a , Dta)       ' segmentj
  if flag.1 = 0 then
      if digit = 2 then portb.4 = 1
      if digit = 3 then portb.4 = stereo
      end if
  'if timer1 < 50000 then
   '   waitus 500
   '   else
      waitms 2
      portb = 0
   '   end if

   'portb = 0

  start timer0

return

Dta:
'таблица с данными о цифрах зажигает по порядку : 0123456789(10=пробел)

'таблица версии proekt3
'       GCB*FDAE
 Data &b01101111
 Data &b01100000
 Data &b10100111
 Data &b11100110
 Data &b11101000
 Data &b11001110
 Data &b11001111
 Data &b01100010
 Data &b11101111
 Data &b11101110
 Data &b00000000
 Data &b00001011       ' Г
 Data &b10101011       ' Р

 '(
'таблица версии proekt2
'       ed*cgbfa
 Data &b11010111
 Data &b00010100
 Data &b11001101
 Data &b01011101
 Data &b00011110
 Data &b01011011
 Data &b11011011
 Data &b00010101
 Data &b11011111
 Data &b01011111
 Data &b00000000
 Data &b10000011       ' Г
 Data &b10001111       ' Р
')

 

видосик старого варианта ,на первых секундах видно что частота "не загрузилась",вот это и исправил 

а здесь кнопки имеют двойное назначение,и откл радио есть (при громкости=0),проект на аттини13,исходник где то есть-надо порыться в ноутбуке

Share this post


Link to post
Share on other sites

Материалы вебинара «STM32L5. Секреты оценки энергопотребления»

Опубликованы запись и материалы вебинара КОМПЭЛ, посвященного первому семейству МК STM32L5 на ядре Cortex-M33. На вебинаре было рассказано о самых распространенных ошибках при расчете энергопотребления микроконтроллеров и о специальном тесте ULPMark, позволяющем дать наиболее объективную оценку энергоэффективности. Измерения проводились на демонстрационной платформе STM32L562E-DK.

Подробнее

Добрый день bulat943. Собрал уже второй приемник .На этот раз без резистора регулятора громкости. Возможно как то при громкости 0, отправлять RDA в сон, как вы делали на аттини 13. Сильно громко играет на нуле. Если сделаете, то в этой прошивке. Заранее спасибо за любой ответ.

http://forum.cxem.net/applications/core/interface/file/attachment.php?id=543544

http://forum.cxem.net/applications/core/interface/file/attachment.php?id=543545

 

 

 

Share this post


Link to post
Share on other sites

Снижена цена на AC/DC и DC/DC преобразователи Mornsun в Компэл!

Компэл и компания Mornsun снизили цены на преобразователи AC/DC-преобразователи семейств LS и LDE. По привлекательной цене также предлагаются DC/DC-преобразователи изолированных семейств поколений R2 и R3 различного конструктивного исполнения.

Подробнее

Продолжаю мучить модуль. Вторая версия приемника - для дачи. Код занимает 100%. Неделю мучился, но добил. Схема та же. Питание приемника 3 вольта. Отключение индикации. Режим STEREO отключен,  BASS включен. Частоту камня снизил до 1 МГц. Фьюзы заводские. При включении с зажатой кнопкой MINUS переход в
режим сканирования, и записи частоты в память. Убрал почти все Bitwait'ы ( много места в памяти занимают).
Теперь настройка частоты происходит при удержании кнопок PLUS или MINUS. При записи частоты в память (кнопка MEM)  на полсекунды гаснет индикатор. Хотел сделать, чтобы высвечивалось CH № , но не влезло. При достижении частоты 108,1 МГц переход в режим прослушивания радио. Включается первая сохраненная станция. Индикатор гаcнет через 5-6 секунд.  Хотел сделать Powerdown, но INT0 очень много памяти кушает. Поэтому, просто останавливаю TIMER0. Специально измерил  ток потребления ( китайским мультиметром ) в режиме сна и при остановке таймера. Ток абсолютно одинаковый - 21 mA. Когда индикатор погашен, доступна только кнопка MEM, для включения индикации. В этом режиме возможно переключение каналов, а при нажатии кнопки MEM, регулировка громкости. При повторном нажатии кнопки MEM, запись громкости в память и переход к отображению частоты. Громкость приемника изменится только после записи ее в память. По другому никак не получилось. Тинька оказывается не резиновая.  Да, при настройке станций и громкости индикация не отключается. Индикатор лучше использовать яркий.Обычный, при 3х вольтах светит тускло.
 В архиве прошивки ОА и ОК, схема, исходник (Bascom avr).

Проект 2.zip

Share this post


Link to post
Share on other sites
В 11.03.2018 в 18:01, resd1981 сказал:

Добрый день bulat943. Собрал уже второй приемник .На этот раз без резистора регулятора громкости. Возможно как то при громкости 0, отправлять RDA в сон, как вы делали на аттини 13. Сильно громко играет на нуле. Если сделаете, то в этой прошивке. Заранее спасибо за любой ответ.

 

 

 

Если откл приемник при громкости=0 то приемник выключится вообще,хозяин-барин-пробуйте

 

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

Share this post


Link to post
Share on other sites

Уважаемый @bulat943 ! Пытаюсь повторить Вашу конструкцию с часами и сразу просьба- не могли бы Вы таким образом сообразить прошивку, что бы часы работали всегда, независимо от того, работает радио или нет, а частота либо громкость появлялась лишь в том случае, когда непосредственно менялась настройка. А термометр... Что им мерить-температуру внутри корпуса?  Ну его...

      Спасибо!

Share this post


Link to post
Share on other sites

можно добавить укв диапазон и адаптировать прошивку под транзисторы в катоды индикатора ?

Share this post


Link to post
Share on other sites

укв добавить не сложно,модуль принимает от 50 МГц

жду от вас желаемый точный диапазон и шаг

с транзисторами сложнее-не на чем тестировать

Share this post


Link to post
Share on other sites

как схему нарисуете с транзисторами так и буду тестировать :)  !

диапазон от 65,9 до 108

а вот шаг идеально было бы 10кгц в диапазоне частот от 65,9 МГц до 74 МГц но судя по даташиту модуль может только от  25 кГц ? 

25 кГц тогда и оставить в этом диапазоне

ну а в ФМ 87,5 МГц до 108,0 МГц  там стандартные 100кгц

поправьте если что не так 

 

Share this post


Link to post
Share on other sites

я и не собираюсь схему рисовать-схема на 1 странице первый пост,там транзисторы дорисовать и паяйте,как спаяете дайте знать

Шаг можно и 1 кгц сделать при ручном вводе частоты,вообще стандарт 30 кгц,но сканирования не будет и чтения частоты из регистров (это есть в даташите)

Share this post


Link to post
Share on other sites

а какая кнопка бас и стерео ?

часы и температура задействованы ?

Edited by jn79

Share this post


Link to post
Share on other sites

моно/стерео portc.1

басс portc.0

***********************************************************************************************************************************

Есть желающие проверить у себя?
Прошивка 50-108 МГц,шаг в диапазоне укв 50-76 МГц 50 кгц,в фм-100 кгц
Индикация в укв в формате ХХ.ХХ(например 50.00 69.65) ,в фм-ХХХ.Х(например 98.3 101.1)
Управление по старому,но есть отличия-
Из органов управления энкодер (скнопкой) и еще 2 кнопки (STEREO и BASS)

При первом включении частота 88,0 МГц,вращение энкодера=перестройка частоты с шагом 100 кгц

Короткое нажатие на кнопку энкодера-переходим в регулировку громкости,на экране ГР08(громкость=8)

Еще одно нажатие-переход обратно на перестройку по частоте

Кнопки-

1) кнопка BASS
1.1-в режиме громкость
-включение/выключение басов
1.2-при перестройке по частоте и каналам
-короткое нажатие=скан-,
-длинное нажатие(более 2 сек)-переход из режима перестройки частоты в режим перестройки по каналам (если хоть одна частота записана в память),на экране CHAN,крутим энкодер-перестраиваемся по записанным в память каналам,короткое нажатие на энкодер-регулировка громкости,еще короткое нажатие на энкодер-обратно перестройка по каналам,короткое нажатие BASS=вкл/выкл басов,нажатие более 2 сек-переход из режима перестройки по каналам в режим перестройки по частоте

2) кнопка STEREO
2.1-в режиме громкость-включение/выключение стерео
2.2-при перестройке по частоте и каналам
-короткое нажатие=скан+,
-длинное нажатие(более 2 сек)-в зависимости от того в каком режиме (перестройка по частотам/по каналам) находимся-
если в режиме перестройки по частотам то запись частоты в память
если в режиме перестройки по каналам то стирание частоты из памяти

включение приемника (когда приемник выключен) коротким нажатием энкодера,выкл приемника длинным нажатием энкодера

поддержка индикаторов с ОК и ОА,выбор -если PORTC.3 никуда не подключен то общий анод,если подключен к минусу то общий катод

Программа базовая,мк ATMEGA8 (HIGH FUSE= C9 LOW FUSE=83 )
Индикатор-любой с общим катодом или анодом
Энкодер-с кнопкой любой,RDA5807M,Стаб 3,3 в-xc6206p332mr

 

proteus_encoder oa oc.DSN

схема.spl7

схема.JPG

50_108MHZ_50 khz_01.hex

Edited by bulat943

Share this post


Link to post
Share on other sites

Все работает, проверил. Единственное , как то непонятно переход из одного диапазона в другой.  Автосканирование работает только в пределах  одного диапазона, для перехода в другой приходится крутить энкодер. Может сделать переход между диапазонами, при нажатии обоих кнопок вместе. Раз нажали, УКВ, второй раз  ФМ.

Share this post


Link to post
Share on other sites

Вопрос к авторам а не рассматривался ли вариант использования индикатора управляемого по i2c ?

HTB18iAyf8DH8KJjSspnq6zNAVXaM__74687.1520181588.jpg

Share this post


Link to post
Share on other sites

Смысл появится только если необходимо применить более простой МК и ног будет катастрофически не хватать.
К тому же, заявлено питание модуля 5 Вольт, что вызовет дополнительные неудобства в батарейных приёмниках. Работает ли он при 3 Вольтах - неизвестно.
Ну и прошивку почти всю перепахивать надо под него.


"Я не знаю какой там коэффициент, я просто паять умею. "

Share this post


Link to post
Share on other sites

image.png.336451c2fbe76bcc8067605455718393.png

Вот по этой схеме собрал приемник. Не могу настроить преобразователь напряжения. При подаче напряжения 8в выдает 2.45в что для работы мало. Помогите советами!:wacko:

Share this post


Link to post
Share on other sites

Скорее всего в этой схеме неправильно рассчитаны номиналы резисторов. Попробуйте вместо верхнего по схеме резистора на 1КОм поставить подстроечник, и немного увеличить сопротивление. Здесь есть калькулятор, можете сами посчитать.

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...

  • Сообщения

    • Подскажите, это нормально, что сопротивление каждой катушки вот такого дросселя из входного фильтра блока питания составляет около 1,5 Ом?
    • после женитьбы пришлось перевестись на вечерний. и работал в кабелиных сетях. на испытании и поиске повреждений.был в машине и генератор(на 1 кГц) и Р5-9 и конденсатор. про генератор. подключается на линию (обесточенную) и идешь по верху над трассой как с миноискателем. можно даже глубину залегания определить до сантиметров. про р5-9. хорошо показывает и обрыв и короткое и ответвления и рубильники (разьединители). и очень точно. да надо привыкать к работе с ним. но это старые приборы есть и по новее - не работал. ни чего не скажу.  про конденсатор. это стандартный набор в испытательной лаборатории. разряжается в линию для поиска повреждения с точностью до сантиметра.и все равно -обрыв или кз. про поиск на линии 5-6 мест то ли плохого кабеля, то ли неисправного - повеселило. когда первый раз, без наставника (сиречь - учителя) вышел на линию , так сказать без ансам *****. линейщики простили ошибку в 60 сантиметров. только потому, что первый раз. в следующий раз - копать будешь сам. больше таких ошибок не делал. 5 см все что мог позволить себе. для поиска в жилом доме могут применить прибор пеленг. но грамотный электрик дядя петя найдет быстро и без пеленга с нормальным фазоуказателем который носится в кармане. но именно грамотный. потому как ответвления , такого рода как описывает ТС, имеют узкую локацию. и осматривать всю линию нет смысла. не знаю как у вас, а у нас счетчика выносят из квартир. а подключение до счетчика видно сразу....
    • Решил выложить все клещи с постоянным переменным током от 1000А и выше (цена пока не имеет значение) доступных для покупки в России. До 1000А: Fluke 319  Mastech MS2138  CEM DT-3363 CEM DT-3347 CEM DT-3348 Megeon 70083 UNI-T UT208 CEM DT-3368 CEM DT-3367 Mastech MS2101 APPA 136 CEM DT-3343 До 1500А CEM DT-3351 CEM DT-3352 До 2500 переменки 999 постоянки. Fluke 376 Fluke 381 Fluke 376 FC До 2000  Fluke 345 До 4000 Fluke 355 Fluke 353  
    • С Крабом не все так просто. Это человек, уровень знаний у которого в радиоэлектронике намного, намного выше чем у большинства высококлассных специалистов. Он воспринимает всю сломанную радиоэлектронику как свою собственность, а любого кто пытается ее отремонтировать без профессионального подхода конкурентом. Сарказм возникает от обиды за то, что он видит как просто можно что-то сделать и как это сложно делается в реальности, а иногда без победы. Просто простите его и давайте продолжим.
    • Здравствуйте. Пошевелю притихшую тему. Пушпул автоген с нямконтролем, по мотивам схемы, выложенной Гиратором на веге, если память не изменяет. Во вторичке двухполупериодный МУ с линейным управлением. Питание 12вольт, выход около 30. Свичкад при старте демонстрирует высокие токи, если дросселя МУ рассчитаны для простого регулирования выхода. При параметрах МУ для полного отключения, ток можно ограничить на безопасном уровне. Какой вариант предпочтительнее с точки зрения надёжности? mu_18_DTTi_3.asc
    • Еще разок повторюсь:   В легкую это можно обойти. Все расскажу, но сначала результаты измерений.
    • можно...правда прямоугольную волну осциллограф не измерит. потому как в природе таковой не существует. прямоугольный сигнал имеется, а прямоугольной волне - нет. начни изучение азов с какой нибудь книги на вроде - шаг за шагом. а то в следующий раз начнешь искать какого нибудь бизона хиггса

  • Карандаш-флюс 951 RMA. Объем 10мл

×
×
  • Create New...