完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我是ML505卡和I2C总线的新用户。
我在ML505的Virtex 5FPGA中有一个I2C主内核,SCL和SDA信号连接到U27& 根据ML505用户指南文档(UG347第51页)的T29引脚。 当我去实验室时,我可以通过I2C总线与VGA输入设备(Analog Devices AD9980 - I2C设备ID 0x4C)进行通信,没有任何问题。 但是,当我尝试与DVI输出设备(Chrontel CH7301C - I2C设备ID 0x76)通信时,我没有得到确认。 我决定编写代码来测试所有128个7位I2C地址,看看哪些给了我一个ACK。 除了0x4C(VGA输入设备)之外,我还从地址0x37和0x50到0x57接收到确认。然后我尝试使用其他9个其他I2C设备ID读取寄存器0x4B(Chrontel CH7301C的设备ID寄存器的地址)。 根据Chrontel文档,他们都没有返回我期望的0x17值。 谁能解释一下: 1)当文档仅列出该I2C总线上的3个设备时,为什么我会从显然有10个设备获得响应? 那些其他设备是什么? 2)3个设备中的一个是DVI输出连接器,表1-35列出了地址= N / A. 为什么设备有N / A地址? 怎么访问? 3)我可能做错了什么让我无法与CH7301C部件通信? 谢谢, 史蒂夫 |
|
相关推荐
10个回答
|
|
忽略之前的笔记。
TheChrontel器件处于复位状态,因此它不响应I2C命令。 一旦我将低电平有效复位连接到正确的极性,器件就会按预期进行通信。 史蒂夫 在原帖中查看解决方案 |
|
|
|
我进一步了解了DVI连接器,发现I2C总线在连接器上有2个引脚。
如果我断开DVI电缆,之前已确认的其他9个设备ID(除0x4c之外)不再执行此操作。 所以我可以回答问题1和2(额外的设备在我通过DVI电缆连接的监视器中)。 但是,我仍然感到疑惑,为什么我没有得到Chrontel设备的响应。 我可以运行ML505附带的演示,所以我知道设备正在工作(不知何故,演示设计必须能够通过I2C与设备通信)。 有什么不同我需要做的事情(除了明显更改设备ID)与Chrontel设备通信,而不是其他设备(AD9980和监控设备),我可以通过确认回应? 任何帮助将不胜感激。 谢谢, 史蒂夫 |
|
|
|
|
|
|
|
你好,
请你这么好,告诉我们你使用的是哪个I2C IP核? 我有一个ML507板,但我遇到了严重的问题,实现了总线的正常运行(我根本没有得到任何ACK)。 可能我正在使用的核心有点搞砸了。 感谢你并致以真诚的问候, D. 消息由dpavli编辑于07-17-2009 04:54 AM |
|
|
|
dpavli,
我正在使用opencores.org的I2C内核。 史蒂夫 附: 我现在可以与Chrontel设备通信,但我还没有弄清楚用于显示测试屏幕的寄存器设置。 如果你想出来,请告诉我。 |
|
|
|
|
|
|
|
不,我没有尝试过这个核心。
|
|
|
|
以下是一些可以帮助您使用CH7301的信息。
以下应该会给你一些不错的颜色吧:) / *(RAB,DATA,DEV_ADDR)* / write_iic_dvi(0x9C,0x00,CH7301_addr); // 0x00 1x像素频率和非反转XCLK // 0x01 2x像素频率// 0x04反转XCLK // 0x05 2x反转XCLK write_iic_dvi(0x9D,0x48,CH7301_addr); // 0x48是默认的write_iic_dvi(0x9F,0x9C,CH7301_addr); // 0x9C IDF = 4,有效高电平VSYNC和HSYNC // 0x84 IDF = 4,有效低电平VSYNC和HSYNC write_iic_dvi(0xA1,0x0D,CH7301_addr); // 0x0C为IDF = 4启用VSYNC和HSYNC输出数据// 0x0D为IDF = 4启用VSYNC,HSYNC和RGB输出// 0x04禁用IDF = 4的VSYNC,HSYNC和RGB输出 write_iic_dvi(0xB3,0x08,CH7301_addr); // 0x08表示频率65MHz write_iic_dvi(0xB4,0x16,CH7301_addr); // 0x16表示频率65MHz write_iic_dvi(0xB6,0x60,CH7301_addr); // 0x60表示频率65MHz write_iic_dvi(0xC8,0x19,CH7301_addr); // 0x18无测试模式 - 使用输入数据// 0x19彩条测试模式输出// 0x1A水平亮度斜坡测试模式输出write_iic_dvi(0xC9,0xC0,CH7301_addr); // 0x01所有电路断电// 0xC0 DVI处于正常功率函数write_iic_dvi(0xD6,0x01,CH7301_addr); // 0x00禁用YCrCb到RGB转换// 0x01启用YCrCb到RGB转换 消息由mmcshmi11于03-10-2010编辑04:07 PMMessage由mmcshmi11于03-10-2010 04:08 PM编辑 |
|
|
|
你好,stevesantee。我是一名学生。
我正在使用ML507板。 我无法与AD9980和CH7301C通信。 你能把代码交给我吗? 非常感谢。我的电子邮件:njsssyangjin@163.com |
|
|
|
我也是
使用ML505板及其I2C总线。 我有一个I2C主控核心 来自OpenCores,我也修改了一下。 我可以沟通 通过I2C到VGA输入设备(Analog Devices AD9980 - I2C器件ID 0x4C) 和没有的DVI输出设备(Chrontel CH7301C - I2C设备ID 0x76) 问题。 但是,我 喜欢在我的显示器中执行测试模式,以确保我写的是 设备以正确的方式。 为了做到这一点,我发送了以下字节 DVI输出设备地址0x48(TSTP - 在设备的DataSheet中指定 在第21页):“00011001”。 但是,我希望在我的显示器中看到Color 条形测试模式,但即使在我之后,显示器仍然没有任何信号 写入寄存器0x48。 我快 我确实正确地写了它,因为我执行了写操作然后读了 该寄存器,其值显示在电路板的LED中。 我不 知道如何进行。 任何人都可以帮我解决这个问题? |
|
|
|
只有小组成员才能发言,加入小组>>
2415 浏览 7 评论
2821 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2292 浏览 9 评论
3372 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2458 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1085浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
579浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
441浏览 1评论
2000浏览 0评论
723浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 16:02 , Processed in 2.063599 second(s), Total 95, Slave 79 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号