Willian.Mo 发表于 2015-6-30 18:03:05

MYS-SAM9X5 ADC复用普通GPIO

本帖最后由 Willian.Mo 于 2015-7-7 15:45 编辑

MYS-SAM9X5的J5拓展口处理PC31管脚,其他复用成了tsadc或ethernet功能,要将这些管脚用作普通GPIO功能,需要修改内核。
这里将复用成ethernet功能管脚用作普通GPIO:
1. 修改内核Linux-2.6.39/arch/arm/ mach-at91/board-sam9x5ek.c文件的409行,禁用eth0功能,修改后如下:
      /* Ethernet */
      // at91_add_device_eth(0, &ek_macb0_data);
      at91_add_device_eth(1, &ek_macb1_data);
2. 重新编译内核 :
$ ./make_image.sh 4.3
3. 烧写新的内核镜像。
4. GPIO测试:
测试PB7,计算gpio标号为:2x32+7 = 71.
# cd /sys/class/gpio/
导出GPIO71:
# echo 71 > export
设置GPIO71为输出:
# echo "out" > gpio71/direction
GPIO71输出高电平:
# echo 1 > gpio71/value
GPIO71输出低电平:
# echo 0 > gpio71/value
释放GPIO71
# echo 71 > unexport
注意:Ateml SAM9X5的ADC复用GPIO电压范围与普通的GPIO有些不同,如下图所示:




likaixinstar 发表于 2015-7-9 17:56:45

请问如何将复用ADC功能的管脚用作普通GPIO,需要修改哪些地方,谢谢!

Willian.Mo 发表于 2015-7-10 10:36:04

likaixinstar 发表于 2015-7-9 17:56
请问如何将复用ADC功能的管脚用作普通GPIO,需要修改哪些地方,谢谢!

上面说得很清楚了,把ADC管脚的复用功能去掉就可以用作普通GPIO

likaixinstar 发表于 2015-7-10 23:16:25

Willian.Mo 发表于 2015-7-10 10:36
上面说得很清楚了,把ADC管脚的复用功能去掉就可以用作普通GPIO

那在哪里关ADC管脚的复用功能,是Linux-2.6.39/arch/arm/ mach-at91/board-sam9x5ek.c文件?

Willian.Mo 发表于 2015-7-13 09:58:24

likaixinstar 发表于 2015-7-10 23:16
那在哪里关ADC管脚的复用功能,是Linux-2.6.39/arch/arm/ mach-at91/board-sam9x5ek.c文件?

是的

likaixinstar 发表于 2015-7-16 23:58:57

Willian.Mo 发表于 2015-7-13 09:58
是的

谢谢!:handshake
页: [1]
查看完整版本: MYS-SAM9X5 ADC复用普通GPIO