关于AD9106产生幅值调制的波形的问题
<p>我用的是树莓派的python写的,只用DAC4通道,已经能产生正弦波,脉冲。</p><p>1、现在想用SRAM 产生幅值可调的脉冲正弦波,就像手册中example5那样,一直不知道怎么配置SARM,就是那个SRAM_DATA寄存器该如何配置,</p>
<p>2、如何要把0x6000-0x6FFF的数据写进去。</p>
<p>3、其他寄存器还有怎么配置啊?我看PAT_STAUS寄存器是要配置一次写,然后再配置一起读吗?</p>
<p>我已经卡在这很久了,我基础很差,希望有人能忙我下,我qq 369525461 ,十分感谢!!</p>
<p>这是我根据脉冲的程序改的,SRAM DATA那应该怎么改啊? 愁死我了,虾哥救命啊!</p>
<p></p>
<p>现在打对号的是我已经能实现的,但打×的是未能实现的,尤其是我想用最后一种方式</p>
<p>我现在的理解是在SRAM那个寄存器0x6000-0xFFF中写入波形的轮廓,但是如何来写(我计划是中EXCEL),进制怎么转换,其他寄存器该怎么配置。</p>
<p>这是我头疼的事情</p>
<p>记得以前官网有一个应用程序,可以生成对应的配置,还有你说的exampleX应该在哪下载也找不到了,方便的话你再上传一下附件。</p>
<p> </p>
<p>AD9106通信使用16位地址,就像你看到的寄存器列表一样,0x0000~0x0060对应的是功能配置,0x6000~0x6FFF对应的SRAM(把它当成普通寄存器就行)</p>
<p> </p>
<p><em>1、现在想用SRAM 产生幅值可调的脉冲正弦波,就像手册中example5那样,一直不知道怎么配置SARM,就是那个SRAM_DATA寄存器该如何配置,</em></p>
<p><em>2、如何要把0x6000-0x6FFF的数据写进去</em>。</p>
<p>把对应的数据直接写入SRAM_DATA对应的地址就可以。</p>
<p> </p>
<p></p>
<p>不过SRAM操作和普通寄存器操作不同的是操作SRAM时PAT_STATUS寄存器的RUN位不能为1</p>
<p>所以读或写SRAM时需要按照下面的提示配置PAT_STATUS寄存器</p>
<p></p>
<p> </p>
<p>如果只是写SRAM,按照下边配置即可。</p>
<p> </p>
<p><em>3、其他寄存器还有怎么配置啊?我看PAT_STAUS寄存器是要配置一次写,然后再配置一起读吗?</em></p>
<p>PAT_STATUS根据你的要求,读时RUF_READ位为1,写是为0。</p>
littleshrimp 发表于 2021-9-18 10:31
记得以前官网有一个应用程序,可以生成对应的配置,还有你说的exampleX应该在哪下载也找不到了,方便的话你 ...
<p>官网那个应用,我不清楚。</p>
<p></p>
<p></p>
<p>这个官网的例子中 0x1E(PAT_STATUS)是0,我猜想应该是配置完成之后就设为0了?或者别的原因,我也不清楚</p>
<p>虾哥 你看我SPI配置的 是不是也有问题啊</p>
龙龙龙龙龙龙 发表于 2021-9-18 14:10
官网那个应用,我不清楚。
这个官网的例子中 0x1E(PAT_STATUS)是0,我猜想应该是配置完成之 ...
<p>这个例子里没看到对SRAM配置,对PAT_STATUS的配置应该是在读写SRAM前进行的。</p> littleshrimp 发表于 2021-9-18 14:23
这个例子里没看到对SRAM配置,对PAT_STATUS的配置应该是在读写SRAM前进行的。
<p>想要产生这种波形,是必须要先配置STATUS为写,然后往SRAM(0X6000)写数据,再配置STATUS为读,再读SRAM吗?</p>
<p>还是说 我只需要往SRAM里写,不需要读,然后SRAM就能输出我想要的调制的波形了??</p>
<div class='shownolgin' data-isdigest='no'>littleshrimp 发表于 2021-9-18 14:23
这个例子里没看到对SRAM配置,对PAT_STATUS的配置应该是在读写SRAM前进行的。
<p>是啊,例子没有sram的配置,官网也只给了 这个例子和SRAM里面需写的数(就是幅度的轮廓)</p>
</div><script>showreplylogin();</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <div class='shownolgin' data-isdigest='no'>龙龙龙龙龙龙 发表于 2021-9-19 08:38
想要产生这种波形,是必须要先配置STATUS为写,然后往SRAM(0X6000)写数据,再配置STATUS为读,再读SRAM ...
<p>我觉得不需要读,180MSPS的输出速率肯定是内部直接读取SRAM输出的。</p>
</div><script>showreplylogin();</script> <div class='shownolgin' data-isdigest='no'>littleshrimp 发表于 2021-9-19 10:48
我觉得不需要读,180MSPS的输出速率肯定是内部直接读取SRAM输出的。
<p>虾哥,那么怎么把4096个数写进SRAM的0X6000-0xFFF中啊?我现在已经有个EXCEL表格了,但怎么把这个数据加进去啊?</p>
</div><script>showreplylogin();</script> <div class='shownolgin' data-isdigest='no'>龙龙龙龙龙龙 发表于 2021-9-20 09:37
虾哥,那么怎么把4096个数写进SRAM的0X6000-0xFFF中啊?我现在已经有个EXCEL表格了,但怎么把这个数据加 ...
<p>生成一个4字节的数组,前边两个字节是地址,后边是数据。<br/>像红圈里那样,然后通过SPI那个函数写到芯片里。</p></div><script>showreplylogin();</script> <div class='shownolgin' data-isdigest='no'>littleshrimp 发表于 2021-9-20 10:02
生成一个4字节的数组,前边两个字节是地址,后边是数据。像红圈里那样,然后通过SPI那个函数写到芯片里。
<p>寄存器名就是一个SRAM_DATA就行了呗? </p>
<p>例如: InstruAndData_SRAMDATA = 0x60001111</p>
<p> InstruAndData_SRAMDATA = 0x60012222</p>
<p> InstruAndData_SRAMDATA = 0x60023333</p>
<p>以下一次类推,是这样吗</p>
</div><script>showreplylogin();</script> <div class='shownolgin' data-isdigest='no'>龙龙龙龙龙龙 发表于 2021-9-20 10:39
寄存器名就是一个SRAM_DATA就行了呗?
例如: InstruAndData_SRAMDATA = 0x60001111
&n ...
<p>可以这样,但我觉得使用数组会更好一些。</p>
<p>uint32_t sram_data[]={0x6000111,0x6000222,...};</p>
</div><script>showreplylogin();</script> <div class='shownolgin' data-isdigest='no'><p>虾哥,现在我用自增(0x6000+i)已经可以写连续的数进去了,但现在我想把我生成的txt文件的数放进这里面去,这应该怎么写啊?</p>
</div><script>showreplylogin();</script> <div class='shownolgin' data-isdigest='no'>littleshrimp 发表于 2021-9-20 11:31
可以这样,但我觉得使用数组会更好一些。
uint32_t sram_data[]={0x6000111,0x6000222,...};
<p>虾哥,谢谢你,我现在已经可以产生调制的波形了</p>
<p>但现在还出现个问题 ,就是我产生波形是时间不固定,最多一次能产生5分钟,最少几秒钟,您帮我分析分析是硬件的问题还是软件程序的问题啊??</p>
</div><script>showreplylogin();</script>
页:
[1]