STM32
直播中

萧蔼晨

7年用户 977经验值
私信 关注
[问答]

如何去实现单片机和电脑之间的通信呢

如何去实现单片机和电脑之间的通信呢?
LED灯的电阻该怎样去设计呢?

回帖(1)

孔朱磊

2021-12-20 11:46:19
一、电源部分的设计

1、USB插座供电电源设计
其中VCC出去即为整体电路板的电源起始处;
因为USB基本上从AT或者ATX上接入,大多为开关电源,能够自动调节电流大小,很不稳定。
故VDD出来后会加上去耦电容,滤波稳定电源。
并且会加上电源指示灯的电路。
通过六角启动开关的一边进行VDD到VCC的联通,然后对VCC进行电源指示,并且将该VCC进行3.3V的转换,
最后在进行3.3V的电压引出使用。
2、利用插头(电池供电或者220转5v的充电头)电源设计
首先电阻丝的过流保护,出来有去偶电容的稳定
接着利用六角开关进行另一组的转为VCC,接着进行去偶稳定





二、LED灯的电阻设计

单片机中发光二极管的通过电流是3-10mA,在通电后LED的压降为1.7V所以加在电阻上的电压为5-1.7=3.3,在基础上
能通过3mA的电流,故电阻值为1K左右。(注意端口给的为低电压假设为零,实际上比零大)
问题:
单片机中的引脚电流为多大?
三、USB串口(RS232是一种传输协议,MAX3232是一种电平转换芯片)

单片机和电脑之间的通信,可以通过串口、USB等方式,其中电脑中有USB和串口两种电平,
1——串口——串口(max3232)
2——USB——串口(一头USB,一头是232头)其中电脑插USB(需要有转换电路max3232)
3——USB——TTL(TTL一端直接用4根线连接在板子的串口引脚上)(需要有转换电路:USB电平转为TTL
和驱动驱动程序CH340、PL2303)




USB转为板上的串口——>要考虑USB电平到TTL的电平的转换









其中P7是3*2的排插,中间3、4是连接到MCU的PA9和PA10上的。
P8是对应下面的USART3,在MCU上的PB10和PB11。





备注:尤其注意232中的针脚类型——:>是不同的接口,可以直接用两个数据接口即可(23)
SP3232和MAX3232均是232电平和TTL电平的装换芯片,由图中可以看出有两对输入输出:
——>DIN1与DOUT1
——>DIN2与DOUT2





备注(RS485_RX/RS485_TX 连接在 P7 上面,通过 P7 跳线来选择是否连接在 MCU 上面, RS485_RE 则是直接连接在 MCU 的 IO 口( PD7)上的)











四、下载电路(JLink与SWD模式)

一旦用了JTAG的电路,即代表可以用JTAG和SWD两种模式










          标准的 JTAG 接法,但是 STM32 还有 SWD 接口,SWD 只需要 2 根 线(SWCLK 和 SWDIO)就可以下载并调试代码了,这同我们使用串口下载代码差不多,而且 速度非常快,能调试。所以建议大家在设计产品的时候,可以留出 SWD 来下载调试代码,而 摒弃 JTAG。STM32 的 SWD 接口与 JTAG 是共用的,只要接上 JTAG,你就可以使用 SWD 模 式了(其实并不需要 JTAG 这么多线),当然,你的调试器必须支持 SWD 模式,JLINK V7/V8、 ULINK2 和 ST LINK 等都支持 SWD 调试。
五、存储器电路






备注:型号为——IS62WV51216,容量为1M 字节,该芯片挂在STM32 的 FSMC 上。这样大大扩展了 STM32 的内存(芯片本身有 64K 字节),从而在需要大内存的场合





备注:24C02——芯片的容量为 2Kb,也就是 256 个字节,对于我们 普通应用来说是足够了的。当然,你也可以选择换大容量的芯片,因为我们的电路在原理上是 兼容 24C02~24C512 全系列 EEPROM 芯片的。 这里我们把 A0~A2 均接地,对 24C02 来说也就是把地址位设置成了 0 了,写程序的时候 要注意这点。IIC_SCL 接在 MCU 的 PB6 上,IIC_SDA 接在 MCU 的 PB7 上,这里我们虽然接 到了 STM32 的硬件 IIC 上,但是我们并不提倡使用硬件 IIC,因为 STM32 的 IIC 是鸡肋。
六、模式选择和复位电路
















