Questions tagged «serial»

在串行通信中,数据按时间顺序发送。主要优点:所需的电线少得多。主要缺点:在相同吞吐量下带宽更高。

6
与Tx和Rx串联的电阻
我正在制作自己的电路板,并使用带有Arduino引导程序的ATmega 328。我有一个DIP开关,可以选择要连接到ATMega的Rx和Tx的FTDI芯片(用于编程),还是要输出要连接的串行信号的GPS。我正在查看此原理图以供参考:http : //arduino.cc/en/uploads/Main/ArduinoNano30Schematic.pdf 为什么在Rx和Tx上有2个电阻来自ATMega?我是否仅需要用于连接FTDI芯片的天线,还是也需要GPS天线?

4
用于高速差分接口的交流耦合电容器
您能解释一下为什么在高速(1 ... 5 GHz)差分串行接口(如千兆以太网SFP模块的SerDes)上放置交流耦合电容器(通常为0.1uF左右)的原因和原因吗? 根据我的阅读,电容应尽可能靠近接收器引脚放置。任何合法的参考都欢迎。 [CHIP1 RX+]--||-------------[CHIP2 TX+] [CHIP1 RX-]--||-------------[CHIP2 TX-] 0.1uF [CHIP1 TX+]-------------||--[CHIP2 RX+] [CHIP1 TX-]-------------||--[CHIP2 RX-] 0.1uF 先感谢您 更新: 得到了IC制造商的答复,它建议我将保护帽靠近发射器。因此,实际位置似乎取决于特定IC的工作方式。不久前,另一家制造商提出了完全相反的建议。

1
MIDI IN:许多电路
我正在使用6N138光电隔离器将MIDI IN构建为串行端口RX cicruit(适用于Raspberry Pi,Arduino或其他任何产品)。 但是我发现有很多不同的电路,我不知道为什么会有如此不同,以及选择哪一个: 这些正确吗? 首先,这其中一个470欧姆和1kΩ的电阻器 (来源:electro-tech-online.com) 另一个分别带有1KOhm和3.3KOhm的电阻 (来源:dernulleffekt.de) 官方上的midi.org,具有不同的电阻值,但不是基于6N138 ... http://www.midi.org/images/midihw.gif 最后一件事(可能不在这里):如果我想连接到Raspberry Pi的GPIO的RX,我应该使用3.3V的光电隔离器代替5V,以防止与GPIO的RX断开吗?

3
ATtiny45直接USB 2.0连接的固件和电路
我想使用ATtiny45制作自己的模块化USB设备,该设备只需通过USB将数据发送到PC。我没有读取数据,因此单向连接(ATtiny-> PC)完全可以。 我正在使用Arduino Uno作为ISP,并从Arduino软件中加载了标准ArduinoISP草图。我正在考虑使用AVRDUDE与Arduino作为ISP一起对ATtiny45进行编程,因为我希望能够使用编译为HEX的C代码,因为它比Arduino编程语言更高级。 我对电路的基本想法是: 如您所见,我想要一个“直接” USB连接。到目前为止,我知道我必须为此使用基于软件的解决方案。 我已经管理SoftwareSerial与我的ATtiny45一起使用。为此,我使用了Arduino软件通过以下代码对ATtiny45进行编程: #include <SoftwareSerial.h> #define rxPin 3 #define txPin 4 SoftwareSerial serial(rxPin, txPin); void setup() { pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); pinMode(led, OUTPUT); serial.begin(4800); } void loop() { serial.println("1"); delay(1000); } 请注意,我还没有使用Pin 3(但),但需要为SoftwareSerial定义它。 这样,通过使用SoftwareSerial,我能够将数据从ATtiny直接发送到我的Arduino UNO的TX引脚上,该引脚上已加载了此测试的空白草图。我使用Arduino软件的串行监视器读取COM4上的数据(在我的情况下),因为我试图将编程的ATtiny直接连接到USB电缆时,我的PC无法识别任何设备(COM端口)。 不幸的是,我在串行监视器中只有奇怪的unicode字符。我认为是因为数据采用十六进制格式左右。因此,我注意到我需要在USB和ATtiny45之间连接一个USB /串行转换器 ...我已经搜索了此类转换器,但是我不想使用任何预制板,因为我想要所有我的组件放在一块板上。我认为FTDI芯片对我的项目来说太“太多了”,不是吗?(它的引脚太细小,无法焊接...) V-USB是我的第二种方法,因为它不需要USB /串行转换器(据我所知)。因此,要使用V-USB,我需要使用前面提到的AVRDUDE。 我找到了一个很好的示例V-USB EasyLogger。它包含电路设计和示例固件。(C / C ++ …

