矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 7071|回复: 16

小试 SI4745

[复制链接]
     
发表于 2021-2-8 01:16:50 | 显示全部楼层 |阅读模式
本帖最后由 sudywolf 于 2021-2-8 02:07 编辑

买这个板子已经好久了 没有时间做

SI4745 和以前做过的 AKC6755 相比少了鸡肋的TV台 多了两个功能FM RDS 和传说中的SSB

这里的坛友很多已经利用Arduino的库做了很多卓越的成果 不过 我这里没有合适的Arduino板子 Arduino来自意大利番 驱动LCD很难显示我天朝上国文字

于是转STM32

STM32驱动触摸屏有现成的例子很好移植 (准备用触摸屏操作收音机)
因为我买的是现成的 SI4745模块  ( 图二 生锈的铁皮下  小鬼子的产品 一如既往的偷工减料 质量很差 SI47xx系列是带数字声音输出的 也被小鬼子自宫了)

连接收音机的部分是I2C 使用软I2C模拟即可

参考Arduino的例子 很容易就实现了所有的功能 FM(+RDS)+AM(MW+LW+SW+SSB )

需要注意的是 Arduino 提供的LW范围有错 应遵照手册 设为153-288 KHz 否则不响

SSB有三个补丁 都可以正常使用 所以采用了 根德的那个ssb_patch_3rd.h 注意 在两次加电指令间 要给够间歇时间 否则不响

功放部分用的模拟功放LM486 所有的片子 都用单片机STM32供电 注意功放LM486 和 SI4745 要就近共地连接 要不声音发抖

SI4745 是美番的片子 和 国产的AKC6955 相比
FM部分声音略胜 AM部分 声音略差  
灵敏度 SI4745 略胜
可玩性 SI4745 胜 除了RDS和SSB 还有大量的可调的参数 输出参数也较AKC6955丰富

还有就是SI4745 时给车机用的 这样就不必加一根磁棒天线给中波 一根软线即可!

这个帖子是作为投名状 否则我会偷懒不搞了 目前仅仅是做响了 离成品还远 最终成品时 会分享代码 (一年内做好算我输)



最后问个白痴问题 SSB有啥不同?  感觉就是SW 因为我用SSB收到了朝廷台天朝之声 SW也可以收到
















补充内容 (2021-2-9 18:39):
乌龙了 SI4745就没有SSB功能 只有SI4735-D60支持 弃帖

RDS

RDS

SSB朝廷台天朝之声

SSB朝廷台天朝之声
x.jpg

评分

1

查看全部评分

     
发表于 2021-2-8 01:24:04 | 显示全部楼层
一直想买一块480*320带触摸
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-2-8 01:56:08 | 显示全部楼层
iffi123 发表于 2021-2-8 01:24
一直想买一块480*320带触摸

买!!!买!!!买!!!
回复 支持 反对

使用道具 举报

     
发表于 2021-2-8 07:52:28 来自手机 | 显示全部楼层
楼主的模块哪里买的,可否PM个链接,我也想试试,谢谢
回复 支持 反对

使用道具 举报

     
发表于 2021-2-8 14:43:21 | 显示全部楼层
楼主可以分享下stm32的程序不。
回复 支持 反对

使用道具 举报

     
发表于 2021-2-8 15:04:49 来自手机 | 显示全部楼层
那个ssb和sw是两码事不能做比较,sw是短波的意思指的是频率范围对应的是mw中波和超短波这样的概念。ssb是单边带是调制方式和am,fm是一类事情。短波和中波广播都是am调制方式。ssb一般是无线话务通讯用的通常在短波频段使用在超短波段也有使用。一般fm方式广播用的超短波波段。短波的高端频率也有用窄带fm通讯的。其实中波广播和短波广播都是am方式,只不过民间经常把中波俗称为am把短波俗称为sw。
回复 支持 反对

使用道具 举报

     
发表于 2021-2-8 15:07:42 来自手机 | 显示全部楼层
简单说收音机上的ssb功能是给某些小众爱好者用来听短波话音通信的。的
回复 支持 反对

使用道具 举报

     
发表于 2021-2-8 15:11:59 来自手机 | 显示全部楼层
用ssb模式听广播会有很强的啸叫声,您说用ssb听到了天朝之声没有啸叫声吗?如果没有很可能就不是ssb模式。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-2-8 15:59:58 | 显示全部楼层
lrzxc 发表于 2021-2-8 07:52
楼主的模块哪里买的,可否PM个链接,我也想试试,谢谢

https://s.taobao.com/search?q=fa ... utton&catId=100

这里 涨价了 哈哈 我买的时候是25
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-2-8 16:00:49 | 显示全部楼层
ITOUR 发表于 2021-2-8 14:43
楼主可以分享下stm32的程序不。

还早 目前刚做响 程序不完整 bug太多 请稍等
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-2-8 16:04:53 | 显示全部楼层
超级飞马 发表于 2021-2-8 15:11
用ssb模式听广播会有很强的啸叫声,您说用ssb听到了天朝之声没有啸叫声吗?如果没有很可能就不是ssb模式。

