Questions tagged «spi»

SPI是具有时钟(SCLK),数据输入(MISO)和数据输出(MOSI)的低级3线或4线串行总线接口。第四根线是从选择,用于唯一选择总线上的设备。该信号通常为低电平有效。从选择,片选,CS#,SS#通常代表相同的功能。不过,请务必检查数据表。SPI总线是缺乏正式规范的事实上的标准。

8
考虑SPI或I2C时需要权衡?
在决定使用SPI或I2C接口时应该考虑哪些权衡? 该加速度计/陀螺仪分接板有两种型号,每个接口一个。哪一个更容易集成到Arduino项目中? http://www.sparkfun.com/products/11028
116 spi  i2c 


10
SPI或I2C:用于较长的总线
我正在考虑一个需要几个AVR通过总线相互通信的项目。它们之间的间隔最大为6英尺。 看起来I2C和SPI都可以让一系列的微处理器通过总线进行通信,但是我还没有看到有关它要持续多久的信息。有没有人尝试在几英尺的距离上连接这些协议?


3
FRAM有什么收获?
在最近获得MSP430 Launchpad之后,我一直在从事各种微控制器项目。不幸的是,MSP430G2553仅具有512字节的RAM,因此执行任何复杂的操作都需要外部存储。 查看SPI和I2C SRAM和EEPROM芯片后,我发现了FRAM。 看起来很完美。具有大尺寸(上面链接的是2Mb器件),低功耗,字节可寻址和可编程,非易失性,无磨损问题,无需显式擦除任何内容,并且实际上比串行SRAM(与Microchip的器件相比)便宜。 实际上,它看起来太完美了,这使我感到怀疑。如果这些东西比串行SRAM和闪存EEPROM好得多,为什么不到处都是呢?我应该坚持使用SRAM,还是FRAM是进行实验的不错选择?


2
EMI替代SPI
我目前正在制作一个由塑料外壳组成的系统,其中包含一个使用2MHz SPI通过约5cm长的电线与7个ADC通讯的MCU。 问题是我担心EMI。我读到的所有内容都表明,任何不在接地金属机箱中的PCB上安全地放置的数字信号都会辐射过多,无法通过EMI测试。我想这也将包括I2C。 这有可能无法通过EMI测试吗?我该怎么办? 我正在寻找任何答案,包括“使用不同的总线/ ADC”,但不包括涉及机械更改的答案,例如:“将所有ADC放在同一PCB上”或“将整个东西放在金属盒中” 。我对SPI(包括差分总线)的低EMI替代方案特别感兴趣。 这是有关该应用程序的一些相关信息。如果您需要了解更多信息,请告诉我: 每个ADC板有6条线(电源,GND,CS,CLK,MOSI,MISO)。 ADC当前为MCP3208(Microchip 8通道,12位) 我在一个拼命的空间受限的应用程序中工作,因此对电线添加屏蔽并不是真正的选择。 使用某种差分总线(仅一对或两对)会很好,但是唯一具有差分通信的ADC似乎是多MSPS LVDS类型。 CAN可能太慢,并且对于这种空间受限的应用来说也有点笨重。 采样率:我需要以1kHz对每个通道进行采样。 添加: 只是为了了解空间限制: 在这里,您可以看到ADC PCB之一。这个实际上有一个MCP3202而不是MCP3208,但是它是兼容的。它采用TSSOP 8封装。PCB为11mm x 13mm。黑色电缆的直径为2mm。如您所见,连接器甚至没有空间,导线直接焊接到PCB,然后封装。连接器的缺乏是由于周围空间的限制而不是PCB空间的限制。
24 spi  wire  emc 

4
短距离板对板通信
我的MCU运行带有大约4个设备的SPI总线。我也想将总线扩展到板外,即将一些PCB连接到“主板”并扩展功能。“垫到垫”的距离为: 主板走线长度+电缆长度+扩展板上的走线长度 3“ + 6” + 3“ =大约12” 以我的经验,即使是带状电缆在此距离上具有大约7 ns上升时间的1 MHz信号,也会过冲超过1 V(但不会产生过多的振铃)。这些板将由相同的电源供电。 注意:您在此处看不到上升时间,但可以看到过冲现象-这是一个3.3V信号。是的,这是用一根很短的导线从探头到地面进行正确测量的。很像经常在此网站上推荐它。我不认为这是一个测量错误。 我希望系统工作在4 MHz,但2 MHz也可以接受。最高 我要连接的板数大约为4,这会将SPI总线扩展到大约12个设备。我认为通过代码进行管理不会太困难,因为我已经有了类似的工作。拥有额外的从属选择线也不是问题。 但是,我担心的是如何将SPI数据从一块板发送到另一块板。我应该只发送直接SPI还是将其一端转换为LVDS,然后在另一端转换回SPI?