6
通过USB到串行电缆编程Arduino时如何解决AVRdude非同步错误?
我正在尝试为PC 构建这种环境照明。这在我的Arduino Uno上完美运行。我的下一步是使用“面包板上的Arduino”进行制作。因此,我购买了一块空白的ATmega328芯片,并使用Arduino IDE和USBasp将Arduino引导加载程序(用于“ Arduino Duemilanove w / ATmega328”板)烧毁在其中。我知道这已经正确加载,因为该ATmega芯片在Uno上可以正常工作。 然后,我使用FT232RL制作了USB到串行转换器;但是它的驱动程序未安装在我的PC上(Windows 7 x64)。我怀疑我使表面安装的FTDI芯片过热并在手工焊接时将其杀死。 所以,我已经把它放在一边,并得到了这个 USB转串口转换器桥:(很抱歉的蹩脚的图片),我用了一个额外的ST232CN我的线路板,转换RS232到TTL电压水平,显示在此页面。正如我从环回测试中验证的那样,此方法工作正常。我已经将ST232的引脚9连接到ATmega的引脚2,并将引脚10连接到引脚3。 当我尝试从Arduino IDE 上传眨眼示例时,出现此错误: Binary sketch size: 1026 bytes (of a 30720 byte maximum) avrdude: stk500_getsync(): not in sync: resp=0x00 当我执行详细的上传(Shift + Upload)时,出现以下错误/消息: avrdude: usbdev_open(): did not find any USB device "usb" 另外,我尝试在ATmega的引脚2和3上添加1k上拉电阻,但没有帮助。所以我想现在的问题出在从ST232到ATmega的串行通信中?ATmega的Reset引脚是否有特殊连接?我用一个10k的电阻将其上拉至5V。

2
用于限制LED电流的电阻器如何耗散照明应用中解决的一些能量?
LED不能直接连接到电源-只能与限流电阻串联。这意味着当LED通电时,该LED会消耗一些功率,而电阻器会消耗一些功率。这意味着浪费了一些能量。 现在,假设我需要构造一个强大的光源-房屋照明设备或汽车前灯-使用LED作为光源。我将必须通过电阻器连接所有LED。 我猜那些电阻会浪费很多能量。 使用LED照明时如何解决此问题?
9 led  resistors  serial 

2
如何在Android上为耳机插孔制作指纹扫描仪(UART,串行)?
Square up通过Android和iOS上的耳机插孔读取磁条卡。我想在Android手机上捕获指纹。我可以开发一种使用指纹扫描仪(UART /串行)以相同方式捕获指纹的硬件吗? 我想开发这样的硬件(例如方形),该硬件可用于通过耳机插孔捕获指纹。如果可以的话 指纹扫描仪可使用UART通信协议。那么,有没有办法通过开发这样的连接器来通过耳机插孔发送指纹图像?
9 serial  uart  android 

5
RS232到USB转换器
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为电气工程堆栈交换的主题。 6年前关闭。 任何人都对一个好的rs232-usb转换器有任何建议。那里有很多东西,从外观上看,有些是碰运气的。 良好的驱动程序支持是必须的。
9 usb  serial  rs232 

1
驱动10Gb串行引脚是否需要10GHz时钟?
我正在阅读有关Altera FPGA的10Gb / s以太网PHY(此处的数据表)。让我印象深刻的是,在硬件级别,10Gb / s是串行完成的。 天真的,我想串行执行10Gb / s,一个需要10GHz的时钟。但是,对于一个时钟,10GHz似乎太高了,数据表没有在任何地方指定10GHz时钟。 10Gb / s串行通信如何完成?什么时钟驱动这种传输?

2
SPI从设备可以以全双工模式启动传输吗?
据我所知,SPI从设备的SPI传输如下所示: 主机通过SS引脚选择一个从机 主从之间同时发送数据 主机同时启动时钟和数据传输(写操作之前没有时钟) 即使从站有更多数据要发送,主站也可以在其希望的任何时候停止传输(通过停止写操作和时钟生成)。 是否有任何SPI从设备配置,该配置允许从设备在未经主机许可的情况下传输数据? 我只是想大声一点。假设只有一个从站,而主站等提供了一个连续的时钟。 即使假定的陈述为真,由于没有SPI的起止位,主机和从机也不会丢失字节同步(即接收位流)吗? 我问这样的问题是因为我已经阅读了本文档的以下部分。 2.2 SPI示例 所附的SPI示例说明了USART在同步模式下的使用。USART1被配置为从设备,而USART2被配置为主设备。发生以下交易: 从主机到从机的数据传输。 从机到主机的数据传输。 从主机到从机以及从机到主机同时进行数据传输。 本文给出了SPI示例,但使用USART器件实现了示例。而且我知道USART从站可以在未经主站许可的情况下开始传输。 我找不到文档引用的源代码。

