haoDIY创好电子音响电脑科技DIY小制作发明移动版

主页 > 电子DIY > 工具仪表 > 仪器仪表 >

谁说壁虎没用?用efm32做个USB电压电流表(可诱导QC2.0)(2)

  •             case 1:
  •             {
  •                 for(i = 0; i < 20000; i++);
  •                 DAC_Value = 0x2e8;
  •                 DAC_WriteData(DAC0, DAC_Value, 0);
  •                 adc_change_input_ch(4);
  •                 ADC0_get_send_result();
  •                 adc_change_input_ch(6);
  •                 ADC0_get_send_result();
  •                 adc_change_input_ch(5);
  •                 sample =  ADC0_get_result();
  •                 if(sample > 0x600 )
  •                 {
  •                     for(i = 0; i < 200; i++);
  •                     adc_change_input_ch(5);
  •                     sample =  ADC0_get_result();
  •                     if(sample > 0x600 )
  •                     {
  •                         working_satae = 2;
  •                     }
  •                 }
  •                 break;
  •             }
  •             case 2:
  •             {
  •                 DAC_Enable(DAC0, 0, 1);
  •                 for(i = 0; i < 20000; i++);
  •                 DAC_Value = 0x2e8;
  •                 DAC_WriteData(DAC0, DAC_Value, 0);
  •                 adc_change_input_ch(4);
  •                 ADC0_get_send_result();
  •                 adc_change_input_ch(6);
  •                 ADC0_get_send_result();
  •                 adc_change_input_ch(5);
  •                 sample =  ADC0_get_result();
  •  
  •                 if(sample < 0xd0 )
  •                 {
  •                     for(i = 0; i < 20000; i++);
  •                     adc_change_input_ch(5);
  •                     sample =  ADC0_get_result();
  •                     if(sample < 0xd0 )
  •                     {
  •                         GPIO_PinOutSet(gpioPortA, 8);
  •                         GPIO_PinModeSet(gpioPortE, 13, gpioModePushPullDrive, 1);
  •                         GPIO_PinOutSet(gpioPortE, 13);
  •                         DAC_Value = 0xfff;
  •                         DAC_WriteData(DAC0, DAC_Value, 0);
  •                         GPIO_PinOutClear(gpioPortA, 9);
  •                         working_satae = 3;
  •                     }
  •                     else
  •                     {
  •                         GPIO_PinOutClear(gpioPortA, 8);
  •                         GPIO_PinOutSet(gpioPortA, 9);
  •                         GPIO_PinOutClear(gpioPortE, 13);
  •                         GPIO_PinModeSet(gpioPortE, 13, gpioModeInput, 0);
  •                     }
  •  
  •                 }
  •  
  •                 break;
  •             }//case 1
  •             case 3:
  •             {
  •                 DAC_Enable(DAC0, 0, 1);
  •                 for(i = 0; i < 20000; i++);
  •                 adc_change_input_ch(4);
  •                 ADC0_get_send_result();
  •                 adc_change_input_ch(6);
  •                 ADC0_get_send_result();
  •                 adc_change_input_ch(5);
  •                 sample = ADC0_get_result();
  •                 if(sample > 0x7a0)
  •                 {
  •                     for(i = 0; i < 20000; i++);
  •                     //adc_change_input_ch(5);
  •                     sample =  ADC0_get_result();
  •                     if(sample > 0x780)
  •                     {
  •                     working_satae = 1;
  •                     GPIO_PinOutClear(gpioPortA, 8);
  •                     GPIO_PinOutSet(gpioPortA, 9);
  •                     GPIO_PinOutClear(gpioPortE, 13);
  •                     GPIO_PinModeSet(gpioPortE, 13, gpioModeInput, 0);
  •                     }
  •                 }
  •                 break;
  •             }//case 2
  •         }
  •     }
  • }

  • 代码上传到githbub了,怕你们看不到,特意把这行大号字体标红https://github.com/posystorage/USB-voltmeter

    最后的口头禅,壁虎手册这么好看,你们还不来玩
    谁说壁虎没用?用efm32做个USB电压电流表(可诱导QC2.0)(2)


    最后的最后,说下这个usb小表后期的改进计划
    0、如果有一定数量的坛友对这个项目感兴趣或者也想玩一发的,我会画pcb并把这货做成个产品级别的东西,如果没有,那项目就到这了,我也玩够了,壁虎还有其他好玩的呢。
    如果项目继续,几方面计划
    1、增加显示装置,估计会设计成数码管与oled兼容款pcb,低端数码管,高大上oled
    2、现在快速充电协议那么多,除了qc2.0还有qc3.0、mtk-pe、海思快充、蓝绿大厂的快充等等等等。多支持几个是比较好玩的,也是大家喜闻乐见的。但是这有前提,首先要有资料,协议资料这还是比较麻烦的,很难找。还有就是要有对应的实验样品,快充充电头都比较贵,一个40-50的样子有些估计还不止,我一穷学生,还是搞不起这么多快充头。所以如果团购的话,就算PCB可能很便宜,就几毛一片,平摊这些费用后,估计要3-5元的一小片样子,先说明。
    3、取样电阻由100毫欧改成10毫欧,然后配一枚运放。
    4、原始数据要处理,平滑,校准偏差什么的
    5、整个充电过程数据记录到单片机内部。这货有128k的程序空间,现在就用了7k的大小,最终完成可以最多用四分之一,后面剩余的大量空间可以记录充电过程数据,当然也会有专门的上传机制什么的,传到电脑可分析,这个再说。

    就这些,欢迎砸m币



    @zty615 坛友的作品:不用程序 只用通用零件装出QC2.0诱骗器,公布网络上你搜不出来的技术细节(完美完结):http://bbs.mydigit.cn/read.php?tid=1734268

    (责任编辑:admin)
    haoDIY创好电子 版权所有,电话微信13977534587