备注:如果想让 STM32 一按复位键就开始跑代码,则需要配置 BOOT0 为 0,BOOT1 随便设 置都可以。这里 ALIENTEK 战舰 STM32F103 专门设计了一键下载电路,通过串口的 DTR 和 RTS 信号,来自动配置 BOOT0 和 RST 信号,因此不需要用户来手动切换他们的状态,直接串口下载软件自动控制,可以非常方便的下载代码。
七、其他应用电路






备注:未用上拉电阻式的电路(32IO口在输入模式下会有内部的上拉电阻)





备注:注意两者提供的电压均为3.3,若是5V则需要改变电阻的值





备注:TFT_LCD 是一个通用的液晶模块接口,支持 ALIENTEK 全系列 TFTLCD 模块,包括: 2.4 寸、2.8 寸、3.5 寸、4.3 寸和 7 寸等尺寸的 TFTLCD 模块。LCD 接口连接在 STM32F103ZET6 的 FSMC 总线上面,可以显著提高 LCD 的刷屏速度。  图中的T_MISO/T_MOSI/T_PEN/T_SCK/T_CS连接在MCU的PB2/PF9/PF10/PB1/PF11上, 这些信号用来实现对液晶触摸屏的控制(支持电阻屏和电容屏)。LCD_BL 连接在 MCU 的 PB0 上,用于控制 LCD 的背光。液晶复位信号 RESET 则是直接连接在开发板的复位按钮上,和 MCU 共用一个复位电路。





备注:接口用来连接 NRF24L01 或者 RFID 等无线模块,从而实现开发板与其他设备的无线数 据传输(注意:NRF24L01 不能和蓝牙/WIFI 连接)。NRF24L01 无线模块的最大传输速度可以 达到 2Mbps,传输距离最大可以到 30 米左右(空旷地,无干扰)。





备注: P6 是接口可以用来连接 ALIENTEK OLED 模块或者 ALIENTEK 摄像头模块。如果 是 OLED 模块,则 FIFO_WEN 和 OV_VSYNC 不需要接(在板上靠左插即可),如果是摄像头 模块,则需要用到全部引脚。  
其中,OV_SCL/OV_SDA/FIFO_WRST/FIFO_RRST/FIFO_OE 这 5 个信号是分别连接在 MCU 的 PD3/PG13/PD6/PG14/PG15 上面,OV_D0~OV_D7 则连接在 PC0~7 上面(放在连续的 IO 上,可以提高读写效率),FIFO_RCLK/FIFO_WEN/OV_VSYNC 这 3 个信号是分别连接在 MCU 的 PB4/PB3/PA8 上面。其中 PB3 和 PB4 又是 JTAG 的 JTRST/JTDO 信号。
所以在使用 OV7670 的时候,不要用 JTAG 仿真,要选择 SWD 模式(所以我们建议大家直接用 SWD 模式 来连接我们的开发板,这样所有的实验都可以仿真!)。  特别注意:OV_SCL 和 JOY_CLK 共用 PD3,OV_VSYNC 和 PWM_DAC 共用 PA8,他们 必须分时复用。在使用的时候,需要注意这个问题。

八、常用的器件的通信协议

常用IIC接口通用器件的器件地址是由种类型号及寻址码组成的,共7位。
如格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
1-器件类型由:D7-D4 共4位决定的。这是由半导公司生产时就已固定此类型的了,也就是说这4位已是固定的。
2-用户自定义地址码:D3-D1共3位。这是由用户自己设置的,通常的作法如EEPROM这些器件是由外部IC的3个引脚所组合电平决定的(用常用的名字如A0,A1,A2)。这也就是寻址码。
所以为什么同一IIC总线上同一型号的IC只能最多共挂8片同种类芯片的原因了。
3-最低一位就是R/W位。这位不用我多说了。
在现代电子系统中,有为数众多的IC需要进行相互之间以及与外界的通信。为了提供硬件的效率和简化电路的设计,PHILIPS开发了一种用于内部IC控制的简单的双向两线串行总线I2C。I2C总线支持任何一种IC制造工艺,并且PHILIPS和其他厂商提供了种类非常丰富的I2C兼容芯片。作为一个专利的控制总线,I2C已经成为世界性的工业标准。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分