完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我很难用ES3 CY8C3666测试I2C唤醒特性。基本读写从属功能很好,但是它没有唤醒。我不知道我是否错过了什么。有人能帮忙吗?我列出了一个基本的I2C SLAV的硬件设置和来源。谢谢。
硬件设置如下: 模式:从数据速率:100 KPS实现:固定功能地址解码:硬件从地址:0x3f引脚连接:I2C0使唤醒从睡眠模式:是的。 引脚设置:输入:双向,OpenDrain Low,输入缓冲器启用,输入同步输出:快速,VDDIO,4MA源/ 8MA接收器,输出同步 来源: 包括: UIT8 8I2CRADADBASE〔128〕;UIT8 8 I2CWRESE缓冲器〔128〕;UtiT8 CopopCube; 空主程序(){/*将您的初始化/启动代码放在这里(例如MyStRestSistar())*/I2CySistTo();I2CyEnabLeIn();LeDyWrad(0); I2CYSLaveInWruteBuf(&;I2CWrreBuffe,128);I2CySavaEnItRead Buf(&;I2CREADBASH,128); cyglobalintenable;/*注释掉这行启用全局中断。* / 为(;;){ if(i2c_slavestatus() &;i2c_sstat_wr_cmpt){ for(cloopcount = 0;cloopcount <;i2c_slavegetwritebufsize();cloopcount ++){ i2creadbuffer [ cloopcount ] = i2cwritebuffer [ cloopcount ];} i2c_slaveclearwritestatus();i2c_slaveclearwritebuf();} 如果(i2c_slavestatus() &;i2c_sstat_rd_cmpt){ i2c_slaveclearreadstatus();i2c_slaveclearreadbuf();}如果(i2cwritebuffer [零] = = 0x24){ led_write(-1);i2c_sleep();cypmsaveclocks();CyPmSleep(pm_sleep_time_none,pm_sleep_src_i2c);CyPmRestoreClocks();i2c_wakeup();led_write(0);i2cwritebuffer [ 0 ] = = 0;} } } 以上来自于百度翻译 以下为原文 Hi, I am having trouble testing the I2C Wake feature using an ES3 CY8C3866. The basic read and write slave functionality works fine but it does not wake up. I cannot figure out if I am missing anything. Can anyone help? I am listing the hardware setup and source for a basic I2C Slave. Thanks. The hardware is setup as follows: Mode: Slave Data Rate: 100 kps Implementation: Fixed Function Address Decode: Hardware Slave Address: 0x3F Pin Connections: I2C0 Enable wakeup from Sleep Mode: Yes. Pin settings: Input: Bidirectional, OpenDrain Low, Input Buffer Enabled, Input Synchronized Output: Fast, Vddio, 4mA source/ 8mA sink, Output Synchronized Source: #include uint8 I2CReadBuffer[128]; uint8 I2CWriteBuffer[128]; uint8 cloopCount; void main() { /* Place your initialization/startup code here (e.g. MyInst_Start()) */ I2C_Start(); I2C_EnableInt(); LED_Write(0); I2C_SlaveInitWriteBuf( &I2CWriteBuffer, 128); I2C_SlaveInitReadBuf( &I2CReadBuffer, 128 ); CYGlobalIntEnable; /* Uncomment this line to enable global interrupts.*/ for(;;) { if ( I2C_SlaveStatus() & I2C_SSTAT_WR_CMPT ) { for ( cloopCount = 0; cloopCount < I2C_SlaveGetWriteBufSize(); cloopCount++ ) { I2CReadBuffer[cloopCount] = I2CWriteBuffer[cloopCount]; } I2C_SlaveClearWriteStatus(); I2C_SlaveClearWriteBuf(); } if ( I2C_SlaveStatus() & I2C_SSTAT_RD_CMPT ) { I2C_SlaveClearReadStatus(); I2C_SlaveClearReadBuf(); } if ( I2CWriteBuffer[0] == 0x24 ) { LED_Write(1); I2C_Sleep(); CyPmSaveClocks(); CyPmSleep(PM_SLEEP_TIME_NONE, PM_SLEEP_SRC_I2C); CyPmRestoreClocks(); I2C_Wakeup(); LED_Write(0); I2CWriteBuffer[0] == 0; } } } |
|
相关推荐
2个回答
|
|
NVM,我发现了这个问题。这是我的错。有以下几点。不管怎样,还是谢谢你。
“I2CWrimeBuff[0 ]=0; 以上来自于百度翻译 以下为原文 Nvm, I found the problem. It was my mistake. With the following. Thanks anyway. "I2CWriteBuffer[0] == 0;" |
|
|
|
要确保在PSoC3上使用I2C睡眠唤醒,
使用的I2C引脚应该是I2C0或I2C1。I2C0是对,I2C1是对。应启用地址匹配参数的唤醒。I2C应作为入睡前的唤醒源。除此之外,I2C组件应该在DeViCe处于休眠状态之前为睡眠模式操作做好准备,同样的事情可以使用API“I2CySLIPEVER()”来完成。在设备休眠后,组件活动模式配置必须使用API“I2CyRealCurrigFige()”来恢复。注意:I2C睡眠唤醒功能仅在PSoC2 ES3修订版上使用。 -U2 以上来自于百度翻译 以下为原文 Things to be made sure to use I2C Sleep wake up on PSoC3,
-U2 |
|
|
|
只有小组成员才能发言,加入小组>>
751个成员聚集在这个小组
加入小组2063 浏览 1 评论
1822 浏览 1 评论
3630 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1758 浏览 6 评论
1507 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
501浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
352浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
408浏览 2评论
353浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
850浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 08:23 , Processed in 0.809528 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号