1
UART发生意外的Atmega16响应
UART发生意外的Atmega16响应 问题摘要 我已经用代码刷新了Atmega16,这应该导致Atmega16通过终端发送回我发送给它的任何字符。我得到了答复,但是我发送的角色很少。通过更改波特率,我可以看到正确的输出,但是我不明白为什么正确的波特率有效。 更多详情 我正在尝试自己学习更多有关固件编程的信息,因为我很喜欢。到目前为止,在uni上进行的固件编程中,我们已经获得了框架代码文件,这些文件可以完成许多外围设备接口并为我们设置了文件,但是我想自己学习一下。在整个帖子中,我对我在这里所做的事情有一些疑问,但我将在最后逐条列出。如果您对我的知识有任何误解或潜在的空白,我将不胜感激您可能会提供的任何意见。 编码 我纷纷亮出到我Atmega16的代码“在AVR-GCC使用USART”取几乎行线从教程发现此页面上。我只添加了F_CPU的#define。原始代码没有针对F_CPU的#define,因此我的代码无法在AtmelStudio 7中进行编译。有人可以解释为什么作者未在原始文件中定义F_CPU吗?我猜他们可能正在使用Atmel Studio 7以外的其他工具或编译器,但我不能肯定地说。 #include <avr/io.h> #define F_CPU 7372800 //this was chosen because the tutorial states this is the frequency we want to operate at #define USART_BAUDRATE 9600 #define BAUD_PRESCALE (((( F_CPU / 16) + ( USART_BAUDRATE / 2)) / ( USART_BAUDRATE )) - …


2
通过串行实现MCU的控制命令
我希望将命令界面集成到一个项目中,该项目使我可以接受来自PC的命令。 这个想法是设备将执行其操作,但会收到命令,它将执行该命令。这与我设法找到的大多数示例不同,这只是一个等待串行数据的空闲设备。 因此,例如,一个控制LED并播放动画的设备。假设有3个预设动画,当它打开时,它始终播放数字1。在PC端,我将发送命令“播放预设2”,或“将颜色更改为绿色”,或向设备发送实时实时动画在LED上播放。 所以我的问题是我找不到关于这种“设计模式”的太多信息吗?我不知道从哪里开始。我最接近的是预制的arduino串行解析库。但是我正在寻找更多的C /非arduino /理论方法。 我已经研究了串行协议,但这仅仅是诸如SPI和I2C之类的东西,而不是实际上如何在软件中实现控制/命令接口的东西。 我还发现了有关HDLC的信息,尽管它似乎更多是一种标准/协议。一个类似的线程是 /programming/1445387/how-do-you-design-a-serial-command-protocol-for-an-embedded-system, 它具有一些非常好的信息,但同样可以做与协议/通信本身。 我试图找到如何编码/实现此功能以创建命令或控制能力。 我是否使用无限循环来监视和捕获传入命令的序列,并使用IF语句列表选择要执行的命令,但是当没有命令且系统应该正常运行时,或者如果它正常运行,会发生什么情况?错过命令? 中断驱动的状态机? 是否有官方名称可用于研究和查找示例? 编辑: 对于任何有相同问题的人,我在研究时都发现了一个非常不错的示例, http://www.adnbr.co.uk/articles/parsing-simple-usart-commands

3
8b / 10b编码的目的是什么?
在USB 3.0的物理层中,有一个8b / 10b编码器。 维基百科说这消除了直流偏移,而我正在阅读的教程说 它是高速串行设计中的常见编码方案 在USB上下文中,这种编码的目的是什么?另外,此编码在其他类型的设备中还能提供哪些其他应用和好处?
8 serial  encoder 

1
Arduino串行通信协议设计
我为电子音乐制作了一个鼓音序器接口。 它使用arduino mega作为微处理器,目前与我编写的用于串行通信的处理程序接口。从那里,OSC消息被发送到我的合作伙伴编写的Max / MSP程序以创建Midi数据流。 所以: 我的物理界面-> Arduino Mega->串行I / O->处理-> OSC-> Max / MSP-> Midi(->音乐应用程序) 我之所以选择此路径,部分原因是它不够聪明,无法删除任何步骤,而且还能够适应我们想要的方式来更新物理接口,能够使物理接口具有多种用途(推子,旋钮和语音选择按钮),并能够确保关键任务的定时和节奏修改(也称为“摇摆”)。 我的串行消息设置如下: PL,1; // transport control: play PL,0; // transport control: stop SW,30; // swing value 30 TM,130; // tempo value 130 SD,1,8,04,0; // Step sequencer data, pattern 1, voice 8 (of 8), step …

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.