-
#FT4232HL #RS485 #rootfsYocto 2024. 6. 24. 23:32
자 이번엔 나머지 한 가지에 대해서 쓴다.
제목에서 보이듯 FT4232HL
USB to UART/FIFO 기능을 하는 칩이다.
UART의 경우 datasheet 상에서 pin을 적절히 configuration하여 RS-232 / RS-422 / RS-485 등으로 사용할 수 있는 칩이다.
나의 시스템은 해당 칩을 UART로 RS-485로 사용할 것이었다.
그리하여 microcom -s 115200 /dev/ttyUSB0 를 통해 teraterm 과 serial 데이터를 확인해보았다.
아이러니하게도 시스템이 RX는 되는데 TX가 안되는 것이 아닌가.....!!
Datasheet를 자세하게 들여다 보았다.
이런이런... RS-485 configuration 쪽을 살펴보니
RS-485는 Half-duplex로서
(즉, 반이중 통신 방식으로서 TX든 RX든 한 순간에 하나만 할 수 있는 것이 아닌가. 그러니까 동시에 TX/RX가 안된다는 것.)
TX를 위해선 TXDEN pin을 High로 만들어줘야 하는 것이 아닌가..!
TXDEN pin은 #RI/TXDEN 핀으로 쓰이고 있었다. default #RI pin으로 쓰이고 있었고 RS-232에서 wake up pin으로 사용하는 듯 보였다.
아무턴 간에 #RI는 input pin으로 설정되어 있고 이를 TXDEN ouput pin으로 설정해줘야 했다.
이를 위해선 EEPROM에 TXDEN으로 사용할 것을 wrting 해놓아야 한다는 것이었다.
그래서 나는.. 뒤에서 나오겠지만 진행 과정에서 eeprom이 칩에 내장되어 있는 줄 알고
eeprom을 수정하는 방법을 찾아보았다.
다행이도 ftdi_eeprom이라는 툴이 있었다. libftdi 소스 안에 존재하며, Yocto를 통해 빌드가 가능했다.
libftdi는 meta-oe/recipes-support 하위에 존재했고 libftdi.bb 파일을 통해 libftdi 를 설치할 수 있었다.
그러나 ftdi_eeprom은 추가적으로 작성이 필요했고 작성하여 해당 툴도 추가해주었다.
이후 시스템에 올려 ftdi_eeprom을 통해 FT4232HL 의 EEPROM에 ftdi_eeprom --flash-eeprom ft4232hl.conf 를 수행해보았다.
이런.. wrting에 실패한듯 하다..
대체 무엇이 잘못된 것일까...
문제는 EEPROM이 칩에 내장되어 있다고 생각한 것이 잘못이었다.
칩은 EEPROM interface만 제공할 뿐이었다. 즉, EEPROM은 칩에 내장된 것이 아니었던 것이다.
결과적으론 필요한 툴이나 라이브러리 구성은 시스템에 추가 포팅되었으나
EEPROM을 칩에 달아주어야 한다.
이후 EEPROM을 달 수 있을진 모르지만 달게 된다면 추가적으로 글을 남길 것이다.
아쉽고 무언가 마무리된 것 같진 않지만...!
지금까진 명쾌하다!
'Yocto' 카테고리의 다른 글
#rootfs #clamav #swap (0) 2024.06.24 rootfs 커스터마이징(2) (2) 2024.06.15 rootfs 커스터마이징(1) (0) 2024.06.14