뒤집다
전자기기 수리는 예전만큼 어렵지 않습니다. 인터넷 덕분에 기기 내부의 모든 표준 구성 요소에 대한 데이터시트와 애플리케이션 노트를 쉽게 찾을 수 있으며, 일단 결함이 있는 것을 발견하면 수백만 개의 웹 상점 중 한 곳에서 교체품을 구입하기만 하면 됩니다. 물론 가짜로요. 그러나 비표준 구성 요소의 경우 상황이 더욱 어려워집니다. [dpeddi]는 친구가 디스플레이가 깨진 Roland Juno-G 신디사이저를 수리하는 데 도움을 요청했을 때 알게 되었습니다.
여기서 가장 큰 문제는 문제의 디스플레이가 교체품이나 문서가 없는 맞춤형 디자인이라는 사실이었습니다. [dpeddi]가 서비스 매뉴얼에서 알아낼 수 있는 유일한 것은 "칩 선택"이라고 표시된 두 줄이 있는 병렬 인터페이스를 보여주는 기본 핀아웃이었습니다. 이는 디스플레이에 두 개의 별도 컨트롤러가 포함되어 있음을 나타냅니다. 그러나 정확한 프로토콜과 데이터 형식은 문서화되지 않았기 때문에 [dpeddi]는 논리 분석기를 꺼내 신디사이저에서 생성된 신호를 디코딩해 보았습니다.
약간의 시행착오 끝에 그는 프로토콜을 알아낼 수 있었습니다. 디스플레이에는 각각 화면의 절반을 제어하는 두 개의 KS0713 유형 LCD 컨트롤러가 포함된 것처럼 보였습니다. 호환 가능한 대체품을 찾는 것이 여전히 어려웠기 때문에 [dpeddi]는 대신 마이크로 컨트롤러를 사용하여 원래 신호를 디코딩하고 SPI로 구동되는 최신 LCD에 그림을 표시하기로 결정했습니다. ESP32를 사용한 몇 가지 초기 실험 후, 상당히 빠른 두 개의 병렬 버스를 읽고 훨씬 더 빠른 직렬 버스를 구동하는 작업이 ESP에 비해 약간 과중하다는 것이 밝혀졌습니다. 그래서 [dpeddi]는 Raspberry Pi Pico로 업그레이드했습니다. 이는 매우 효과가 있었고 3D 프린팅된 장착 브래킷 덕분에 새 디스플레이도 Roland 케이스 내부에 꼭 맞습니다.
Pico의 코드는 [dpeddi]의 GitHub 페이지에서 사용할 수 있으므로 Juno-G에도 이상한 디스플레이가 있는 경우 간단히 다운로드하여 새 디스플레이에 연결할 수 있습니다. 그러나 기존 디스플레이 프로토콜을 리버스 엔지니어링하고 이를 새로운 프로토콜로 변환하는 방법은 매우 보편적이며 모든 유형의 전자 장치(예: 빈티지 계산기, 멀티미터 또는 다른 신디사이저)로 작업할 때 유용합니다. .