完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我最近开始在ML505板上使用DVI视频输出设备Chrontel CH7301C,我遇到了一些问题。我之前的目标是生成一个测试模式视频以验证我的设计。为了做到这一点,我
使用我从opencores.org下载的I2C主控制器,通过I2C配置Chrontel CH7301C器件的寄存器。我很确定我写的正确,因为在写突发之后,我可以读取值 我以前写的。但是,我不能百分百肯定,因为设备不会生成测试模式。所以,这里是我认为问题最可能的地方:1- I2C主设备 核心工作不正常2-我没有正确配置设备3-设备需要一些我没有提供的额外信号4-设备或显示器工作不正常这是我的论点,解释我在我的工作中做了什么 设计,关于上述主题:1-我的SCL和SDA信号 连接到U27& 根据ML505用户指南文档(UG347第51页),T29引脚。我可以通过I2C读取寄存器的默认选项。 因此,我的控制器能够正确读取。因此,正如我之前所解释的,我执行一个写周期,然后是一个读周期,这表明我已经读过我写的相同值。 所以,我很确定它正常工作.2-以下是我用作配置器件寄存器的参考值。 / *(RAB,DATA,DEV_ADDR)* / write_iic_dvi(0x1C,0x00,CH7301_addr); // 0x00 1x像素频率和非反转XCLK // 0x01 2x像素频率// 0x04反转XCLK // 0x05 2x反转XCLK write_iic_dvi(0x1D,0x48,CH7301_addr); // 0x48是默认的write_iic_dvi(0x1F,0x9C,CH7301_addr); // 0x9C IDF = 4,有效高VSYNC和HSYNC // 0x84 IDF = 4,有效低电平VSYNC和HSYNC write_iic_dvi(0x21,0x0D,CH7301_addr); // 0x0C为IDF = 4启用VSYNC和HSYNC输出数据// 0x0D为IDF = 4启用VSYNC,HSYNC和RGB输出// 0x04禁用IDY = 4的VSYNC,HSYNC和RGB输出write_iic_dvi(0x33,0x06,CH7301_addr ); // 0x08表示频率为65MHz write_iic_dvi(0x34,0x26,CH7301_addr); // 0x16表示频率65MHz write_iic_dvi(0x36,0xA0,CH7301_addr); // 0x60表示频率65MHz write_iic_dvi(0x48,0x19,CH7301_addr); // 0x18无测试模式 - 使用输入数据// 0x19彩条测试模式输出// 0x1A水平亮度斜坡测试模式输出write_iic_dvi(0x49,0xC0,CH7301_addr); // 0x01所有电路断电// 0xC0 DVI处于正常功率函数write_iic_dvi(0x56,0x01,CH7301_addr); // 0x00禁用YCrCb到RGB转换// 0x01启用YCrCb到RGB转换这些值由mmcshmi11用户建议,在以下帖子中:http://forums.xilinx.com/t5/Xilinx-Boards-and-Kits/ 无线通话-Chrontel-CH7301C-on-ML505-Video-I2C-Bus / mp / 44150 / highlight / false#M18453-这些是我为设备提供的信号。 也许在这里我搞砸了.DVI_D(11 downto 0)'1'); DVI_DE DVI_GPIO1 DVI_H DVI_RESET_B DVI_V DVI_XCLK_N DVI_XCLK_P我假设,如果设备处于测试模式生成模式,我不需要提供它 视频信号既不具有同步信号,因为它本身应该自行完成.4-设备和监视器正在工作,因为我可以在电路板附带的闪存卡中运行Xilinx提供的幻灯片放映示例。 谁能看到我可能做错了什么? 谢谢 费利佩 |
|
相关推荐
12个回答
|
|
费利佩,
我的错误,我认为开发板会为所有带有源代码的IP提供许可证。 使用Chrontel器件,您肯定需要一个正常运行的I2C接口。 我可能真的对你有一个有用的建议......使用数字视频接口,如果你接近正确的格式但仍然不是100%正确,通常数字接口仍然是完全无功能和难以理解的。 使用模拟接口,您可以使用示波器识别相当多的内容。 Chrontel部件可以输出模拟VGA以及纯数字DVI。 您可以使用模拟输出为您提供有关信号电平,编码和时序的更直观的信息。 祝你好运。 听起来你知道你在做什么。 - 鲍勃埃尔金德 签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。 阅读手册或用户指南。 你读过手册了吗? 你能找到手册吗?2。 搜索论坛(并搜索网页)以寻找类似的主题。 不要在多个论坛上发布相同的问题。 不要在别人的主题上发布新主题或问题,开始新的主题!5。 学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。 提供有用的详细信息(请与网页,数据表链接).7。 您的代码中的评论不需要支付额外费用。 我没有支付论坛帖子的费用。 如果我写一篇好文章,那么我一无所获。 在原帖中查看解决方案 |
|
|
|
费利佩,
对于我来说,“问题”的范围过于宽泛,无法花费所需的时间进行审核和逆向工程。 我对你的具体建议如下: 重新加载基础DVI设计(你说它正在工作) 从基础设计中进行一些小的更改,一次一个,并在每次迭代时检查/调试结果。 通过进行小的,个别的改变,寻找新问题的范围(根据定义)非常狭窄。 如果你有一个工作基础设计和广泛的重新设计来实现,这是成功结论的最可靠途径(即,一次一个地制作和调试小的变化)。 - 鲍勃埃尔金德 签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。 阅读手册或用户指南。 你读过手册了吗? 你能找到手册吗?2。 搜索论坛(并搜索网页)以寻找类似的主题。 不要在多个论坛上发布相同的问题。 不要在别人的主题上发布新主题或问题,开始新的主题!5。 学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。 提供有用的详细信息(请与网页,数据表链接).7。 您的代码中的评论不需要支付额外费用。 我没有支付论坛帖子的费用。 如果我写一篇好文章,那么我一无所获。 |
|
|
|
我在“数据表”中没有看到任何表明它会生成测试模式的内容
输入引脚上没有有效同步和DE信号。 它需要某种定时发生器 要做到这一点,并没有提到测试模式的时序参数(线和帧大小)。 它 看起来测试模式取代了输入数据。 - Gabor - Gabor |
|
|
|
我很感激你的暗示鲍勃。
我毫不怀疑您的方法是实现FPGA设计最正确的方法。 但是,我没有示例设计的代码; 因此,我无法采取已经作为示例工作的东西并使用它作为参考来构建我的设计.Xilinx仅提供幻灯片放映示例的比特流,因此我无法将其用作参考。我试过 分别测试和验证每个模块,但是当涉及到集成时,我别无选择,只能把它们放在一起。但是,我认为我的问题出在I2C控制器上。 我将使用Chipscope确保我正确配置DVI设备。谢谢你的帮助,Felipe Dalcin |
|
|
|
你是对的Gabor,我假设DVI设备会自己生成同步信号,但是数据表只是说当测试模式模式打开时,设备将忽略数据输入并使用自己的测试模式输入。
我将开发产生同步信号的设计,看看会发生什么。我仍然认为我的I2C内核没有正确发送。 我将查看sda和scl信号的范围,看看发生了什么。谢谢你的帮助,Felipe Dalcin |
|
|
|
费利佩,
我的错误,我认为开发板会为所有带有源代码的IP提供许可证。 使用Chrontel器件,您肯定需要一个正常运行的I2C接口。 我可能真的对你有一个有用的建议......使用数字视频接口,如果你接近正确的格式但仍然不是100%正确,通常数字接口仍然是完全无功能和难以理解的。 使用模拟接口,您可以使用示波器识别相当多的内容。 Chrontel部件可以输出模拟VGA以及纯数字DVI。 您可以使用模拟输出为您提供有关信号电平,编码和时序的更直观的信息。 祝你好运。 听起来你知道你在做什么。 - 鲍勃埃尔金德 签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。 阅读手册或用户指南。 你读过手册了吗? 你能找到手册吗?2。 搜索论坛(并搜索网页)以寻找类似的主题。 不要在多个论坛上发布相同的问题。 不要在别人的主题上发布新主题或问题,开始新的主题!5。 学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。 提供有用的详细信息(请与网页,数据表链接).7。 您的代码中的评论不需要支付额外费用。 我没有支付论坛帖子的费用。 如果我写一篇好文章,那么我一无所获。 |
|
|
|
我写的是CH7301C
寄存器以便具有模拟输出,但它看起来像是设备 即使我已经在寄存器中写入电源,它也会掉电。 我用过示波器 以Xilinx的示例为例,然后我可以完美地看到同步信号。 但是当我加载我的设计时,设备的输出不会驱动任何信号。 有人有工作吗? 选择和配置设备的值的示例? 我可能忘记了 什么东西,这给我带来了麻烦。 我很确定问题是 在设备的配置中。 谢谢, 费利佩达尔辛 |
|
|
|
如果您可以从Chrontel部分读回寄存器,那么您至少可以制作
确定你写的正确。 如果没有,您可以比较来自的I2C总线流量 Xilinx的工作设计适用于您设计的流量。 这会更容易 逻辑分析仪。 如果你没有,有一些非常便宜的I2C总线 可用的分析仪插入PC的USB端口,并允许您监控 I2C流量非常容易。 这也可以让你运行Xilinx代码并查看 正在写入Chrontel部分的值。 重新加载FPGA时,我不确定该部件是否会重置所有内容,但如果没有, 那么你就可以运行Xilinx应用程序,并在没有代码的情况下使用它 关闭系统。 如果你能以这种方式获得某些东西,那就会 指向一些你没有设置的注册表。 如果它没有帮助那么你就更多了 可能会出错。 HTH, 的Gabor - Gabor |
|
|
|
两条建议,如果你还没有考虑过它们:
1.您可以随时通过推荐的注册设置与Chrontel支持人员联系。 他们应该是这个设备的专家。 2.警惕您可能正在正确设置Chrontel寄存器,但您的设置可能会被启动初始化例程以外的某些例程覆盖。 (注意:这是我的纯粹推测,仅此而已)。 Gabor的建议是一个很好的主意 - 将您的寄存器设置代码附加到基线(工作)Xilinx参考代码。 如果您的附加代码导致Chrontel设备关闭,则: 注释掉你的代码并重新确认该部分仍然“活着” 取消注释掉你的代码,有选择地以比特或块为单位,直到你追赶导致Chrontel关闭的特定设置或代码行。 分而治之。 - 鲍勃埃尔金德 签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。 阅读手册或用户指南。 你读过手册了吗? 你能找到手册吗?2。 搜索论坛(并搜索网页)以寻找类似的主题。 不要在多个论坛上发布相同的问题。 不要在别人的主题上发布新主题或问题,开始新的主题!5。 学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。 提供有用的详细信息(请与网页,数据表链接).7。 您的代码中的评论不需要支付额外费用。 我没有支付论坛帖子的费用。 如果我写一篇好文章,那么我一无所获。 |
|
|
|
你好,
我很高兴告诉你我的 问题几乎解决了。 我确信我的I2C接口正在工作,现在我确认了 它。 最后我有一些视频 来自ML505板的DVI接口输出的信息,这让我非常 快乐。 这是配置 我在用着: 寄存器 addr(hex)寄存器 名称配置数据 (十六进制) 下午49点C0 21 DC 09 33 TPCP 08 34 TPD 16 36 TPF 60 我发现了 以下Xilinx文档中的此配置数据: XPS瘦 薄膜晶体管(TFT)控制器(v2.00a) 这个 文档还包含DVI同步信号的时序图 透露对我非常有用。 我用过鲍勃的 提示,并尝试使用模拟视频。 但是,我有所有的显示器 在实验室里只有DVI-D输入。 所以,我使用DVI-D到VGA转换器 随电路板一起使用,使用显示器的VGA输入。 这是一个 令人惊讶的提示,因为我非常接近解决方案,但显示器仍然没有 获得完美的数字信号。 然后我 测试了测试模式生成,这很好用。 我还有 一个闪烁的屏幕,显示我有一些同步问题,但这不是我 无法处理自己。 一世 感谢我在这里收到的帮助, 它是 找到正确的解决方案至关重要 谢谢 再次, 费利佩 Dalcin |
|
|
|
嗨,我之前遇到过这个问题。
在ML505板中,引脚AM9连接到Chrontel芯片的复位引脚。 您需要在设计中将此引脚驱动为0。 如果您正在使用EDK,请将以下行添加到.mhs filePORT vga_reset_pin = sys_rst_s,DIR = O将这些行添加到.ucf fileNet vga_reset_pin LOC = AM9; Net vga_reset_pin IOSTANDARD = LVCMOS33; NET vga_reset_pin TIG; |
|
|
|
早期的帖子启用了DVI输出(我认为)。
以下是VGA模式。 我摆弄各种设置,直到以下为我工作。 这会在ML605卡上为数据或内置测试图案生成VGA输出。 static void Main(){I2C_master.i2c_chrontel_cmd(0x49,0xC0); // DVI关,VGA开。 I2C_master.i2c_chrontel_cmd(0x21,0x09); //启用H synch输出+ 1 I2C_master.i2c_chrontel_cmd(0x22,0x16); //启用V synch输出while(true){while(!checker)Kiwi.Pause(); // nb:没有去抖:所以有点弱! I2C_master.i2c_chrontel_cmd(0x48,16 + 8 + 1); while(checker)Kiwi.Pause(); while(!checker)Kiwi.Pause(); I2C_master.i2c_chrontel_cmd(0x48,16 + 8 + 2); while(checker)Kiwi.Pause(); while(!checker)Kiwi.Pause(); I2C_master.i2c_chrontel_cmd(0x48,16 + 8 + 0); //再次正常运行 while(checker)Kiwi.Pause(); }} 我将源代码附加在C#中,用于我们的Kiwi编译器以及生成的verilog子系统。 [我意识到你不想使用Kiwi,但C#非常易读!] 大卫格里夫斯 chrontel-kiwi.zip 7 KB |
|
|
|
只有小组成员才能发言,加入小组>>
2424 浏览 7 评论
2825 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2294 浏览 9 评论
3374 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2465 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1211浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
590浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
452浏览 1评论
2006浏览 0评论
731浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 23:54 , Processed in 1.467153 second(s), Total 98, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号