6
串行协议定界/同步技术
由于异步串行通信甚至在当今的电子设备中也很普遍,我相信我们许多人会不时遇到这样的问题。考虑与串行线(RS-232或类似产品)连接并且需要连续交换信息的电子设备D和计算机。即每个发送一个命令帧,并每个发送一个状态报告/遥测帧答复(报告可以作为对请求的响应发送,也可以独立发送-在这里并不重要)。通信帧可以包含任何任意二进制数据。假设通信帧是固定长度的分组。PCPCX msDY ms 问题: 由于协议是连续的,因此接收方可能会失去同步,或者只是在进行中的发送帧中间“加入”,因此它只是不知道帧起始位置(SOF)在哪里。根据数据相对于SOF的位置,数据具有不同的含义,接收到的数据可能会永久损坏。 所需的解决方案 可靠的定界/同步方案可在恢复时间短的情况下检测SOF(即重新同步所需的时间不超过1帧)。 我了解(并使用了一些)的现有技术: 1)标头/校验和 -SOF作为预定义的字节值。帧末的校验和。 优点:简单。 缺点:不可靠。恢复时间未知。 2)字节填充: 优点:可靠,快速恢复,可与任何硬件一起使用 缺点:不适用于固定大小的基于帧的通信 3)第9位标记 -在每个字节之前附加一个位,而SOF标记为1和数据字节标记为0: 优点:可靠,快速恢复 缺点:需要硬件支持。大多数PC硬件和软件未直接支持。 4)第8位标记 -上面的一种模拟,同时使用第8位而不是第9位,每个数据字仅保留7位。 优点:可靠,快速的恢复,可与任何硬件一起使用。 缺点:需要从/到常规8位表示到/从7位表示的编码/解码方案。有点浪费。 5)基于超时 -假定SOF为某个已定义的空闲时间之后的第一个字节。 优点:无数据开销,简单。 缺点:不太可靠。在较差的计时系统(如Windows PC)上无法很好地工作。潜在的吞吐量开销。 问题: 还有哪些其他可能的技术/解决方案可以解决该问题?您能否指出上面列出的缺点,可以轻松解决这些缺点,从而消除它们?您(或您将)如何设计系统协议?
24 serial  communication  protocol  brushless-dc-motor  hall-effect  hdd  scr  flipflop  state-machines  pic  c  uart  gps  arduino  gsm  microcontroller  can  resonance  memory  microprocessor  verilog  modelsim  transistors  relay  voltage-regulator  switch-mode-power-supply  resistance  bluetooth  emc  fcc  microcontroller  atmel  flash  microcontroller  pic  c  stm32  interrupts  freertos  oscilloscope  arduino  esp8266  pcb-assembly  microcontroller  uart  level  arduino  transistors  amplifier  audio  transistors  diodes  spice  ltspice  schmitt-trigger  voltage  digital-logic  microprocessor  clock-speed  overclocking  filter  passive-networks  arduino  mosfet  control  12v  switching  temperature  light  luminous-flux  photometry  circuit-analysis  integrated-circuit  memory  pwm  simulation  behavioral-source  usb  serial  rs232  converter  diy  energia  diodes  7segmentdisplay  keypad  pcb-design  schematics  fuses  fuse-holders  radio  transmitter  power-supply  voltage  multimeter  tools  control  servo  avr  adc  uc3  identification  wire  port  not-gate  dc-motor  microcontroller  c  spi  voltage-regulator  microcontroller  sensor  c  i2c  conversion  microcontroller  low-battery  arduino  resistors  voltage-divider  lipo  pic  microchip  gpio  remappable-pins  peripheral-pin-select  soldering  flux  cleaning  sampling  filter  noise  computers  interference  power-supply  switch-mode-power-supply  efficiency  lm78xx 

