完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
这是我的引脚配置,麻烦大家帮忙看下
// module pin mux for gpmc static struct pinmux_config gpmc_pin_mux[]=[ ["gpmc_a1.gpmc_a1", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA], ["gpmc_a2.gpmc_a2", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA], ["gpmc_a3.gpmc_a3", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA], ["gpmc_a4.gpmc_a4", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA], ["gpmc_a5.gpmc_a5", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA], ["gpmc_a6.gpmc_a6", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA], ["gpmc_a7.gpmc_a7", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA], ["gpmc_a8.gpmc_a8", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA], ["gpmc_ad0.gpmc_ad0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_ad1.gpmc_ad1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_ad2.gpmc_ad2", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_ad3.gpmc_ad3", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_ad4.gpmc_ad4", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_ad5.gpmc_ad5", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_ad6.gpmc_ad6", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_ad7.gpmc_ad7", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_ad8.gpmc_ad8", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_ad9.gpmc_ad9", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_ad10.gpmc_ad10", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_ad11.gpmc_ad11", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_ad12.gpmc_ad12", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_ad13.gpmc_ad13", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_ad14.gpmc_ad14", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_ad15.gpmc_ad15", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_advn_ale.gpmc_advn_ale", OMAP_MUX_MODE0 | AM33XX_PULL_DISA], ["gpmc_oen_ren.gpmc_oen_ren", OMAP_MUX_MODE0 | AM33XX_PULL_DISA], ["gpmc_wen.gpmc_wen", OMAP_MUX_MODE0 | AM33XX_PULL_DISA], ["gpmc_ben0_cle.gpmc_ben0_cle", OMAP_MUX_MODE0 | AM33XX_PULL_DISA], ["gpmc_wpn.gpmc_wpn", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP], ["gpmc_clk.gpmc_wait1", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP], //["gpmc_clk.gpmc_clk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], /*must be set as an input*/ ["gpmc_csn1.gpmc_clk", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP], //["gpmc_csn1.gpmc_csn1", OMAP_MUX_MODE0 | AM33XX_PULL_DISA], //["gpmc_csn2.gpmc_csn2", OMAP_MUX_MODE0 | AM33XX_PULL_DISA], ["gpmc_csn3.gpmc_csn3", OMAP_MUX_MODE0 | AM33XX_PULL_DISA], [NULL, 0], ]; 会不会是时钟引脚属性设置错了,多谢! |
|
相关推荐
20个回答
|
|
|
|
|
|
hwjj940056201 发表于 2018-6-1 04:48 我config_7设置的是0xaa011000,第29位和第27位分别为读写类型,可以读到fpga端的数据,但是在FPG端的逻辑仪上看不到时钟 |
|
|
|
你是指GPMC_CONFIG_0的寄存器吧,没错,按照这个设置是同步模式,你现在读到的FPGA端的数据是对的吗?能否用示波器量一下当前你使用的clock这个脚,有时钟出来么?对应的AM335x的管脚是哪个,确认一下 |
|
|
|
hwjj940056201 发表于 2018-6-1 05:24 你的这个设置,模式和输入的设置是对的:gpmc_csn1.gpmc_clk", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP], 在Linux系统启动后,登录后,在控制台使用命令“devmem2 0x44e10880”,打印下这个GPMC_CSn1的Control module寄存器,如果结果是0x00000031的话,就说明这个配置生效了,pinmux配置没问题,否则说明你对clock的pinmux的配置并没有生效。 |
|
|
|
hwjj940056201 发表于 2018-6-1 05:38 我看网上有人把时钟引脚设置成这样 ["gpmc_clk.gpmc_clk", OMAP_MUX_MODE0 | AM33XX_PULL_DISA], http://biancheng.dnbcw.info/linux/411804.html fpga端设置的初始值读过来是对的,fpga端的逻辑分析仪能看到地址有效,读允许有效,片选有效,但是就是没有时钟 |
|
|
|
hongjane 发表于 2018-6-1 05:49 这个是使用GPMC_CLK引脚,V12脚,和你的配置的是不一样的,你用的是GPMC_CSn1这个脚,U9。你先搞清楚,自己的硬件连接上面到底用的是哪个。 |
|
|
|
hwjj940056201 发表于 2018-6-1 06:08 感谢您的回复! 我的意思是他的引脚初始状态设置为:["gpmc_clk.gpmc_clk", OMAP_MUX_MODE0 | AM33XX_PULL_DISA], 而我的引脚初始化状态为:gpmc_csn1.gpmc_clk", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP], 跟这个有关系吗? |
|
|
|
hongjane 发表于 2018-6-1 06:17 需要input属性,芯片上设置的上下拉是很弱的,影响不大。我之前不是建议你使用devmem2去查寄存器设置成功了没有,这个结果如何? |
|
|
|
hongjane 发表于 2018-6-1 05:49 你好!是这个结果! root@am335x:~# devmem2 0x44e10880 /dev/mem opened. Memory mapped at address 0x4022c000. Read at address 0x44E10880 (0x4022c880): 0x00000037 root@am335x:~# |
|
|
|
这说明配置没生效啊,从GPMC_CSn1上肯定得不到clock,现在的模式是7,也就是GPIO模式,没有配对,用命令测试一下:“devmem2 0x44e10880 w 0x00000031” 然后在打印一次寄存器的值,看结果。 原理图设计上,确认你目前引出来的clock脚是U9么? |
|
|
|
hwjj940056201 发表于 2018-6-1 06:52 按你说的做了,结果好像没写进去,还是原来的值,买的板子,引脚是他们引出来的 root@am335x:~# devmem2 0x44e10880 w 0x00000031 /dev/mem opened. Memory mapped at address 0x40275000. Read at address 0x44E10880 (0x40275880): 0x00000037 Write at address 0x44E10880 (0x40275880): 0x00000031, readback 0x00000031 root@am335x:~# devmem2 0x44e10880 /dev/mem opened. Memory mapped at address 0x400a7000. Read at address 0x44E10880 (0x400a7880): 0x00000037 root@am335x:~# |
|
|
|
hongjane 发表于 2018-6-1 07:02 这只是你接插件部分的原理图,要看主芯片端的原理图,确认一下GPMC_CSn1是不是连在了335的U9管脚。 软件上查一下为什么pinmux不对,你写的是没被调用,还是调用出问题了 |
|
|
|
hwjj940056201 发表于 2018-6-1 07:21 他们没给核心板的原理图,但是我想一个正规的公司应该不会接错吧!我引脚初始化,也是把gpmc_cs1设置成模式1(即gpmc_clk,)烧写内核后,启动也没报错,但是为啥读出来的寄存器还是模式7呢,更奇怪的是其他信号都正常,就是没有时钟,但是居然也能读数据;本来gpmc_cs1引脚是被占用的,我把他注释掉了,下面是gpmc_csn1原来的设置 #if 0 #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) /* pinmux for gpio based key */ static struct pinmux_config gpio_keys_pin_mux[] = [ ["gpmc_ad8.gpio0_22", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP], // "SETUP" key ["gpmc_csn2.gpio1_31", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP], // "MENU" key ["gpmc_csn1.gpio1_30", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP], // "BACK" key [NULL, 0], ]; |
|
|
|
hongjane 发表于 2018-6-1 07:31 时钟不是一直都有的,只有在读写数据的时候才有,你确定一定没有? |
|
|
|
|
|
|
|
hongjane 发表于 2018-6-1 07:31 你确定和你FPGA相连的是GPMC_CS1吧? 你前面提到你的我config_0设置的是0xaa011000,是通过devemem2的方法读出来的吗?还是说只是个设置的值? 使devmem2 + 地址的方法,把你读的寄存器地址和结果值,发上来一起确认一下。 |
|
|
|
hwjj940056201 发表于 2018-6-1 08:13 是我程序设置的呀@ #define GPMC_CONFIG1_DATA 0xaa011000 gpmc_cs_write_reg(GPMC_CS, GPMC_CS_CONFIG1,GPMC_CONFIG1_DATA); 我在驱动程序里设置完寄存器后,都打印了一遍 #if 1 printk("GPMC_CS_CONFIG1 value 0x%xn" ,gpmc_cs_read_reg(GPMC_CS, GPMC_CS_CONFIG1)); printk("GPMC_CS_CONFIG2 value 0x%xn" ,gpmc_cs_read_reg(GPMC_CS, GPMC_CS_CONFIG2)); printk("GPMC_CS_CONFIG3 value 0x%xn" ,gpmc_cs_read_reg(GPMC_CS, GPMC_CS_CONFIG3)); printk("GPMC_CS_CONFIG4 value 0x%xn" ,gpmc_cs_read_reg(GPMC_CS, GPMC_CS_CONFIG4)); printk("GPMC_CS_CONFIG5 value 0x%xn" ,gpmc_cs_read_reg(GPMC_CS, GPMC_CS_CONFIG5)); printk("GPMC_CS_CONFIG6 value 0x%xn" ,gpmc_cs_read_reg(GPMC_CS, GPMC_CS_CONFIG6)); printk("GPMC_CS_CONFIG7 value 0x%xn" ,gpmc_cs_read_reg(GPMC_CS, GPMC_CS_CONFIG7)); #endif config_1的值就是我设置的值 |
|
|
|
hongjane 发表于 2018-6-1 08:21 建议你直接在运行时,用devmem2去打印,这样能打印出你运行时设置的状态。 你在这个驱动里面打印,只能说明你设完的这会儿,值是设置对的,后面会不会再被修改,这不确定哦。像你前面的那个pinmux配置一样,你是设置成模式1的,结果后面还是被修改了,改回了模式7,你在程序里设置完这个pinmux就打印的话,应该能显示成模式1的,可这不代表最终的状态。 鉴于你有这种情况在先了,还是用devmem2再次确认一下,排除一下后面误操作的可能。 |
|
|
|
hwjj940056201 发表于 2018-6-1 08:30 再次感谢回复!请问config_1的地址是多少,如果要用devmem2打印的话 |
|
|
|
只有小组成员才能发言,加入小组>>
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
564 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1013 浏览 1 评论
649 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
491 浏览 1 评论
1012 浏览 0 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
115浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
89浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
104浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
97浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
123浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 00:16 , Processed in 1.120109 second(s), Total 114, Slave 97 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号