TK1 ~ 控制GPIO
Posted 沧海一粟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TK1 ~ 控制GPIO相关的知识,希望对你有一定的参考价值。
首先建立个存放gpio代码的文件夹,CD到该文件夹。
git clone git://github.com/derekmolloy/boneDeviceTree/
解压后会出现几个文件
GPIO文件夹内的SimpleGPIO.cpp和SimpleGPIO.h复制到eclipse工作空间的src文件夹下。
包含相关头文件后编写代码:
//============================================================================ // Name : CPPT1.cpp // Author : Kopu // Version : // Copyright : Oh,Shit! // Description : Hello World in C++, Ansi-style //============================================================================ #include "stdio.h" #include "stdlib.h" #include <iostream> #include "SimpleGPIO.h" using namespace std; const int GPIO_PU6_P58 = 166; const int GPIO_PH1_P50 = 57; unsigned int IO_Data=0; void delay_ms(unsigned int num) { unsigned int i,j; for(i=num;i>0;i--) for(j=80000;j>0;j--); } int main(void) { gpio_export(GPIO_PH1_P50); gpio_export(GPIO_PU6_P58); gpio_set_dir(GPIO_PH1_P50, INPUT_PIN); gpio_set_dir(GPIO_PU6_P58, OUTPUT_PIN); while(1) { gpio_get_value(GPIO_PH1_P50,&IO_Data); if(IO_Data)printf("1\\n"); else printf("0\\n"); gpio_set_value(GPIO_PU6_P58, HIGH); delay_ms(10); gpio_set_value(GPIO_PU6_P58, LOW); delay_ms(10); } return 0; }
关于上面的gpio对应TK1上的引脚:
Port | sysfs filename | Physical pin | Notes |
GPIO_PH1 | gpio57 | Pin 50 on J3A1 | |
GPIO_PU0 | gpio160 | Pin 40 on J3A2 | |
GPIO_PU1 | gpio161 | Pin 43 on J3A2 | |
GPIO_PU2 | gpio162 | Pin 46 on J3A2 | (Disabled by default) |
GPIO_PU3 | gpio163 | Pin 49 on J3A2 | |
GPIO_PU4 | gpio164 | Pin 52 on J3A2 | |
GPIO_PU5 | gpio165 | Pin 55 on J3A2 | |
GPIO_PU6 | gpio166 | Pin 58 on J3A2 |
J3A1 | |||||||
Pin | Signal name | Tegra K1 ball | Usage/description | Type/dir default | Associated voltage rail | Tegra pad type | Connector row |
1 | +5V_SYS | n/a | Main 5V from system | Power | - | - | 1 |
2 | GND | n/a | Tied to common GND | Ground | - | - | 2 |
3 | +1.8V_VDDIO | n/a | Main 1.8V supply from PMU switcher 5 | Power | - | - | 1 |
4 | TS_SPI_SCK | ULPI_NXT | SPI clock for Touchscreen controller (if SPI used) | Input | +1.8V_VDDIO | ST | 2 |
5 | TS_SPI_MOSI | ULPI_CLK | SPI MOSI for Touchscreen controller (if SPI used) | Input | +1.8V_VDDIO | ST | 1 |
6 | TS_SPI_CS_L | ULPI_STP | SPI chip select for Touchscreen controller (if SPI) | Input | +1.8V_VDDIO | ST | 2 |
7 | TS_SPI_MISO | ULPI_DIR | SPI MISO for Touchscreen controller (if SPI used) | Output | +1.8V_VDDIO | ST | 1 |
8 | GND | n/a | Tied to common GND | Ground | - | - | 2 |
9 | GND | n/a | Tied to common GND | Ground | - | - | 1 |
10 | +3.3V_RUN_TOUCH | n/a | AMS PMIC LDO9 | Power | - | - | 2 |
11 | TS_SHDN_L | GPIO_PK1 | Shutdown control for Touchscreen controller | Input | +1.8V_VDDIO | CZ | 1 |
12 | TS_CLK | CLK2_OUT | Clock for Touchscreen controller | Input | +1.8V_VDDIO | ST | 2 |
13 | TS_RESET_L | GPIO_PK4 | Reset for Touchscreen controller | Input | +1.8V_VDDIO | CZ | 1 |
14 | GND | n/a | Tied to common GND | Ground | - | - | 2 |
15 | GND | n/a | Tied to common GND | Ground | - | - | 1 |
16 | +3.3V_SYS | n/a | Main 3.3V supply | Power | - | - | 2 |
17 | GPIO_PK2 | GPIO_PK2 | Available GPIO | Output | +1.8V_VDDIO | CZ | 1 |
18 | GEN2_I2C_SCL_3.3V | GEN2_I2C_SCL | 3.3V I2C IF (Pulled up to +3.3V_LP0) | Input, Open Drain | +3.3V_LP0 | DD | 2 |
19 | +1.8V_VDDIO | n/a | Main 1.8V supply from PMU switcher 5 | Power | - | - | 1 |
20 | GEN2_I2C_SDA_3.3V | GEN2_I2C_SDA | 3.3V I2C IF (Pulled up to +3.3V_LP0) | Bidir, Open Drain | DD | 2 | |
21 | GEN1_I2C_SCL | GEN1_I2C_SCL | 1.8V I2C (Pulled up to +1.8V_VDDIO) | Input, Open Drain | +1.8V_VDDIO | DD | 1 |
22 | +3.3V_RUN | n/a | +3.3V rail that is off in LP0 | Power | - | - | 2 |
23 | GEN1_I2C_SDA | GEN1_I2C_SDA | 1.8V I2C (Pulled up to +1.8V_VDDIO) | Bidir, Open Drain | +1.8V_VDDIO | DD | 1 |
24 | EN_AVDD_LCD | n/a | Enable for Embedded display from PMU GPIO4 | Input | - | - | 2 |
25 | +VDD_MUX | n/a | Main 12V from Jack | Power | 1 | ||
26 | GND | n/a | Tied to common GND | Ground | - | - | 2 |
27 | EN_VDD_BL | DAP3_DOUT | Backlight supply enable | Input | +1.8V_VDDIO | ST | 1 |
28 | DP_AUX_P | DP_AUX_P | eDP AUX control interface (+) | Bidir | +1.05V_RUN_AVDD | LVDS/DP | 2 |
29 | GND | n/a | Tied to common GND | Ground | - | - | 1 |
30 | DP_AUX_N | DP_AUX_N | eDP AUX control interface (-) | Bidir | +1.05V_RUN_AVDD | LVDS/DP | 2 |
31 | LVDS_TXD0_P | LVDS_TXD0_P | LVDS Data lane 0 (+) or eDP Data lane 2 (+) | Input | +1.05V_RUN_AVDD | LVDS/DP | 1 |
32 | GND | n/a | Tied to common GND | Ground | - | - | 2 |
33 | LVDS_TXD0_N | LVDS_TXD0_N | LVDS Data lane 0 (-) or eDP Data lane 2 (+) | Input | +1.05V_RUN_AVDD | LVDS/DP | 1 |
34 | LVDS_TXD1_P | LVDS_TXD1_P | LVDS Data lane 1 (+) or eDP Data lane 1 (+) | Input | +1.05V_RUN_AVDD | LVDS/DP | 2 |
35 | GND | n/a | Tied to common GND | Ground | - | - | 1 |
36 | LVDS_TXD1_N | LVDS_TXD1_N | LVDS Data lane 1 (-) or eDP Data lane 1 (-) | Input | +1.05V_RUN_AVDD | LVDS/DP | 2 |
37 | LVDS_TXD3_P | LVDS_TXD3_P | LVDS Data lane 3 (+) - Not used for eDP | Input | +1.05V_RUN_AVDD | LVDS/DP | 1 |
38 | GND | n/a | Tied to common GND | Ground | - | - | 2 |
39 | LVDS_TXD3_N | LVDS_TXD3_N | LVDS Data lane 3 (-) - Not used for eDP | Input | +1.05V_RUN_AVDD | LVDS/DP | 1 |
40 | LVDS_TXD2_P | LVDS_TXD2_P | LVDS Data lane 2 (+) or eDP Data lane 0 (+) | Input | +1.05V_RUN_AVDD | LVDS/DP | 2 |
41 | GND | n/a | Tied to common GND | Ground | - | - | 1 |
42 | LVDS_TXD2_N | LVDS_TXD2_N | LVDS Data lane 2 (-) or eDP Data lane 0 (-) | Input | +1.05V_RUN_AVDD | LVDS/DP | 2 |
43 | LVDS_TXD4_N | LVDS_TXD4_N | LVDS Clock lane (+) or eDP Data lane 3 (+) | Input | +1.05V_RUN_AVDD | LVDS/DP | 1 |
44 | GND | n/a | Tied to common GND | Ground | - | - | 2 |
45 | LVDS_TXD4_P | LVDS_TXD4_P | LVDS Clock lane (-) or eDP Data lane 3 (-) | Input | +1.05V_RUN_AVDD | LVDS/DP | 1 |
46 | EPP_HPD | DP_HPD | eDP display Hot Plug Detect input | Output | +3.3V_LP0 | ST | 2 |
47 | GND | n/a | Tied to common GND | Ground | - | - | 1 |
48 | LCD_BL_EN | GPIO_PH2 | Backlight enable | Input | +1.8V_VDDIO | CZ | 2 |
49 | LCD_TE | KB_ROW6 | Tearing Effect from embedded display (if supported) | Output | +1.8V_VDDIO | ST | 1 |
50 | LCD_BL_PWM | GPIO_PH1 | Backlight PWM | Input | +1.8V_VDDIO | CZ | 2 |
三排的插座:
J3A2 | |||||||
Pin | Signal name | Tegra K1 ball | Usage/description | Type/dir default | Associated voltage rail | Tegra pad type | Connector row |
1 | +5V_SYS | n/a | Main 5v from system | Power | - | - | 1 |
2 | CAM2_PWDN | GPIO_PBB6 | Power Down for Camera 2 | input | +1.8V_RUN_CAM | ST | 2 |
3 | +1.05V_RUN_CAM_REAR | n/a | AMS PMIC LDO7 for Camera 1 | Power | - | - | 3 |
4 | CAM2_MCLK | GPIO_PBB0 | Master Reference Clock for Camera 2 | input | +1.8V_RUN_CAM | ST | 1 |
5 | CAM_RST_L | GPIO_PBB3 | Reset for Camera(s) | input | +1.8V_RUN_CAM | ST | 2 |
6 | +2.8V_RUN_CAM | n/a | AMS PMIC LDO4 for Camera(s) | Power | - | - | 3 |
7 | CAM2_GPIO | GPIO_PCC2 | GPIO for Camera 2 | Bidir | +1.8V_RUN_CAM | ST | 1 |
8 | CAM_I2C_SDA | CAM_I2C_SDA | I2C Data for Camera(s) | Bidir, Open Drain | +1.8V_RUN_CAM | DD | 2 |
9 | GND | n/a | Tied to common GND | Ground | - | - | 3 |
10 | GND | n/a | Tied to common GND | Ground | - | - | 1 |
11 | CAM_I2C_SCL | CAM_I2C_SCL | I2C Clock for Camera(s) | Input, Open Drain | +1.8V_RUN_CAM | SS | 2 |
12 | CSI_A_CLK_P | CSI_A_CLK_P | CSI Clock (+) for Camera 1 | Output | +1.2V_GEN_AVDD | CSI | 3 |
13 | CSI_E_CLK_N | CSI_E_CLK_N | CSI Clock (-) for Camera 2 | Output | +1.2V_GEN_AVDD | CSI | 1 |
Jetson TK1 开发板初用体会 |