关于树莓派外设接口和连线 - V2EX
请不要在回答技术问题时复制粘贴 AI 生成的内容
cc128

关于树莓派外设接口和连线

  •  
  •   cc128 Aug 17, 2018 4639 views
    This topic created in 2827 days ago, the information mentioned may be changed or developed.

    最近刚开始玩树莓派,买了一些外设传感器。 之前也了解了一下 GPIO 接口,以及 PWM ,I2C, SPI, UART, 1-wire。 然后我以为外设可能都是使用这些总线方式来通信,有对应的针脚。 比如 I2C 设备有数据线和时钟线针脚,SPI 设置有 2 个数据针脚和时钟、片选针脚。

    但是拿到外设之后,发现大多数都只有一个数据接口,比如温度湿度的 DHT11,DHT22, 后来了解这些是通过 1-wire 单总线工作的。

    然后看到 DS1302 时钟模块一共有 5 个外部接口, 又不属于 I2C,也不属于 SPI。 那么采用什么方式通信? 自定义的方式? 也不知道线应该怎么接,在网上搜了下发现按下面的接法

    VCC:接树莓派的 3.3V 输出 GND:接树莓派的 Ground (地) CLK:接树莓派的 SCLK DAT:接树莓派的 SDA0 RST:接树莓派的 CE0 

    avatar

    然后我就有点疑问,既然不是 I2C\SPI 那就不需要按照树莓派的针脚定义去接,按道理来说任意的 GPIO 口应该都可以吧??

    然后有看到 5110 的屏幕有 8 条线,网上搜索到连接方法如下

    dc 13rst 5 sclk 26 din 19 cs 6 vcc 20 bl 21 gnd 0v 

    所以一样的问题,如果不是标准的 SPI, I2C 这样的设备,是否可以连接任意针脚 (除去电源)?如果不是,要怎么知道如何连接? 因为我下了一些设备资料,里面也没有连接的信息。

    小白求教

    7 replies    2018-08-18 13:49:13 +08:00
    Tetsuchou
        1
    Tetsuchou  
       Aug 17, 2018 via iPhone
    直接买模块呗 国内也就那几家 df 啊 seeed 那些 有的带 Shield 的连接口都给你分好了 一个模块一个模块直接插 特别小白 而且库都给你写好直接用的
    cc128
        2
    cc128  
    OP
       Aug 17, 2018
    @Tetsuchou 恩,这些我知道,我是想能稍微多了解一下。

    因为发现很多并不是标准的 SPI ,i2c 接口设备,所以就想知道这些是否任意的 GPIO 接口都可以连接。
    weyou
        3
    weyou  
       Aug 17, 2018 via Android
    vcc,gnd 必须对应,其余信号线理论上可以任意接,但相应的程序里也要修改成对应的 pin 脚。
    a22271001
        4
    a22271001  
       Aug 18, 2018 via Android
    ds1302 用的是芯片自定义的通讯协议,有能力的话可以查看芯片的 datasheet。芯片的 vcc gnd 肯定是要对应的,其他脚的确可以自定义,但是必须修改源码对应上才能读到时间。
    Tyanboot
        5
    Tyanboot  
    PRO
       Aug 18, 2018 via Android   1
    I2C 不清楚,不过 SPI 是可以用任意 GPIO 来模拟的,最近用的 PN532,Arduino 上的库有的就是靠模拟实现的 SPI,比如
    Adafruit-PN532。

    所以你如果用 pi 上自带的 SPI 的话就是硬件 SPI,可以直接用 SPI 寄存器或者库通信,自己随便选 GPIO 的话就意味着你需要手动实现 SPI 了。
    smdbh
        6
    smdbh  
       Aug 18, 2018
    外设的 i2c spi 2 线 3 线的,只是通信线,其余供电 vcc,gnd,和 rst,irq cs 等每个外设都不一样,但一般都可用 gpio 控制。
    cc128
        7
    cc128  
    OP
       Aug 18, 2018
    @smdbh
    @Tyanboot
    @a22271001
    @weyou

    感谢各位,基本了解了。所以可以理解为,其实作为 GPIO 通用接口,可以实现任意的协议通信。无论是时钟线、数据线、还是控制线。 因为其实都是高低电平而已。 只不过像树莓派定义了硬件实现的 SPI ,I2C 这种接口,所以对于这种外设可以直接使用这些针脚,当然也可以用其他 GPIO 口来模拟(比如模拟 I2C,USB,等等)。

    而对于一些外设可能是自定义协议,自定义了针脚,那么实际上任意的 GPIO 针脚都可以连接。 因为这些协议都是自己去实现。 如果使用现有的库文件的话,需要修改代码中的针脚定义。

    这样了解下来对 GPIO 功能理清更清楚了,之前对 GPIO 接口认识比较局限。
    About     Help     Advertise     Blog     API     FAQ     Solana     6104 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 40ms UTC 06:25 PVG 14:25 LAX 23:25 JFK 02:25
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86