DavidZH

  • 2019-08-12
  • 回复了主题帖: 我的TPMS胎压监测的坎坷之路

    老板,快来找我们采购芯片;

  • 2019-08-10
  • 发表了主题帖: 基于PSOC6开发板模拟I2C 解X-NUCLEO-IKS01A3的LIS2DW12

    今天解析LIS2DW12, 模拟IIC接口,先验证ID: uint8_t LIS2DW12_Read_Date(uint8_t SlaveAddress, uint8_t RegAddress) { uint8_t recvDate; uint8_t succ, stime=0; I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); while((succ !=1)&&(stime<3)) { I2C_Stop(); I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); //写 stime++; } I2C_Send_Byte(RegAddress); I2C_Start(); I2C_Send_Byte(SlaveAddress | 0x01); //读 recvDate = I2C_Read_Byte(1); //NACK I2C_Stop(); return recvDate; } printf("PID_LSM2 = %X\r\n",LIS2DW12_Read_Date(LIS2DW12_ADD, 0x0F)); 此内容由EEWORLD论坛网友DavidZH原创,如需转载或用于商业用途需征得作者同意并注明出处

  • 发表了主题帖: 基于PSOC6开发板模拟I2C 解X-NUCLEO-IKS01A3的LSM6DSO

    本帖最后由 DavidZH 于 2019-8-10 23:09 编辑      今天解析LSM6DSO, 接口I模拟IIC, 驱动还是按照原来的, 验证读ID: uint8_t LSM6DSO_Read_Date(uint8_t SlaveAddress, uint8_t RegAddress) { uint8_t recvDate; uint8_t succ, stime=0; I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); while((succ !=1)&&(stime<3)) { I2C_Stop(); I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); //写 stime++; } I2C_Send_Byte(RegAddress); I2C_Start(); I2C_Send_Byte(SlaveAddress | 0x01); //读 recvDate = I2C_Read_Byte(1); //NACK I2C_Stop(); return recvDate; } printf("PID_LSM = %X\r\n",LPS22HH_Read_Date(LSM6DSO_ADD, 0x0F)); 寄存器文件: 此内容由EEWORLD论坛网友DavidZH原创,如需转载或用于商业用途需征得作者同意并注明出处

  • 发表了主题帖: 基于PSOC6开发板模拟I2C 解X-NUCLEO-IKS01A3的LPS22HH

         本次解析的是LPS22HH 芯片, 接口还是IIC,  驱动还是按照原来的, 先实验读ID; uint8_t LPS22HH_Read_Date(uint8_t SlaveAddress, uint8_t RegAddress) { uint8_t recvDate; uint8_t succ, stime=0; I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); while((succ !=1)&&(stime<3)) { I2C_Stop(); I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); //写 stime++; } I2C_Send_Byte(RegAddress); I2C_Start(); I2C_Send_Byte(SlaveAddress | 0x01); //读 recvDate = I2C_Read_Byte(1); //NACK I2C_Stop(); return recvDate; } printf("PID_LPS = %X\r\n",LPS22HH_Read_Date(LPS22HH_ADD, 0x0F)); 此内容由EEWORLD论坛网友DavidZH原创,如需转载或用于商业用途需征得作者同意并注明出处

  • 2019-08-07
  • 回复了主题帖: 快来访问泰克高速串行通信专题 配置您的专属解决方案 赢好礼! 颁奖啦

    确认信息无误,麻烦兑换成E金币,谢谢EEWORLD 和SOSO ;

  • 回复了主题帖: 【免费试用】彻底改变 HMI !TI 最新 MSP430 开发板组合套件,尝鲜体验中

    soso 发表于 2019-8-7 14:00 这是要试用的节奏吗?把测评需求写的详细些:)
      , 时间腾不过来, CYPRESS的触摸我还是比较熟悉;看看其他大侠测试的结果;

  • 回复了主题帖: 【免费试用】彻底改变 HMI !TI 最新 MSP430 开发板组合套件,尝鲜体验中

    来和CYPRESS的触摸比较下,看谁的更好用? 触摸不是TI的强项啊;

  • 回复了主题帖: 下载100%有礼|前30名合格下载 TE 最新传感器白皮书的工程师

    本帖最后由 DavidZH 于 2019-8-7 13:41 编辑 截图如下:

  • 2019-08-06
  • 回复了主题帖: 基于PSOC6开发板模拟I2C 解X-NUCLEO-IKS01A3的HTS221

    dcexpert 发表于 2019-7-30 10:37 可以成功读取ID寄存器,就只需要解析数据。和其它传感器不同在于需要先读取内置的数据,然后进行插值计算, ...
    多谢指教;

  • 2019-07-30
  • 发表了主题帖: 基于PSOC6开发板模拟I2C 解X-NUCLEO-IKS01A3的HTS221

           上一回我们已经验证了I2C 能正确运行,由于HTS221和STTS751 都连在同一I2C BUS总线上,用同一个i2c 程序进行分时复用读取即可; 具体代码如下: uint8_t HTS221_Read_Date(uint8_t SlaveAddress, uint8_t RegAddress) { uint8_t recvDate; uint8_t succ, stime=0; I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); while((succ !=1)&&(stime<3)) { I2C_Stop(); I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); //写 stime++; } I2C_Send_Byte(RegAddress); I2C_Start(); I2C_Send_Byte(SlaveAddress | 0x01); //读 recvDate = I2C_Read_Byte(1); //NACK I2C_Stop(); return recvDate; } 测试: PID = HTS221_Read_Date(HTS221_ADD, HTS221_WHO_AM_I_REG); printf("PID = %X \r\n", PID); CyDelay(800); 具体代码可以参考: 此内容由EEWORLD论坛网友DavidZH原创,如需转载或用于商业用途需征得作者同意并注明出处

  • 2019-07-27
  • 回复了主题帖: 基于PSOC6开发板模拟I2C 解X-NUCLEO-IKS01A3的STTS751;

    本帖最后由 DavidZH 于 2019-7-27 23:04 编辑
    littleshrimp 发表于 2019-7-27 22:12 为什么不把两个板子直接叠起来?不是更方便?
    多谢提醒,的确; ST_X-NUCLEO-IKS01A3 板子上有2组I2C, 其中I2C1 接HTS221,LPS22HH,STTS751,连接在开发板上, 另外一组I2C2, 连接LIS2DW12,LSM6DSO 连接板子的SDA,SCL,  可以直接和开发板连接;

  • 回复了主题帖: arduino的X-NUCLEO-IKS01A3驱动

    dcexpert 发表于 2019-7-25 16:34 arduino的好处是容易复制和使用,缺点是难以改进和调试。
    是啊,都封装成C++;

  • 回复了主题帖: 求X-CUBE-MEMS1固件包

    链接:https://pan.baidu.com/s/1jImRWnRzGwyJGf_AmJ1S0Q  提取码:0i7j  复制这段内容后打开百度网盘手机App,操作更方便哦

  • 发表了主题帖: 基于PSOC6开发板模拟I2C 解X-NUCLEO-IKS01A3的STTS751;

    本帖最后由 DavidZH 于 2019-7-27 21:35 编辑           周末终于有时间来研究下X-NUCLEO-IKS01A3,先从简单的开始,STTS751  是ST的I2C接口的数字温度传感器; 硬件: STTS751  是接的I2C1, 地址0x94, 电压是不常见的2.5V,如果是单独用的话,还得加LDO; 软件:         I2C 底层协议:开始,结束, 发数据和接受数据,ACK, NACK; 具体要看怎么自己怎么写; void I2C_Start(void); void I2C_Stop(void); uint8_t I2C_Send_Byte(uint8_t oneByte); uint8_t I2C_Read_Byte(uint8_t bLSByte);        大概的流程图很简单, 写器件地址,写寄存器地址和读数据即可; uint8_t STTS751_Write_Cmd(uint8_t SlaveAddress, uint8_t RegAddress, uint8_t Cmd) { uint8_t succ, stime=0; I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); while((succ !=1) &&(stime <3)) { I2C_Stop(); I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); stime++; } succ = I2C_Send_Byte(RegAddress); succ = I2C_Send_Byte(Cmd); I2C_Stop(); return succ; } uint8_t STTS751_Read_Date(uint8_t SlaveAddress, uint8_t RegAddress) { uint8_t recvDate; uint8_t succ, stime=0; I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); while((succ !=1)&&(stime<3)) { I2C_Stop(); I2C_Start(); succ = I2C_Send_Byte(SlaveAddress & 0xfe); //写 stime++; } I2C_Send_Byte(RegAddress); I2C_Start(); I2C_Send_Byte(SlaveAddress | 0x01); //读 recvDate = I2C_Read_Byte(1); //NACK I2C_Stop(); return recvDate; } 从原理图上看给的地址是0x94; Main 函数如下: int main(void) { uint8_t PID; uint8_t TempH, TempL; double Temp; Cy_SCB_UART_Init(Uart_Printf_HW, &Uart_Printf_config, &Uart_Printf_context); Cy_SCB_UART_Enable(Uart_Printf_HW); __enable_irq(); /* Enable global interrupts. */ for(;;) { while(1) { PID =STTS751_Read_Date(0x94, 0xfe); TempH = STTS751_Read_Date(0x94, 0x00); printf("TempH = %d \r\n", TempH); printf("PID = %X \r\n", PID); } } } 有个Production ID,还有一个温度值, 32℃, 好热啊!!! PSOC6 和X-NUCLEO-IKS01A3还挺配的,有秋水共长天一色的感觉; 此内容由EEWORLD论坛网友DavidZH原创,如需转载或用于商业用途需征得作者同意并注明出处

  • 2019-07-25
  • 回复了主题帖: arduino的X-NUCLEO-IKS01A3驱动

    dcexpert 发表于 2019-7-21 22:33 开始没有输出,很可能是arduino接口的接触不太好。
    Arduio有直接例子,还有CPP的函数,写的非常好,就是很难理解,

  • 2019-07-18
  • 回复了主题帖: 基于STM32F411RE的ST MEMS传感器板(IKS01A3) 开箱体验!

    hujj 发表于 2019-7-17 20:20     请问楼主使用的是这个网页打开图形操作界面吗?我每次点击最后都是打不开页面,最长的时间等 ...
    我是直接在ST官网下载的,去官网找下,不行的话,再告诉我;

  • 2019-07-17
  • 回复了主题帖: 造车狂想|阅读 PI 汽车电子资料,说说你对造车的那些看法!

    BLDC是不可缺少的部分PI的BLDC集成度高,性能好,可靠性高,在未来的汽车中有着重要作用

  • 发表了主题帖: 基于STM32F411RE的ST MEMS传感器板(IKS01A3) 开箱体验!

       终于拿到了ST MEMS传感器板(IKS01A3),先来体验下传感器板的应用;     所需文件:X-CUBE-MEMS1;最新的V6.2, 包括例子和PC端工具Unicleo-GUI ;    第一、波形显示:Unicleo-GUI  显示;                  Unicleo-GUI由ST提供,以波形的形式来显示MEMS传感器数据的PC端工具, 在X-CUBE-MEMS1 中提供了相关的HEX & BIN 文件;直接烧录即可; 在X-CUBE-MEMS1 V6.2 中支持的NUCLEO 如下:可能有些小伙伴手上没有对应的Nucleo 板子,我手上只有F411, 用F401 也可以; 将X-CUBE-MEMS1\STM32CubeExpansion_MEMS1_V6.2.0\Projects\STM32F401RE-Nucleo\Examples\IKS01A3\DataLogExtended\Binary\DataLogExtended.hex 直接烧录板NUCLEO 中; 然后打开Unicleo-GUI 就可以显示传感器波形了; 同时可以选择6个传感器数据,爽歪歪; 第一、波形显示:串口 显示;、 烧录X-CUBE-MEMS1\STM32CubeExpansion_MEMS1_V6.2.0\Projects\STM32F401RE-Nucleo\Examples\IKS01A3\DataLogTerminal\Binary\DataLogTerminal.hex; 打开串口工具配置如下就可以显示; 总结:ST的MEMS上手体验很好,显示波形和数据方式都很好,可以作为移植其他平台的谁参考;有了以上基础,可以直接移植PSOC6 了; 此内容由EEWORLD论坛网友DavidZH原创,如需转载或用于商业用途需征得作者同意并注明出处

  • 2019-07-16
  • 回复了主题帖: 获奖名单:参与 PI 节能小测试,贡献工程师的力量,一起守护地球!

    个人信息确认无误,换成等值E金币,TKS

  • 2019-07-15
  • 回复了主题帖: 1、基于Nucleo-L476L的HTS221等全部传感器的驱动

    好吧,比我快一部,板子还没有到;

统计信息

已有115人来访过

  • 芯币:875
  • 好友:1
  • 主题:65
  • 回复:1576
  • 课时:--
  • 资源:4

留言

你需要登录后才可以留言 登录 | 注册


DavidZH 2018-3-13
建议按照完整版,
zhengbang 2018-3-6
您好,我在配置Visual Studio :时,工具栏里没有Embeded Tools Manager,
请问这是什么情况,百度也没找到,文档也没找到。
升级VS2017也没有Embeded Tools Manager选项。  请问能帮忙吗  谢谢
查看全部