V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ALLROBOT
V2EX  ›  程序员

微控制器 xiao 干扰波动大,以及传感器异常输出,怎么解决?

  •  1
     
  •   ALLROBOT · 2022-04-03 13:52:29 +08:00 · 3321 次点击
    这是一个创建于 997 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前没接触过硬件,我是这方面的菜鸟😥

    问题描述:

    1. 未接传感器信号输出时,微控制器 XIAO 输出数值 10~500 范围,如何排除干扰达到期望输出 0~30

    2. XIAO 微控制器接传感器信号输出引脚时,干扰放大到几万数值异常输出,怎么解决?

    详细描述:

    未接传感器的输出:

    gif

    微控制器接 ESP32 的 3.3V 供电引脚的,输出 20~400 ,我把 ESP32 的笔记本供电换为充电宝供电,问题照旧

    排查

    用数字万用表测量了下,ESP32 开发板的供电引脚大概 1.6~3.7V ,偶尔飙到 5V (可能是我正极负极探头没测准)

    微控制器 XIAO 接 TTL 转 USB 的供电引脚,仍然是异常输出

    传感器的异常输出

    传感器电源接电池(3.3V ,1A 电流),传感器输出引脚接微控制器的各个模拟输入引脚,结果一下输出好几万的数值

    gif

    排查

    Seeeduino xiao 说明书提到模拟引脚可以接受 0~3.3V 的输入,没有说明电流上限多少,我尝试传感器的电源接开发板的供电引脚

    gif

    结果老样子,看来和电流大小没关系...后面把传感器的信号输出线拔掉了,此时微控制器未接任何传感器的信号线....如上图所示

    其它

    问了店家,客服说这个不正常的,传感器应该输出 0~500 的值,如果传感器监测到电流则输出 300~400 ,未监测一般输出 0~30 范围

    正常输出:

    设备资料

    XIAO 的 EMG 采样代码:https://gist.github.com/allrobot/c70abc599ca8eb7fbc246ed67515449a

    传感器参数:https://www.yuque.com/cs/products/rwe87o

    微控制器 XIAO 一般说明:https://wiki.seeedstudio.com/Seeeduino-XIAO/

    微控制器 XIAO 说明手册:https://files.seeedstudio.com/wiki/Seeeduino-XIAO/res/ATSAMD21G18A-MU-Datasheet.pdf

    ESP32 DEVKIT V1:https://circuits4you.com/2018/12/31/esp32-devkit-esp32-wroom-gpio-pinout/

    请问怎么解决 XIAO 的异常干扰,以及传感器糟糕透顶的异常输出?

    第 1 条附言  ·  2022-04-03 15:50:13 +08:00
    ADC 模拟引脚读取 GND ,输出大概 0~20 的

    如果拔出 ADC pin 和 GND pin 的杜邦线,再插回去,就变成以下的情况

    ![]( )
    第 2 条附言  ·  2022-04-03 15:51:47 +08:00
    图片挂了,补一下
    第 3 条附言  ·  2022-04-03 18:16:29 +08:00
    更新电路图


    第 4 条附言  ·  2022-04-03 22:00:13 +08:00
    不好意思,我没说清楚几万的数值是原始值经过一系列的函数转换来的

    也就是说传感器一直是 4000 高电平输出的,不知道为啥

    传感器用 MCU 自带的 3.3V 供电引脚,照样输出 4000 值,经函数转换后输出几万值的

    57 条回复    2022-04-05 11:48:02 +08:00
    zchzch1014
        1
    zchzch1014  
       2022-04-03 14:22:15 +08:00
    1 、若你接的是 TTL 转 USB 模块中 LDO 的输出电压(一般为模块的 3.3V 输出),则可排除电源纹波干扰,否则需考虑电源纹波;

    2 、若无纹波影响,且串口发送一般没有问题,则需重点考虑主控 ADC 的问题。建议将 ADC 引脚接 GND 和 3.3V ,观测 ADC 的原始值是否与采集电压所对应,需观测 ADC 原始值,而非采样代码的输出值,可更好定位问题出在哪里。
    Osk
        2
    Osk  
       2022-04-03 14:40:36 +08:00
    欢迎来到模拟电路这个不讲科学只讲玄学的世界 /狗头 /


    我无法提供太多帮助, 但可以帮后面回帖朋友的节约点时间:
    - op 的传感器模块输出 0-3.0 V 模拟量, 采集肌电信号放大后输出.
    - op 的传感器模块供电 3.3-5 V/> 20 mA.

    没看明白 op 到底用 seeeduino xiao 还是 esp32 在做 ADC 采集, 不过看起来使用的是 xiao, esp32 模块用来供电??
    - xiao 的 ADC 规格: 12bit, 0-4095 输出值代表 0-3.3v(不清楚 op 几万的值是什么情况, 转换成了 mV 电压值?)
    - 没看仔细代码, 个人很疑惑几万的数值是怎么处理出来的.
    - xiao io 电平 3.3v.
    - xiao 供电电路自带 5v-3.3v LDO.
    - xiao 似乎需要一个 usb-ttl 模块来向计算机输出串口数据.



    个人能给的建议:
    最小化测试: 只使用 xiao + usb-ttl 调试最小单元, 供电先用 xiao 自己的 ldo, 也就是说 xiao 插 usb 上供电, 和 usb-ttl 间只连接 tx, rx, gnd.
    测试 xiao 的 adc:
    先将 adc 输入引脚接地, 直接串口打印 analogRead() 返回的原始值, 应该是 0 或者接近于 0. 如果不是, 有问题.
    使用一个电位器: 两端接 gnd 和 3.3v, 活动端接 xiao adc 输入, 串口输出 analogRead 的值, 同时滑动电位器观察输出值范围和变化趋势是否正常.
    然后, 接上传感器输出, 观察 analogRead 的值, 先暂时不用去搞一堆转换输出的函数, 避免干扰调试.



    另外:
    adc 输入脚悬空不接传感器, adc 读出值肯定是不停变化的, 因为收到了外部的干扰.

    另外二:
    In addition to the DAC, the SAMD21's ADC channels also stand apart from the ATmega328: they're equipped with up to 12-bit resolution. That means the analog input values can range from 0-4095, representing a voltage between 0 and 3.3V. To use the ADC's in 12-bit mode, make sure you call analogReadResolution(12) in your setup.
    lalalaqwer
        3
    lalalaqwer  
       2022-04-03 14:47:00 +08:00
    你没外部输入的时候 adc 浮空,此时其值是不确定的,所以会在采集范围内波动,可以不用管。后面的采集信号的时候数据几万大概率是你代码有问题,你直接参照人模块的代码先调通 1 个再去弄 6 个的吧
    ALLROBOT
        4
    ALLROBOT  
    OP
       2022-04-03 14:47:08 +08:00
    @zchzch1014 #1 十几天前我可以确保接 TTL 转 USB 的供电引脚,输出是 0~30 的,现在再接,就输出 0~400 了

    zchzch1014
        5
    zchzch1014  
       2022-04-03 15:05:02 +08:00
    @ALLROBOT #4 所以按我说的第 2 点操作一下,可以验证 ADC 模块是否工作正常呀。一般有问题都是逐步调试定位问题的,直接看最后输出确定不了问题。
    BingoXuan
        6
    BingoXuan  
       2022-04-03 15:16:12 +08:00
    如果 mcu 是 usb 供电的,是不是先考虑一下你 usb 供电是不是稳定的。
    ALLROBOT
        7
    ALLROBOT  
    OP
       2022-04-03 15:28:10 +08:00
    @zchzch1014 @Osk #2 感谢回复
    1. 做 ADC 采样是 XIAO 负责的,ESP32 只负责无线发送
    2. 模拟引脚接 GND ,输出 0~20 之间的 XIAO 没问题

    应该是我的代码问题,正在排查中
    DataSheep
        8
    DataSheep  
       2022-04-03 15:33:34 +08:00 via iPhone   ❤️ 1
    你的问题如二楼所说根本没有描述得很清楚,那张图看不出来你的电路连接情况。
    是电源的问题就使用独立电源供电,并确保共地。也看不出来一个 xiao 一个 esp32 分别是干嘛的,采集一个 ad 挺简单的为啥看起来那么复杂。

    另外面包板、杜邦线、usb2ttl 什么的你基本把 buff 叠满了,这种情况下不出问题才是小概率。
    pengtdyd
        9
    pengtdyd  
       2022-04-03 15:38:59 +08:00
    满头问号,软件和硬件代沟这么大吗,我完全懵逼
    ALLROBOT
        10
    ALLROBOT  
    OP
       2022-04-03 15:41:28 +08:00
    @DataSheep #8 抱歉,我第一次搞硬件的,不知道应该避免哪些情况。。。我是直接拿《 arduino 程序设计基础》入门的
    ALLROBOT
        11
    ALLROBOT  
    OP
       2022-04-03 15:54:10 +08:00
    @BingoXuan #6 USB 如何稳定输出直流电源?

    不知道用什么电容来稳压的,兄弟萌推荐什么稳压模块可以解决?
    liuxu
        12
    liuxu  
       2022-04-03 16:22:11 +08:00
    你确定你的波特率是 500000 ?啥设备这么屌
    ghostxdy
        13
    ghostxdy  
       2022-04-03 17:03:06 +08:00
    遇事不决,加个电容,再不行多加一个下拉电阻
    ALLROBOT
        14
    ALLROBOT  
    OP
       2022-04-03 17:31:10 +08:00
    @liuxu #12 Seeeduino XIAO 和 ESP32 的硬串口波特率为 500000 。。。传输没啥丢包
    @ghostxdy #13 我忘了我还有一个下拉电阻,我看看行不
    liuxu
        15
    liuxu  
       2022-04-03 17:39:23 +08:00
    @ALLROBOT ttl 最大波特率 115200 。。。波特率不对会导致数据错乱

    https://cnmat.berkeley.edu/content/ttl-serial
    DataSheep
        16
    DataSheep  
       2022-04-03 18:17:23 +08:00 via iPhone
    @liuxu ttl 是电平标准,跟速度没关系。。esp32 正常主频下最高支持 5mBaud ,500000 洒洒水。115200 只是比较常用,对于串口来说已经够高够用了而已。
    DataSheep
        17
    DataSheep  
       2022-04-03 18:20:29 +08:00 via iPhone
    @ALLROBOT 你先搞定电源,一定得共地,确保接线牢靠,然后用最小功能单元测试,我还是不明白为什么要用两块控制器。
    杜邦线只能说是尽量不用,用的话就买贵一点的,这线质量参差不齐。
    ALLROBOT
        18
    ALLROBOT  
    OP
       2022-04-03 18:20:30 +08:00
    @liuxu #15 那可奇怪了,我调到 500000 没有出现数据错乱或神奇的乱码😂
    ALLROBOT
        19
    ALLROBOT  
    OP
       2022-04-03 18:22:08 +08:00
    @DataSheep #17 用啥线比较好,杜邦线很多 Arduino 书籍都用它描述电路草图,我不大清楚有啥高质量的线
    ALLROBOT
        20
    ALLROBOT  
    OP
       2022-04-03 18:27:21 +08:00
    @DataSheep #17 这里暂时没电容,我想办法搞好电源吧。。。

    那个两个控制器,我只是需要 Seeeduino XIAO 的 16 位分辨率,通过 ESP32 把该数值发送到上位机而已....
    jiji9081
        21
    jiji9081  
       2022-04-03 18:33:46 +08:00   ❤️ 1
    1. 既然做硬件了,就必须考虑各种意外损坏的情况,有条件的话强烈建议你用一套新的硬件测试一下。很可能在你调试的过程中,不小心因为静电或者接入高压干坏了 ADC 引脚。
    2. 一定要确保各个模块之间可靠的共地。
    3. 不是很清楚 XIAO 的驱动里,ADC 是怎么配置的,参考 XIAO 的 datasheet 878 页,Table 33-5. Reference Selection 。XIAO 的 brief 里说可以测 0-3.3V ,猜想是用 LDO 的 3.3V 作为基准( REFSEL=0x2 ),VDDANA 引脚直接接到 VCC ,GAIN 设置到 1/2 。这样的话对 VCC 的稳定度要求就很高了,看一下纹波的情况。有示波器拿示波器,没有示波器拿万用表调到交流电压档,电压应该是接近 0 。
    Kinnice
        22
    Kinnice  
       2022-04-03 18:40:00 +08:00 via Android
    换一个传感器
    DataSheep
        23
    DataSheep  
       2022-04-03 19:02:18 +08:00   ❤️ 1
    @ALLROBOT 抱歉没仔细看,现在懂了。所以你所说的数值是在 65536 分辨率下的?那么第一个问题完全正常,悬空是不确定的,可以通过配置下拉电阻解决悬空的问题。
    第二个问题,可以先接单通道测试,把 ADC 引脚分别接高(3.3)和地检查数值是不是 65535 和 0 附近,去排除控制器 ADC 的问题。电源都已经使用充电宝了,另外 LDO 正常纹波很小,不会有影响,所以我认为电源的可能比较小,从更新的图上看也共地了,基本能排除电源的问题。那基本就是线路或者传感器的问题了。
    另外还有就是可以用 ESP32 做 AD 读取试试,可以排除是不是传感器的问题。
    Tink
        24
    Tink  
       2022-04-03 19:08:46 +08:00 via Android
    @ALLROBOT 波特率是 115200 吧
    ALLROBOT
        25
    ALLROBOT  
    OP
       2022-04-03 19:26:04 +08:00
    @jiji9081 #21 @DataSheep #23
    12Bit

    16Bit


    几小时前测试的,传感器应该有问题,传感器电源用 XIAO 的 3.3V 供电引脚,悬空状态一接传感器就一直高电平输出了。。。
    ALLROBOT
        26
    ALLROBOT  
    OP
       2022-04-03 19:28:01 +08:00
    @Tink #24 都是 500000 呀,MCU 每秒发送 1000 个 36 位字符,8N1 标准
    yolee599
        27
    yolee599  
       2022-04-03 19:29:39 +08:00 via Android
    看你的描述传感器应该是通过 ADC 和 MCU 连接。先验证 MCU 的 ADC 是否正常,分别让 ADC 输入引脚对地和对对 VCC 短路,正常应该输出 0 和 1024 (不同 ADC 分辨率可能不同)。再用万用表测传感器的输出电压看是否正常。如果你传感器输出最高可达 5V ,但是你 MCU 工作电压是 3.3V ,那肯定不行
    ALLROBOT
        28
    ALLROBOT  
    OP
       2022-04-03 19:31:32 +08:00
    @ALLROBOT #25 第一张图发错了,引脚没接稳 3.3V 引脚输出 1500 ,接稳了输出 4000 多的
    yolee599
        29
    yolee599  
       2022-04-03 19:32:09 +08:00 via Android
    另外 ADC 悬空测试的电压不准确的,都是噪声
    ALLROBOT
        30
    ALLROBOT  
    OP
       2022-04-03 19:37:58 +08:00
    @yolee599 #27 传感器输出量程是 0~3.0V 的😂,只是输入工作电压 3V~5V 的
    ALLROBOT
        31
    ALLROBOT  
    OP
       2022-04-03 19:43:26 +08:00
    @yolee599 #29 悬空状态,接收的值大概几百,没什么意义,姑且视为 0 吧

    XIAO 的一个模拟引脚接传感器,数值就彪到万级别了,发张图体会一下
    liuxu
        32
    liuxu  
       2022-04-03 21:32:49 +08:00
    @DataSheep ttl serial ,ttl 串口通信,玩板子常用的 cp2102 usb 转 ttl ,这种转换模块有速率上限,最高 115200
    liuxu
        33
    liuxu  
       2022-04-03 21:55:02 +08:00
    @ALLROBOT 我建议还是直接用你那个 usb to ttl 的测试,用官方的 demo 测试,波特率 115200 ,转换器的 vcc,gnd,rx,tx 都链接好,测测电压没问题,然后再测试看看,都插好了重新上电测试,好几万的的数值应该不可能,或者是传感器接反了导致 u16 溢出?
    ALLROBOT
        34
    ALLROBOT  
    OP
       2022-04-03 21:56:42 +08:00
    @liuxu #32 USB 转 TTL 我只是用来接收的,不用 USB 转 TTL 的,这玩意的用途是看看 ESP32 收到的一串字符串是否有异常,没别的用途了

    发下 Fritzing 电路图


    只有三种电子设备,传感器,ADC 高分辨率转换器,无线发送设备

    淘宝的电容已下单,但愿电容给力点,能让 3.3V 电源稳定输出吧!
    ALLROBOT
        35
    ALLROBOT  
    OP
       2022-04-03 22:00:29 +08:00
    @liuxu #33 不好意思,我没说清楚几万的数值是原始值经过一系列的函数转换来的

    也就是说传感器一直是 4000 高电平输出的
    DataSheep
        36
    DataSheep  
       2022-04-03 22:05:12 +08:00 via iPhone
    @liuxu cp2102 有速率限制不假,但你知道 115200 有多低么,最高 115200 这芯片能卖得出去?况且这种通信怎么着也得有个帧检验吧,通信有问题显示不出来的。
    DataSheep
        37
    DataSheep  
       2022-04-03 22:07:53 +08:00 via iPhone
    @ALLROBOT 显然问题在传感器那边
    liuxu
        38
    liuxu  
       2022-04-03 22:22:27 +08:00
    @DataSheep 其实这个话题没啥意义,arduino 这种低端设备用 115200 是非常通用的波特率,你会发现大量 arduino/avr/stm32 等低端 mcu 和 pc 做 usb 转换通信都是这个波特率

    实际使用中,如果 pc 接收软件和 mcu 中的波特率没对上,能收到数据,但是会是错误的,字符串的话基本是乱码或间歇乱码,你可以实际操作尝试下看看



    @ALLROBOT 我建议把 esp32 去掉,直接用传感器+arduino+usb to ttl ,然后用官方的 demo 验证一下传感器是不是坏了,拆开电路分模块测试
    如果没问题就把传感器去掉,直接用 arduino 输出常量数据给 esp32 测试,看看 esp32 硬件有没有问题
    ALLROBOT
        39
    ALLROBOT  
    OP
       2022-04-03 23:03:59 +08:00
    @DataSheep #37 是的😂传感器或传感器的电源都有问题,我正在努力

    刚才抽空拿电位器(变阻器)给 xiao 测量下,发现电位器接电池模块高电平输出,滑动变阻还是一样输出,如 31 楼 GIF 所示,换了开发板自带的供电引脚能正常输出了

    虽然开发板的供电引脚用传感器还是不行,一样输出 0~4000 的随机原始值


    @liuxu #38 xiao 和 ESP32 没问题的,刚测过这两模块的情况了,模拟引脚输出 GND:0,VCC:4095 的

    我尽量想办法解决传感器的高电平输出
    DataSheep
        40
    DataSheep  
       2022-04-03 23:08:27 +08:00 via iPhone   ❤️ 1
    @liuxu 我操作算比较熟练,只是指出你其中的一些错误,第一 ttl 是电平标准,第二 cp2012 这种芯片的速率限制没那么低。115200 是一个很低的波特率只是相比 9600 要高不少,通用只是因为这个波特率通常情况下已经够用了,另外也有你说的原因,波特率越低传输越稳定。
    但是仍需要看场合,你如果用过 esp32 的开发工具就知道,esp32 标配的 bootloader 默认使用 500000 传输固件。
    liuxu
        41
    liuxu  
       2022-04-04 01:15:24 +08:00
    @DataSheep

    单独说 ttl 当然是电平标准,但是在这个帖子里,由 OP 发的设备检测图里,ttl 是代表 usb to ttl 这个设备,我不是在做填空题,我是在回帖

    cp2102 的 datasheet 和淘宝卖相关设备时会标明最高波特率是 115200 ,开头“Baud rates: 300 bps to 1 Mbps” ,https://www.silabs.com/documents/public/data-sheets/CP2102-9.pdf

    你一说我还专门多看了下它的 datasheet ,如果想调整到 115200 以上确实可以,要额外安装的软件做特殊配置,并不是直接可以直接用,玩个 ardiuno 没必要超频吧,https://cubeatsystems.com/ifx-49/resources/datasheets/AN721.pdf

    esp32 不过 usb to ttl ,usb to ttl 是 arduino 和 pc 之间的设备( OP 的测试中)


    这个话题没啥意义,不会对解决 OP 问题有啥帮助,对于 TTL 概念和 cp2102 频率问题,我的回复就到这了
    DataSheep
        42
    DataSheep  
       2022-04-04 01:50:18 +08:00 via iPhone
    @liuxu 真有意思,你从何得知 2102 默认最高 115200 ,但凡你去你所谓的店里买一个回来试试也不会有这样的认知。
    我自然知道 usb2ttl 是什么东西跟主控有没有关,我还知道图中的 xiao ,自己实现虚拟串口,esp32 是板载 2102 ,至于那个单独的模块,不管是 cp2102 、ch340 、ft232 还是别的,这三种中间的哪一种都不会最高只支持 115200 。
    淘宝标最高 115200 只能说明老板不懂技术,这种常识问题还轮不到翻 datasheet 的程度。
    有错误虚心学习就好了,没必要坚持自己错误的认知,我要是错了我也虚心学习,技术问题在能力范围内能弄明白就弄明白,什么回复到此为止,敢情我手机打那么多字白打?
    DataSheep
        43
    DataSheep  
       2022-04-04 01:54:59 +08:00 via iPhone
    @liuxu 你发的这些文档我也没必要去看,单从你回的 300 到 1mbps 就能看出来结果,难不成你连 1mbps 和 115200bps 也没分明白吗?那我真的是白打了,当我没说
    duke807
        44
    duke807  
       2022-04-04 02:00:26 +08:00 via Android
    @liuxu 了解一下,ti 和 analog 等大廠的 rs485 芯片 3.3v 版本最高可以支持 50Mbps ,5v 版本可以支持到 100Mbps
    我實際用過 50Mbps 的串口,用來跑 cdbus 協議
    日常 linux 嵌入式板子使用 3Mbps 串口打印 log ,可以增加系統啟動速度,在不關閉 log 打印的情況下,使用常用的 ft232 usb 轉串口
    duke807
        45
    duke807  
       2022-04-04 02:01:23 +08:00 via Android
    @duke807 “常用的 ft232 usb 轉串口” 指電腦端接收 log
    liuxu
        46
    liuxu  
       2022-04-04 09:57:49 +08:00 via Android
    @duke807 更好的芯片自然能支持更高的速率,cp2102 十几块,你说的 ft232 还是什么我以前也有一块,稍微贵一点,速率也也是用过
    liuxu
        47
    liuxu  
       2022-04-04 10:03:16 +08:00 via Android
    @DataSheep #43 噢不好意思是我搞错了,最高用过 921600
    liuxu
        48
    liuxu  
       2022-04-04 10:13:23 +08:00 via Android
    @duke807 #44 多谢提醒,我以为的串口转 usb 一直以为只能低速,没想到能达到 100Mbps 了,以前学习时买的板子还是用的 9 针还是 15 针的下载器,说是速率因为线材长短还是什么原因最好用低速,不能设置太高
    liuxu
        49
    liuxu  
       2022-04-04 10:44:00 +08:00 via Android
    @DataSheep #42
    嗯。。首先注明你是对的

    之所以我说话题到此为止,不是对你的话题有什么意见,是因为 V2EX 经常出现 op 有问题发帖,最后演变成几个层主打架,op 看热闹的情况,就像现在

    所以对于出现和 op 话题无关的话题点,我一般都是想及时制止


    最后首先感谢你对我错误的知识进行了纠正,其次感谢你对我的技术态度进行了纠正,以后我会注意

    如果对于我的回复让你有不好的情绪,这里十分抱歉
    duke807
        50
    duke807  
       2022-04-04 12:31:14 +08:00 via Android
    串口转 usb 到不了 100Mbps
    常用的 usb 轉串口 ft232 只能到 3Mbps
    ft232h 帶 h 的能到 12Mbps ,不過它更多的是用來做 usb 轉 spi
    我日常使用的 MCU 板子和 usb 轉 485 使用 cdbus 控制器,常用 10Mbps
    duke807
        51
    duke807  
       2022-04-04 12:35:09 +08:00 via Android
    @liuxu 9 針還是 15 針的說的應該是 rs232 ,rs232 速度快不了,來回轉換太多次,ttl 短距離使用可以快很多,想傳輸更遠,更抗干擾則用 rs485
    ALLROBOT
        52
    ALLROBOT  
    OP
       2022-04-04 13:15:24 +08:00
    真是日了狗,传感器厂商因为疫情管控,技术客服放假😅

    算了,网上下个 EMG 训练集用吧
    liuxu
        53
    liuxu  
       2022-04-04 15:10:23 +08:00
    @duke807 好多谢,是时候加钱上 rs485 了
    ALLROBOT
        54
    ALLROBOT  
    OP
       2022-04-04 21:03:41 +08:00
    屮!白天输出上万的异常值,今晚居然正常输出了

    值正好 0~50😲
    ALLROBOT
        55
    ALLROBOT  
    OP
       2022-04-04 21:24:46 +08:00
    等等,我不小心把 GND 接到 ADC 引脚了,当我没说 54 楼的话吧😂
    Cu635
        56
    Cu635  
       2022-04-04 22:57:11 +08:00
    @ALLROBOT
    根据 XIAO 所用的 ATSAMD218A-MU 手册,它 ADC16 位的分辨率是通过降低采样率得到的。

    “用啥线比较好,杜邦线很多 Arduino 书籍都用它描述电路草图,我不大清楚有啥高质量的线”
    @DataSheep 的意思不是杜邦线这个东西如何,而是不同厂家、不同批次的线质量差别太大……
    不过“选用质量高一点的”,这话说的容易,实际做起来也只能挑选一个口碑高一点的店铺这种了。


    @liuxu
    并不是,115200 只不过是典型值里面最大的那个。
    至于 cp2102 ,那个是 cp2102 的问题。我这边的 cp2102 ,用软件设定成 1500000 baud ,windows 下连接板子正常使用,在 linux 下的话就是短路自身的 tx 和 rx 收发都正常,连接到同一块板子上就是乱码了。应该还是因为 cp2102 芯片比较低端的缘故。
    ALLROBOT
        57
    ALLROBOT  
    OP
       2022-04-05 11:48:02 +08:00
    @Cu635 #56 16bit 采样频率已经够满足所需了,感谢指教
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1031 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:50 · PVG 03:50 · LAX 11:50 · JFK 14:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.