完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,目前,我的安装是采用MTCH6102供电触摸表面(5x5)。SCK和SDA直接连接到ATK芯片上的SCK和SDA引脚。我需要添加第二个触摸表面,但是,I2C地址在引导之前不能改变。如何改变一个触摸表面的地址以区分它们?这种改变必须坚持重启。文件说要联系微芯片支持。尝试论坛,谢谢大家
以上来自于百度翻译 以下为原文 Hello, currently, my setup is employing a MTCH6102 powered touch surface (5x5). SCK and SDA directly connected to SCK and SDA pins on ATMega32u4 chip. I need to add a second touch surface, however, the I2C address cannot be changed before boot. How to change the address of one touch surface in order to distinguish between them? This change has to persist over reboot. Documentation says to contact Microchip support. Trying forum as well. Thanks a lot in advance Attached Image(s) |
|
相关推荐
12个回答
|
|
你好,请提交一个微芯片支持票,谢谢。
以上来自于百度翻译 以下为原文 Hello, Please submit a Microchip support ticket for this. Thanks |
|
|
|
努力尝试。目前等待第二天的“长达30分钟”的注册确认。支持号码,没有人拿起。有什么想法怎么办?
以上来自于百度翻译 以下为原文 Trying to. Currently waiting a second day for their "up to 30 minutes" confirmation of a registration. The support numbers, no one picks up. Any ideas what to do? |
|
|
|
您好,默认地址(0x25)是在寄存器0x43。这一个你可以改变,使它与NV和CNF位…RTM永久。
以上来自于百度翻译 以下为原文 Hello, The default address (0x25) is in register 0x43. This one you can change and make it permanent with the NV and CNF bits... RTM |
|
|
|
//不能编辑我的文章,因为我得到访问否认什么是NV和CNF位?
以上来自于百度翻译 以下为原文 //can't edit my post as I am getting access denied error What are the NV and CNF bits? |
|
|
|
我建议你从头到尾详细阅读数据表。你会如何看待非易失性和配置?
以上来自于百度翻译 以下为原文 I suggest you read the data sheet in detail from the beginning to the end. What would you think about Non Volatile and CoNFiguration :-) |
|
|
|
谢谢你的提醒。学习诀窍,这是我第一次体验这种类型的设置。重写寄存器的想法已经足够了。对于其他的学习者来说,他的意思是:为了改变MTCH6102的设置,你需要(1)用自定义设置重写寄存器,然后(2)将CFG(不是由Dangg指示的CNF)设置为1,以强制改变。见配置RAM内存映射,如果您想要改变的设置需要强制设置CFG为1。请参阅附件图片以了解更多信息。唯一的问题是,它对我来说还不起作用。1。我添加了一个行(在改变I2CADDR寄存器之后)写入CMD寄存器(0x04),并将CFG位设置为1。(字节写入=0x20)2。我读了CMD寄存器,检查它是否被重写。是的,返回0x20.3。延迟50ms等待命令执行。4。重新读取CMD寄存器以检查命令是否被执行-在文档中,它说,CFG位在命令完成时清除-是的,返回0x00,CFG位清除。5。尝试使用新地址(0x23)读取寄存器I2CADDR(0x43)。返回错误:2和36。尝试使用新地址(0x23)读取TestRealStand寄存器。返回错误:2和37。试图使用默认地址(0x25)重新注册I2CADDR(0x43)。返回0x23。添加代码和来自BurbBurt的输出。当使用新地址时,在BuBurDATE输出中,只看到错误代码。我丢失了什么?
以上来自于百度翻译 以下为原文 Thanks for the heads up. Learning the ropes, this is my first experience with this type of setup. Thought rewriting the register was enough. For fellow learners out there, what he meant is: In order to change the settings of MTCH6102, you need to (1) rewrite the registers with your custom settings and then (2) set CFG (not CNF as indicated by Denge) bit to 1 in order to coerce the changes. See Configuration RAM Memory Map if the settings you want to change need to be coerced by setting CFG to 1. See attached pictures for more info. The only issue is, it does not work for me yet. 1. I added a line (after changing the I2CADDR register) that writes to CMD register (0x04) and sets CFG bit to 1. (byte written = 0x20) 2. I read the CMD register to check whether it was overwritten. Yes, returns 0x20. 3. Delay for 50ms to wait for the command to be executed. 4. Re-read CMD register to check whether command was executed - in documentation, it says, the CFG bit clears when the command is finished - Yes, returns 0x00, the CFG bit cleared. 5. Trying to read register I2CADDR (0x43) using the new address (0x23). Returns Error: 2 and 3 6. Trying to read GESTURESTATE register using the new address (0x23). Returns Error: 2 and 3 7. Trying to read register I2CADDR (0x43) using the default address (0x25). Returns 0x23. Adding code as well as output from buspirate. When using the new address, in the buspirate output, only the error codes are seen. //Read the I2C address register (0x43) Serial.print("I2C Address at 0x25: "); Serial.println(readRegister(MTCH6102_I2CADDR_DEFAULT, MTCH6102_I2CADDR), HEX); //[0x4A+0x43+[0x4B+0x23-] //Overwrite default address with 0x23 writeRegister(MTCH6102_I2CADDR_DEFAULT, MTCH6102_I2CADDR, MTCH6102_I2CADDR_RIGHT); //[0x4A+0x43+0x23+] Serial.println("Register 0x43 overwritten with 0x23"); Serial.println(); //Coerce the configuration changes writeRegister(MTCH6102_I2CADDR_DEFAULT, MTCH6102_CMD, MTCH6102_CMD_CFG); //[0x4A+0x04+0x20+] Serial.println("Changes coerced."); Serial.print("CMD register: "); Serial.println(readRegister(MTCH6102_I2CADDR_DEFAULT, MTCH6102_CMD), HEX); //[0x4A+0x04+[0x4B+0x20-] Serial.println(); delay(50); //takes between 45-40ms Serial.print("CMD register: "); Serial.println(readRegister(MTCH6102_I2CADDR_DEFAULT, MTCH6102_CMD), HEX); //[0x4A+0x04+[0x4B+0x00-] //Read I2CADDR register, using the NEW address (0x23) Serial.print("I2C Address at 0x23: "); Serial.println(readRegister(MTCH6102_I2CADDR_RIGHT, MTCH6102_I2CADDR), HEX); //[0x46-][0x47-] //Read I2CADDR register, using the DEFAULT address (0x25) Serial.print("I2C Address at 0x25: "); Serial.println(readRegister(MTCH6102_I2CADDR_DEFAULT, MTCH6102_I2CADDR), HEX); //[0x4A+0x43+[0x4B+0x23-] Serial.print("GESTURESTATE: "); gesture_id = readRegister(MTCH6102_I2CADDR_RIGHT, MTCH6102_GESTURESTATE); [0x46-][0x47-] Serial.println(gesture_id, HEX); What am I missing? Attached Image(s) |
|
|
|
我怀疑新的地址直到芯片被电源循环才生效。
以上来自于百度翻译 以下为原文 I suspect the new address does not take effect until the chip has been power cycled. |
|
|
|
在这一点上,我不写对非易失性存储器的更改,所以我相信芯片的功率循环消除了变化。无论是哪种方式,测试它,都没有修复它。将尝试使用Denge所建议的NV位写入非易失性存储器。MTCH6102文档提出了两种方法,即如何配置芯片,见附图。这里是调试输出(这是按照我上面发布的代码返回到串行的):还有其他的想法吗?
以上来自于百度翻译 以下为原文 At this point, I do not write the changes to non-volatile memory, so I believe power-cycling the chip removes the changes. Either way, tested it, did not fix it. Will try to write to non-volatile memory using the NV bit as suggested by Denge. MTCH6102 documentation suggests two ways, how to configure the chip, see attached image. Here is the debug output (this is returned to Serial, as per the code I posted above): I2C Address at 0x25: 25 Register 0x43 overwritten with 0x23 Changes coerced. CMD register: 20 Wait for 50ms. CMD register: 0 I2C Address at 0x23: Error: 2 3 I2C Address at 0x25: 23 GESTURESTATE: Error: 2 3 Any other ideas? Attached Image(s) |
|
|
|
如果可以在没有电源周期的情况下进行,那么在50ms之后,您将无法读取CMD寄存器,因为新的地址已经生效。您试过把它写入NV了吗?
以上来自于百度翻译 以下为原文 If it was possible to do it without a power cycle, then you would not be able to read the CMD register after 50ms, because the new address would have taken effect. Have you tried writing it to NV yet? |
|
|
|
这是保存非易失性内存的正确方法吗?
以上来自于百度翻译 以下为原文 Is that the right way to save to nonvolatile memory? |
|
|
|
我的猜测是设置CFG,然后NV。注意,我从来没有使用过这个芯片,我只是在读同样的DS。
以上来自于百度翻译 以下为原文 My guess would have been to set CFG, and then NV. Note, I've never used this chip, I'm just reading the same DS you are. |
|
|
|
是的,我猜。不幸的是,它没有搞错:设置NV钻头工作。随后,有必要断电和芯片上的芯片,但是,有人知道为什么不用写NV来改变设置不起作用吗?
以上来自于百度翻译 以下为原文 Yes, I guess. Unfortunately, it did not work Edit: Setting the NV bit worked. Subsequently, it is necessary to power off and on the chip. However, anyone knows why changing the settings without writing to NV does not work? |
|
|
|
只有小组成员才能发言,加入小组>>
5204 浏览 9 评论
2016 浏览 8 评论
1942 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3188 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2244 浏览 5 评论
755浏览 1评论
641浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
551浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
654浏览 0评论
554浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-5 22:43 , Processed in 1.260331 second(s), Total 68, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号