5
什么是双/四I / O?
在阅读SPI Flash数据表时,我遇到了“双重I / O”和“双重I / O”的概念。起初我以为“双I / O”是“全双工”的同义词,但是什么是“四I / O”呢? 什么是双I / O和四I / O,它们如何比较双工和全双工?
23 spi  flash 

5
SPI总线端接注意事项
因此,在上一个问题中,我问过有关在短距离内使用SPI总线进行板对板通信的问题。建议我尝试使用终端电阻。我将电阻器放置在靠近目的地的位置(但不完全在那儿,距离为1厘米)并接地(因为这是一块没有终端电阻器占用空间的电路板,我不得不即兴创作。我无法将电阻器焊接到设备上,因为它是TQFP且引脚细腻。 通过一些基本测试,我发现一个1K电阻几乎不能减少过冲。470欧姆和180欧姆效果更好。我走的越低,效果越好。180欧姆时,过冲约为伏特或更低。现在,不幸的是,我无法承受更多的损失,因为电流超出了我的MCU可以承受的范围。我确实通过串联使用330 Ohm的电阻来解决该问题,当前版本的电路板。这使过冲达到3.7 V,上升时间为10或11 ns。但是我真的很想在下一个修订版中使用“适当的”解决方案。我的频率要求保持不变:2 MHz,但希望使用4 MHz。 因此,我觉得我应该在这里问:在董事会的下一个修订版中,我应该在线路上放置一些坚固的缓冲器吗?查找缓冲区并不是一个真正的问题,但是电流消耗将大大增加-我在SPI上有8个需要端接的设备,而每条设备始终有3条线路始终处于活动状态。例如,SCK适用于所有8个设备。每个设备都有一个100欧姆的终端电阻。因此,电流消耗为12 * 3.3 / 100 = 390 mA! 那么,这里最好的方法是什么?我应该使用肖特基二极管作为钳位器进行“有源端接”吗? 编辑:关于线路阻抗:如前所述,目的是连接4个外部板。所有的垫到垫的距离都相同(12英寸)。但是,也有与MCU在同一板上的设备-但这些设备不需要端接-长度约为1英寸(或更短),并且过冲很少(300或mV)。到达外部电路板的走线的长度和宽度大致相同。板上的第二层是不间断的接地层。
22 spi  termination 

2
所有microSD卡都支持SPI模式吗?
您是否遇到过不支持SPI模式的SD卡? 我知道microSD不是必需的,但我相信所有人都支持SPI。 编辑:有关SPI可选性的信息似乎来自维基百科,并且最近已被删除(此处和此处)。
19 spi  sd  microsd 

7
将数据从一个系统传输到另一个系统的通用协议?
将信息从一个系统发送到另一个系统的一般协议是什么?例如,假设我们要在一段时间内从微控制器收集一些信息,然后将其发送给另一个微控制器。我听说过SPI和I2C接口,但不清楚何时将一种方法用于另一种方法以及如何实现它。除了SPI和I2C以外,还有其他通用的方法吗?不同的微控制器的实现过程是否相似?它基本上是解析我在接收微控制器上所做的数据字节吗?
18 i2c  spi  data 

2
SPI安全被打断吗?
我正在从固件内部写入microSD卡,但这是优先级最低的任务,因此在读/写过程中可能会被其他任务打断。 现在,假设我使用UART与该microSD卡进行了通信。读取过程中的问题是硬件RX FIFO会溢出,因此我可以努力的最大延迟为(FIFO大小×字节/秒),而在写入过程中将没有问题,因为另一端只会等到我发送下一个字符。 现在我正在使用SPI怎么工作?这种情况是否与写入无关紧要,而对于读取却取决于SPI FIFO大小?

2
我应该如何路由SPI线路?
在我的原理图中,我有4个SPI器件可连接在一起。我将以高达8MHz的速度运行SPI。我应该考虑安装阻尼电阻器吗?源终端电阻?我应该以星状排列还是以连续方式排列它们?添加过多的通孔会损害信号完整性吗? 我还必须补充一点,这些设备彼此之间的距离非常近,彼此之间不超过25mm。
17 spi  pcb-design 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.