티스토리 뷰


Jetson Nano J41 헤더


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만 사용 가능
'초보 우분투(리눅스)' 카테고리의 다른 글
| NVIDIA Jetson Nano 핀맵 (1) | 2024.02.17 |
|---|---|
| 우분투-프로그램 실행중에 프로그램 코드로 터미널 화면을 지우는 방법 (2) | 2024.02.17 |
| 작성중 - 우분투 부팅후 myprogram이 자동실행되게 하는 방법 (1) | 2024.02.17 |
| 작성중 - 우분투에서 Visual Studio Code 간단 사용법 (0) | 2024.02.17 |
| 우분투에서 실행파일을 마우스 더블클릭으로 실행하는 방법 (0) | 2024.02.17 |

