导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[转帖]一个SPI端口能被添加到DJ Kit吗?[liufengzhong]

 *第47926篇: [转帖]一个SPI端口能被添加到DJ Kit吗?

  
楼 主:liufengzhong 2014年8月30日14:44
 [转帖]一个SPI端口能被添加到DJ Kit吗?

我需要添加SPI功能(仅发送)到USB音频2 DJ Kit。这是为了落实4×TI PGA2500麦克风前置放大器IC的数字增益控制。我已经导入了spi_master库进入DJ套件参考设计软件(版本6.6.0),但我有与端口分配为SPI外设的一个问题。看来,在spi_master库,SPI接口(MOSI,MISO,SCLK)需要单独分配到各个端口。然而,所有的单位端口(1A - 1L)当前分配给其他重要的功能,为I2S音频数据和时钟。有没有一种方法来映射所有的SPI接口+ SSEL到一个4位端口,例如端口4C或端口4D?如果没有,那么我的SOL与我的基础上,XS1-U8A-64当前的设计,需要给废了,找到另一种方法(或其他供应商!)。出于成本和电路板密度的原因,它是不能够升级到更高的引脚数的一部分,如XS1-U8A-128。

任何帮助,这将不胜感激。

USB-AUDIO-2.0-设备,参考设计,软件(6.6.0)


回答:

XMOS每个逻辑端口都有一个单一的方向位。这意味着4B端口要么是所有输入或全部输出。因此,它是不可能有MISO,MOSI,SS和SCLK都在同一端口上(除非你做一些可怕的端口转身采样与串联电阻等。)

因此,有一些选项:

- 使用4B端口的SS,SCLK和MOSI的3B,而忽略MISO(可能是好的 - 在PGA2500看起来很简单)。基本上是一个瞎子写。我们做i2c_single_port类似的东西 

- 使用4B端口的SS,SCLK和MOSI的3B和使用(例如一个未使用的端口4B的1b)的另一个端口的MISO 

然而,正如你看到的XMOS的标准IP用于SPI假设1b的端口。使用内置的移位寄存器使用1B端口允许高性能。

但是,在你的情况下速度不是那么关键,一个“宽口”的实施就可以了。但它确实意味着你需要使用的端口4B(也许另一个端口来读取MISO如果需要的话)来编写自己的SPI主控程序。这应该不会太难,可以与FSM(有限状态机)和一个定时器来完成。看看I2C-sp.xc在i2c_single_port ...

回复:

谢谢!非常有帮助。我现在感觉平静。

我很好的做'blind'的SPI写入PGA2500s ......所以没有MOSI和我需要额外的引脚反正。之后我张贴(在恐慌!)昨天晚上,我做了一些更多的搜索在“XMOS的SPI位砰',发现在beta.xcore.com一些hepful职位。看起来这将是相当简单的,以实现自己的SPI驱动程序,而不会产生过多的CPU开销。我相信,一个有限状态机和定时器的方法是更多的CPU效率比蛮力位冲击?
搞笑你提到希望在I2C-sp.xc,这正是我一直在寻找昨晚的文件,但我是新来的越野环境,许多概念和语法仍然生疏了,在这个阶段。但是,这将是让我的脚湿“一个完美的方式。 
另外,只要加入此控制主线处理 - 有许多的I2C和GPIO在我们的设计中的设备需要被“轮询”或定期更新 - 例如电池燃料线规IC,电池充电控制IC,A / D转换器裁剪标志,幻象电源电压/启用等...将“updateMasterVol”和“updateVol”是正确的地方把这些设备接入电话? 
仅供参考,我也将需要implenent了TI的EasyScale 1位协议设定幻像电源电压......这里的一些的Arduino代码的伎俩,我需要将它移植过来XMOS的最后:HTTP: //www.krekr.nl/content/ti-easyscale协议,Arduino的hack/。我很高兴能与社区共享的驱动器,当我得到它的工作。


USB音频参考设计功能“updateMasterVol”和“updateVol”可能是一个很好的地方加入这个控制 - 他们在端点0。

回答: 我相信,一个有限状态机和定时器的方法是更多的CPU效率比蛮力位冲击?

>  >  >  是的。暂停时对一个事件(定时器,港口,航道等)的逻辑核心并没有执行指令。这有点像有硬件的民调支持。因为你在玩的波形只,同步输出到一个计时器最有意义呢。 

搞笑你提到希望在I2C-sp.xc,这正是我一直在寻找昨晚的文件,但我是新来的越野环境,许多概念和语法仍然生疏了,在这个阶段。但是,这将是让我的脚湿“一个完美的方式。 

>  >  >  基础知识只需要一两个小时来学习。你想要做什么幸运的是属于基本接口的范畴 - 它主要是输出中的模式,延时,输出模式延迟等...

