锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

arduino i2c 如何写16位寄存器_让你的小串口爆发(支持i2c-tools)

时间:2022-11-03 02:00:00 传感器rl70ce

b1ae591dcfb66a7f522e3e31b1517ead.png

说实话,我已经很久没有在知乎上更新文章了,我写的很少。一开始是CSDN在知乎两边写文章,酝酿一些有价值的东西并不容易。现在,我直接把以前写过CSDN在最后几篇文章的总结中,我们更喜欢安利有趣的内容,所以我们不会长篇大论技术。看了很多人之前收藏的赞,我会继续更新。

情感:后来知乎真的少了,主要是总是推荐一些笑话,尤其是肉笑话,最讨厌总是有奇怪的三种观点,没有贬义可能是我老不能接受,回答主,然后严肃地说,字里行间暗示每个人都是这样的,揭示不可反驳的意义,让一个人有时融入你的圈子不知不觉地接受他们的价值观,也许你的圈子真的不适合像我这样的人。

言归正传

很多人也经历过嵌入式开发板linux上的i2c-tools可扫描的工具i2c总线上的设备,检查指定设备的寄存器,如果是这样的工具windows只需调试一些传感器相机SCCB找开发板就不用做了。串口是许多嵌入式开发的必要工具。如果周围可见的串口突然可以调试i2c,spi会不会瞬间感到快乐?

源码在这里

rede97/tinyboard-toolsgithub.com

先来看看最后的结果~(钨冬粉)

  • 这里扫描了GY91包含了MPU92509轴传感器BMP280气压计
#扫描i2c总线,0代表0FDTI设备,0x68是MPU9250,0x76是BMP280 PS ~> .i2cdetect.exe 0      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f 00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 70: -- -- -- -- -- -- 76 --
#查看MPU9250的寄存器,who am i寄存器0x75为0x71 PS ~> .i2cdump.exe 0 0x68      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f 00: c5 ce e0 0e a0 17 25 cf fa f0 fb fd 00 5a 5b 77 10: bf b9 a5 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 01 e3 9c e3 7c cd 40: 6c fa 60 ff 1f 00 3b ff f0 00 00 00 00 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 1f 89 70: 00 00 00 00 00 71 00 15 fa 00 eb 12 00 22 82 00 80: c5 ce e0 0e a0 17 25 cf fa f0 fb fd 00 5a 5b 77 90: bf b9 a5 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 01 e3 9c e3 68 cc c0: 24 fa 80 ff 15 00 2b ff a0 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 21 22 f0: 00 00 00 00 00 71 00 15 fa 00 eb 12 00 22 82 00

我知道所有的道理,但为什么呢?...

国产有便宜点CH340,外国的CP210x,但是有一款FT232R它更贵。除了过时的串口,每个人都是过时的FIFO大一点不知道为什么他这么贵!FT232R就是今天的主角,解他的新姿势。FTDI不止这些芯片,主要用于JTAG用在做FPGA板载下载器或USB转FPGA。

  • 前提是你需要一块12M晶振的FT232R才行

我在某宝上看了很多FT232RL,但没有外部晶振,因为内部晶振足够用于串口,FT232R的BITBANG模式必须是外部的12M本文参考晶振的具体原因:bitbang ftdi usb to serial converters to drive spi devices 没有外部晶振bitbang模式会导致输出混乱,困扰作者很长一段时间,必须注意这一点:

  • 什么是BitBang模式

BItBang模式是FT232RL串口模式提供了一种额外的模式,还有高端系列的芯片,可以算是FTDI芯片家族的标配,BitBang模式是将串口放下TX RX RTS# CTS# DTR# DSR# DCD# RI#引脚作为GPIO使用,对应BitBang模式下的D0~D7,对应FT_WriteFT_Read中一个byte的0-7bit。具体地说BitBang有三种模式可以看到我CSDN博客,I2C依靠同步BitBang实现模式的先读后写。

Asynchronous Bit Bang Mode (异步BitBang)
Synchronous Bit Bang Mode (同步BitBang)
CBUS Bit Bang Mode (CBUS BitBang)

  • 接线很简单,10K不需要上拉电阻,SCL连接TX,SDA连接RX就可以了

说在最后

我很快就会支持它EEPROM和SPI FLASH的,欢迎新的小伙伴的加入和贡献。

  • 传送门

Mingw下使用FTD2XX进行FTDI的开发 - m454078356的专栏 - CSDN博客

FT232R之Bit Bang - m454078356的专栏 - CSDN博客

FTDI BITBANG软件实现i2ctools

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章