文号
936854
阅读
25646
回复
35
收藏
4
原创SDR接收机JTF8-SDR 8M带宽10bit --廉价的SDR实现来了
2024/09/02
IP:浙江
摘要:原创SDR接收机JTF8-SDR 8M带宽10bit!!

自己做一个SDR的想法:

项目目标:

可以实时解码数字电视: DVB-C 、 DTMB  (带宽8M)

BOM 成本< 100 rmb

 

然后就有了现在这个项目。

看了 “纸飞机” 大佬 想DIY软件无线电?只看这一篇就足够了:SDR硬件方案一网打尽 - 知乎 (XXXXXXXXX) 这篇,基本上主流方案都有了。

r820t2  adc  cpld   ft232h

确定选型:

R820T2                40~1700Mhz

ADC = 3PA1030         最高50Msps 10bits

CPLD = AG1280         1K lut 680kbits ram

FT232H                fifo模式支持USB 40MBps


然后就是,开搞。淘宝买模块…… 做了个简单的PCB 把他们连接一起:

image.png

电视棒去掉USB芯片仅保留R820T2 然后,飞线中频输出到ADC 然后CPLD完成数据转换,FIFO格式送到FT232H,就可以了。


为了提升数据率:

CPLD 的数据拼接格式:

image.png

简单说,就是把3个ADC数据 10bits * 3= 30bits 在高位添加2bits序号0,1,2,3,0……序号作为同步标志。

 

这个样子USB 的数据带宽需要:

28.8*10*32/30 = 307.2Mbps = 38.4MBps 就是每秒38.4MB的USB数据。

 

===================================================================硬件有了

目前完成了,GNURADIO 数据接收,实时接收ATSC信号。带宽可以到8M,CPU AMD5600G, 占用15%

image.png

下一步,完成ATSC 实时解码。 因为淘宝买了一个ATSC的发射机,用来调试,如下图:

image.png

35
3
jimjiang作者
2年2个月前IP:浙江
936953
3楼

便宜啊,要跟rtl sdr竞争

引用
评论
jimjiang作者
2年2个月前IP:浙江
937018
4楼

usb2.0 hs ,40MB,大B。400Mbps

引用
评论
jimjiang作者
2年1个月前IP:中国
937446
7楼

项目目标是取代RTLSDR ,

USB3.0 没啥必要,瓶颈在tuner带宽8M。



引用
评论
jimjiang作者
2年1个月前IP:中国
937447
8楼
引用firawk发表于6楼的内容
非常好,我预定一套。怎么下单?

多谢 鼓励

比较忙,会慢慢来

引用
评论
jimjiang作者
2年1个月前修改于 2年1个月前IP:浙江
937855
10楼

考虑过来。

ADC直采可以有25Mhz带宽,加上TUNER到25M,是可以cover完整的0-30Mhz,需要做个抗混叠以及放大器。

然后引入一个问题,CPLD需要做数字选频,不是不会,是CPLD没那么多资源。


可以做,但是优先级先放低,算支线任务。


顺便跟新一下。

  1. AG1280停产了,导致硬件方案需要修改。换器件

  2.  demo板子测试发现有漏数据,所以准备修复数据格式,大概思路

    40M  10bits采样IF,做iq转换变成滤波,降采样到10Mhz 11bits IQ两路直接给USB。

      需要重新开发数据处理链路,收益是USB数据率降低到220Mbps, 数据分辨率增加0.5bit,过采样收益。数据格式变成IQ交替软件更好处理。现在的主流软件基本都是IQ数据接口。


目前进度,正在调试新的CPLD替代芯片。

引用
评论
jimjiang作者
2年0个月前IP:浙江
939067
12楼
引用TerayTech发表于11楼的内容
有意思的设计。8M的带宽其实比大部分USB2.0接口的SDR都宽了。RTLSDR blog V4版本(官方版大概要400块)采样率3.2M(RTL2838芯片组),MSI2500芯片组系的SDR在3M...

软件ftd2xx的python库开发

全python实现。接收usb数据,然后转成网络数据,gnuradio用网络接收,其实就是都是本地ip。



引用
评论
jimjiang作者
2年0个月前IP:浙江
939070
13楼

板子送到pc的数据还算要改成IQ形式,否则各种软件都是默认iq,需要拆分重组对齐麻烦。所以,后面的新版要大改。


大概思路

40M  10bits采样IF,做iq转换变成滤波,降采样到10Mhz 11bits IQ两路直接给USB。

引用
评论
jimjiang作者
2年0个月前IP:中国
939083
15楼

这个运算在CPLD里面做,然后降采样,带内滤波TUNER已经搞定了,降低USB数据率。软件直接拿到的就是IQIQ了。

引用
评论
jimjiang作者
2年0个月前IP:中国
939085
16楼
引用warmonkey发表于14楼的内容
完全没必要的。你可以在驱动里面乘以fs/4的本振,再低通滤波。fs/4的本振是如下序列:[0 1 0 -1], [-1 0 1 0]

40Mhz 10bits,400Mbps,usb已经扛不住了。而且还要插入序列对齐,更加扛不住。


引用
评论
jimjiang作者
1年10个月前IP:浙江
940841
18楼

Screenshot_20241231_125034_com_taobao_taobao_TTDetailActivity.jpg

就这个,500k以上ok。接ADC侧好像3根线,有comm 电压。中频输入2根

引用
评论
jimjiang作者
1年10个月前IP:浙江
940849
20楼

中频灵敏度没啥影响,tuner才是瓶颈

引用
评论
jimjiang作者
1年10个月前IP:浙江
940976
21楼
引用shxyke发表于17楼的内容
老哥,你的ADC采样部分是怎么做的,能发一下原理图吗?是R820T的IF直接接巴伦然后给到ADC的AIN?

mmexport1736077869446.pngIMG_20250105_194936.jpg

引用
评论
jimjiang作者
1年6个月前IP:浙江
943787
23楼

github 上找那个ft232h fifo 的例子,然后在python 环境完成组帧,再用zmq库发送到gnuradio。


实测下来不太稳定😅

引用
评论
jimjiang作者
1年4个月前IP:浙江
945026
34楼

不行,太慢

引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的