您说的完全有道理 这也就是为啥我怀疑的原因

我之前并没有听过SSB广播

而且好像Arduino的例程和SI的手册有冲突



Arduino的例子 流程是这样的

  si4735.queryLibraryId(); // Is it really necessary here? I will check it.
  si4735.patchPowerUp();
  delay(50);
  si4735.downloadPatch(ssb_patch_content, size_content);
  // Parameters
  // AUDIOBW - SSB Audio bandwidth; 0 = 1.2kHz (default); 1=2.2kHz; 2=3kHz; 3=4kHz; 4=500Hz; 5=1kHz;
  // SBCUTFLT SSB - side band cutoff filter for band passand low pass filter ( 0 or 1)
  // AVC_DIVIDER  - set 0 for SSB mode; set 3 for SYNC mode.
  // AVCEN - SSB Automatic Volume Control (AVC) enable; 0=disable; 1=enable (default).
  // SMUTESEL - SSB Soft-mute Based on RSSI or SNR (0 or 1).
  // DSP_AFCDIS - DSP AFC Disable or enable; 0=SYNC MODE, AFC enable; 1=SSB MODE, AFC disable.
  si4735.setSSBConfig(bandwidthIdx, 1, 0, 1, 0, 1);
       
       
        si4735.setTuneFrequencyAntennaCapacitor(1); // Set antenna tuning capacitor for SW.       
  si4735.setSSB(band[currentFreqIdx].minimumFreq, band[currentFreqIdx].maximumFreq, band[currentFreqIdx].currentFreq, band[currentFreqIdx].currentStep, band[currentFreqIdx].currentSSB);       
       
        最后一句有正常加电启动
       
       
        感觉应该是
       
  si4735.queryLibraryId(); // Is it really necessary here? I will check it.

  si4735.downloadPatch(ssb_patch_content, size_content);

  si4735.patchPowerUp();
  delay(50);
  // Parameters
  // AUDIOBW - SSB Audio bandwidth; 0 = 1.2kHz (default); 1=2.2kHz; 2=3kHz; 3=4kHz; 4=500Hz; 5=1kHz;
  // SBCUTFLT SSB - side band cutoff filter for band passand low pass filter ( 0 or 1)
  // AVC_DIVIDER  - set 0 for SSB mode; set 3 for SYNC mode.
  // AVCEN - SSB Automatic Volume Control (AVC) enable; 0=disable; 1=enable (default).
  // SMUTESEL - SSB Soft-mute Based on RSSI or SNR (0 or 1).
  // DSP_AFCDIS - DSP AFC Disable or enable; 0=SYNC MODE, AFC enable; 1=SSB MODE, AFC disable.
  si4735.setSSBConfig(bandwidthIdx, 1, 0, 1, 0, 1);
       
       
        si4735.setTuneFrequencyAntennaCapacitor(1); // Set antenna tuning capacitor for SW.         (感觉在这个函数里去掉 正常加电)
       
       
        我今晚试试
       
       
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-2-8 16:06:08 | 显示全部楼层
超级飞马 发表于 2021-2-8 15:11
用ssb模式听广播会有很强的啸叫声,您说用ssb听到了天朝之声没有啸叫声吗?如果没有很可能就不是ssb模式。

目前我用Arduino的例子 和我自己的stm32得到的收听结果完全一样 所以感觉Arduino的例子有误 迷惑了
回复 支持 反对

使用道具 举报

     
发表于 2021-2-8 23:19:18 | 显示全部楼层
sudywolf 发表于 2021-2-8 15:59
https://s.taobao.com/search?q=faec36&type=p&tmhkh5=&spm=a21wu.241046-global.a2227oh.d100&from=sea_ ...

收到,谢谢。持续关注
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2021-2-9 04:57:24 | 显示全部楼层
本帖最后由 sudywolf 于 2021-2-9 05:02 编辑
sudywolf 发表于 2021-2-8 16:04
您说的完全有道理 这也就是为啥我怀疑的原因

我之前并没有听过SSB广播


仔细看了一下手册 是我做错了

实际上 在加载 SSB 补丁前 有一个queryLibraryId()的动作 例程是正确的

  si4735.queryLibraryId(); // Is it really necessary here? I will check it.
  si4735.patchPowerUp();
  delay(50);
  si4735.downloadPatch(ssb_patch_content, size_content);


我的确认方法是和我的 SI4744数字开发板比较

将SI4744数字开发板 都调到 SW,然后同步设置频率 确认 在sw段两个收到的台一致的

然后将我的板子调到SSB ,收到的台 和 SI4744数字开发板sw比较(好比 数字一样台 不一样)  就确认SSB工作了


SSB模式是没有搜索的,只能含泪步进


另外这个片子可以把收音机AM的全部部分做一个153KHz到30MHz  包括全部长波 中波 短波 的“超级大台”  哈哈


回复 支持 反对

使用道具 举报

     
发表于 2021-2-9 23:27:58 | 显示全部楼层
简单来说,调制信号直流分量为0的调幅波就是双边带信号,双边带信号去掉一边载波就是单边带信号。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-4-29 18:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表