另外,只要加入此控制主线处理 - 有许多的I2C和GPIO在我们的设计中的设备需要被“轮询”或定期更新 - 例如电池燃料线规IC,电池充电控制IC,A / D转换器裁剪标志,幻象电源电压/启用等...将“updateMasterVol”和“updateVol”是正确的地方把这些设备接入电话? 

>  >  >  也许不是UpdateVol一个叫EP0任务中的功能。EP0只调用主机的时候。也许是明智的,如果你有一个HID端点这是regulalry调查。
该USB参考设计采用大多数它的核心/任务相当重所以不是真正的好地方添加更多的处理,以现有的核心。这听起来像你想要做的是有一个总体控制/看家任务是什么 - 最好的地方,把这样的任务是在它自己的逻辑核心在那里可以完全独立于参考设计工作。如果您使用的是DJ套装,那么你必须有6个可用83MIPS内核的U6处理器。这使得一个备用(只要你不使用MIDI或SPDIF输出)。

仅供参考,我也将需要implenent了TI的EasyScale 1位协议设定幻像电源电压......这里的一些的Arduino代码的伎俩,我需要将它移植过来XMOS的最后:HTTP: //www.krekr.nl/content/ti-easyscale协议,Arduino的hack/。我很高兴能与社区共享的驱动器,当我得到它的工作。

>  >  >  将端口好听!这将是非常容易使一个功能digitalwrite和延迟。然后,你可以使用Arduino的代码,是......是这样的:

void delayMicroseconds(int delay){
  timer t_stp;
  int step_time;
  t_stp :>   step_time;
  delay *= 100;
  t_stp when timerafter(step_time + delay) :>   void;
}
 
void delay(int delay){
  delayMicroseconds(delay * 1000);
}
 
void digitalWrite(port pin, int val){
  pin   <: val;
}


回复:

再次感谢您的有用的反馈。 

该USB参考设计采用大多数它的核心/任务相当重所以不是真正的好地方添加更多的处理,以现有的核心。这听起来像你想要做的是有一个总体控制/看家任务是什么 - 最好的地方,把这样的任务是在它自己的逻辑核心在那里可以完全独立于参考设计工作。如果您使用的是DJ套装,那么你必须有6个可用83MIPS内核的U6处理器。这使得一个备用(只要你不使用MIDI或SPDIF输出)。

>  >  我们计划使用的SPDIF输出,但我认为对的DJ套装,我可以拿过来专门用于SPIDF输出来实现总体控制看家核心的发展宗旨,然后重新添加SPDIF过,当我们迁移到我们的实际原型印刷电路板 - 这将使用XS1-U8A-64器件(8个核心)。我们计划使用8核心来实现双耳耳机缩混和A-格式的立体混响麦克风B格式转换(假设足够的MIPS)。


回答:

仅供参考您的USB音频2.0参考套件网页()表示在页面顶部的XS1-U8-64设备: 

“这个USB音频解决方案使用xCORE-USB系列XS1-U8-64设备,为专业音频和消费应用的高品质的数字音频连接。”

但是在功能列表则表示XS1-U6:

产品特点
 

)0px 0.45em不重复透明;“>  内置的500 MIPS,6芯,XS1-U6与处理器集成高速USB 2.0

而在DJ工具物料清单表示:

U3 XMOS XS1-SU1处理器,96BGA,500MHz的

而我无法找到数据。

回复:

嗨,我是怕U8A-64将无法为您的需求提供足够的性能。
USB音频参考设计(其实用XUD任何设计,USB设备的IP),要求它在80MIPS运行(请参见USB音频设计指南第3.12 - 资源使用)。
这意味着你可以只用XUD瓦运行最高6芯 - 六分之五百= 83MIPS =确定。
7分之500= 71MIPS =不足以运行XUD。
所以,如果你想添加一个控制任务和某些DSP(这是相当简单),那么你将需要一个XS1-U8A-128设备。这有两层砖在500MIPS每个。所以,你得到每个核心125MIPS,这应该是充足的。
我们在工具>   6芯使用的USB瓷砖增添了警告。

回答:

不幸的是,由于功率/成本/真实身份,我们不能升级到U8A-128。

我想我可以添加一个Cirrus的CS8406  数字音频发射器的设计,并把它绑到第二个I2S输出,从而释放了额外的核心的DSP。如果主机可以使用HID接口来读取数GPI引脚(最多6 P32A),加上一个单个I2C寄存器(电池剩余电量),我可以从需要一个单独的看家任务脱身。莫非这个工作?


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:[转帖]哪来的app_i2c_shared_demo?

[下一篇主题]:[转帖]实时,以太网AVB和Powerlink,XMOS能做什么?