티스토리 뷰

반응형

Top View Serial Port Header Button Header J44 J13 Camera Connector J38 J40 POE (Power over Ethernet) M.2 Key E Slot Expansion Header J18 J41 SODIMM Connector Fan Header J2 Power LED Micro B USB J28 Ethernet Jack J15 J33 J43 Power Jack J32 J6 J25 HDMI Type A & DP (stacked) USB 3.0 Type A (2 x2 stacked)
Jetson Nano J41 헤더

Jetson Nano J41 헤더

Jetson Nano J41 헤더 ====================================================== Sysfs GPIO 이름 핀 핀 이름 Sysfs GPIO 3.3VDC 1 2 5.0VDC I2C_2_SDA 3 4 5.0VDC I2C_2_SCL 5 6 GND gpio216 AUDIO_MCLK 7 8 UART_2_TX GND 9 10 UART_2_RX gpio50 UART_2_RTS 11 12 I2S_4_SCLK gpio79 gpio14 SPI_2_SCK 13 14 GND gpio194 LCD_TE 15 16 SPI_2_CS1 gpio232 3.3VDC 17 18 SPI_2_CS0 gpio15 gpio16 SPI_1_MOSI 19 20 GND gpio17 SPI_1_MISO 21 22 SPI_2_MISO gpio13 gpio18 SPI_1_SCK 23 24 SPI_1_CS0 gpio19 GND 25 26 SPI_1_CS1 gpio20 I2C_1_SDA 27 28 I2C_1_SCL gpio149 CAM_AF_EN 29 30 GND gpio200 GPIO_PZ0 31 32 LCD_BL_PWM gpio168 gpio38 GPIO_PE6 33 34 GND gpio76 I2S_4_LRCK 35 36 UART_2_CTS gpio51 gpio12 SPI_2_MOSI 37 38 I2S_4_SDIN gpio77 GND 39 40 I2S_4_SDOUT gpio78 ======================================================

 

 

spi0.0 /sys/class/spi_master/spi0/spi0.0 modalias 최근 이름 홈 바탕 화면 of_node 다운로드 문서 비디오 power 크기 4.1 kB 항목 5개 항목 9개 항목 28개 사진 음악 휴지통 + 다른 위치 statistics subsystem 항목 5개 uevent 4.1 kB

 

SPI는 2개 사용가능하며, 칩셀렉트는 자동으로 처리됩니다.

SPI 통신에서는 CS 신호가 활성화되어야만 통신이 이루어집니다. SPI 트랜잭션을 시작하기 전에 CS를 활성화하고, 트랜잭션이 완료된 후에는 CS를 비활성화하여 다른 디바이스와 통신할 수 있습니다.

Jetson Nano에서는 spidev 라이브러리를 사용하여 SPI 통신을 수행하고, 이 라이브러리는 CS 관리를 자동으로 처리합니다. 따라서 일반적으로 CS에 대한 별도의 코드 작성이 필요하지 않습니다.

여기 예제에서 spidev 라이브러리를 사용하여 SPI 통신을 하는 경우, CS 관리는 라이브러리 내부에서 자동으로 이루어집니다.

struct spi_ioc_transfer transfer = {
    .tx_buf = (unsigned long)tx_buffer,
    .rx_buf = (unsigned long)rx_buffer,
    .len = length,
    .delay_usecs = 0,
    .speed_hz = 1000000,  // SPI 클럭 속도 설정 (1MHz)
    .bits_per_word = 8,
};

ioctl(spi_fd, SPI_IOC_MESSAGE(1), &transfer);

그래서 "spi0.0", "spi0.1"과 같이 SPI1개당 2개의 칩만 사용이 가능합니다.(GPIO를 사용하면 되지만, 비효율적이고 원래 칩셀렉트핀이 낭비됩니다.)

 

칩셀렉트 하는 방법

void select_device(int spi_fd) {
    // CS 활성화
    ioctl(spi_fd, SPI_IOC_WR_MODE, 0);  // 여기에서 CS를 활성화하는 ioctl을 사용 (0은 CS를 활성화함을 나타냄)
}

void deselect_device(int spi_fd) {
    // CS 비활성화
    ioctl(spi_fd, SPI_IOC_WR_MODE, 1);  // 여기에서 CS를 비활성화하는 ioctl을 사용 (1은 CS를 비활성화함을 나타냄)
}

 

 

 

젯슨나노 우분투에서 SPI SLAVE 설정이 가능한가?

=>MASTER만 사용 가능 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함