I2C Sniffer
아, Sniffer라는 것은 옛날 네트워크 분석기에 Sniffer라는 매우 유명한 앱이 있고, 거기에서 왔습니다.
Windows 환경에서 드라이버를 설치하고 앱을 시작할 때 어떤 설정이 이루어졌는지 확인하고 싶습니다. Windows 환경의 USB에서 Sniffer를 왜 잘 사용할 수 없기 때문에 I2C에서 Sniffer하기로 결정했습니다. (이와도리의 오실로 프로토콜은 USB를 Sniffer 해석했을 것입니다만, 어떻게 사용했는지 기억할 수 없습니다)
GV-MVP/SZ의 드라이버는 Vista까지입니다만, 32Bit의 Windows 7에는 서명하지 않기 때문에 화나지만, 인스톨 해 사용할 수 있는 것 같습니다. 옛날에는 EMPIA의 사이트에 64Bit의 드라이버가 있었던 것 같습니다만, 지금은 없어지고 있는 것 같습니다.
I2C의 통신 속도는 100/400Kbps이므로 Sniffer는 나름의 처리 속도가 요구되어 다음과 같은 방법이 생각됩니다.
처음에 @toyoshim 님이 LPC로 제작되었습니다. 바이너리를 시험해 보았습니다만, 일부 밖에 로그가 나오지 않았습니다.
EM2820이나 TVP5150의 핀은 피치가 좁고 점퍼를 치기가 어렵기 때문에 8PIN SOC의 EEPROM의 5,6핀과 그라운드의 4핀으로부터 점퍼를 늘리는 것이 좋다.
다른 사람을 찾았는데 ATtiny85를 사용하여 다음 페이지를 찾았습니다.
ATtiny에는 USI라는 I2C를 지원하는 메커니즘이 있습니다. 이 구조는 범용으로되어있어 그것을 사용하여 I2C를 실현할 수있게되어 있습니다. 위의 코드는이 메커니즘을 마스터도 슬레이브도 아니고 Sniffer에 사용하는 것 같습니다. ATMEGA에는 USI가 없습니다.
조금 오래된 소스였지만 Version 2의 C 코드를 platformio로 컴파일 할 수 있도록 해, 아래에 두고 있습니다. 외부 클럭으로 만든 것 같습니다만, 내부 클럭의 8M에서도 사용할 수 있는 것 같습니다. 8M이므로 3.3V, 5V 모두 사용할 수 있습니다.
외부 클럭으로 16M 등으로 하고 싶은 경우는 5V로 할 필요가 있습니다만, 3.3V의 타겟에 접속해도 SCL, SDA는 입력이므로, 그대로 움직이면 생각합니다. (미확인)
기계 재부팅시 로그
sA0a6AasA1a14a03np
sA0a6AasA1a14a03a49a00a2Da00a4Fa00a20a00a44a00a41a00a54a00a41a00a00a00np
sA0a7EasA1a16a03np
sA0a7EasA1a16a03a47a00a56a00a2Da00a4Da00a56a00a50a00a2Fa00a53a00a5Aa00a00a00np
sA0a7EasA1a16a03np
sA0a7EasA1a16a03a47a00a56a00a2Da00a4Da00a56a00a50a00a2Fa00a53a00a5Aa00a00a00np
sA0a6AasA1a14a03np
sA0a6AasA1a14a03a49a00a2Da00a4Fa00a20a00a44a00a41a00a54a00a41a00a00a00np
EM2820이 EEPROM (주소 : A0, A1)에 액세스하여 초기 설정 값을 읽는 것 같습니다. 정지 조건을 보내지 않으므로 읽기 주소의 A1에 대한 액세스가 계속됩니다.
I2C의 주소는 상위 7Bit이 주소이고 하위 1Bit이 0이 쓰기로 1이 읽혀집니다.
Windows 초기화
sA0a04asA1aBBa04np
sA0a20asA1a16np
sA0a14asA1a6Ea00a00a00np
sA0a1CasA1a02np
sA0a18asA1a60np
sA0a1DasA1a02np
sA0a19asA1aF4np
sA0a1EasA1a00np
sA0a1AasA1a00np
sA0a1FasA1a00np
sA0a1BasA1a00np
sA0a22asA1a01np
sA0a23asA1a02np
sA0a0BasA1a03np
sA0a28asA1aB8np
sA0a0AasA1a20np
sA0a2EasA1a00np
sA0a0AasA1a20np
sC7aB8np
sA0a0Aap
sA1a20np
sA0a0AasA1a20np
sA0a0AasA1a20np
sA0a2EasA1a00np
sC7a38np
sA0a0AasA1a20np
s87a8Fnp
sA0a32asA1a20a40a20a80np
sA0a36asA1a00np
sA0a38asA1a01np
sA0a39ap
sA1a01np
sA0a3AasA1a00np
sA0a3Bap
sA1a00np
sA0a40asA1a00np
sA0a41asA1a00np
sA0a12asA1a06np
sA0a06ap
sA1a15a05np
sA0a0AasA1a20np
sA0a7EasA1a16a03a47a00np
sA0a7EasA1a16a03a47a00a56a00a2Da00a4Da00a56a00a50a00a2Fa00a53a00a5Aa00a00a00np
Windows 앱 시작으로 초기화
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sC7a38np
sB8a0Fa02ap
sB8a27a20ap
sB8a1Aa0Cap
sB8a04aC0ap
sB8a1Ba14ap
sB8a0Da47ap
sB8a28a00ap
sB8a02ap
sB9a00np
sB8a02a00ap
sB8aD0aFFap
sB8aD1aFFap
sB8aD2aFFap
sB8aD3aFFap
sB8aD4aFFap
sB8aD5aFFap
sB8aD6aFFap
sB8aD7aFFap
sB8aD8aFFap
sB8aD9aFFap
sB8aDAaFFap
sB8aDBaFFap
sB8aDCaFFap
sB8aDDaFFap
sB8aDEaFFap
sB8aDFaFFap
sB8aE0aFFap
sB8aE1aFFap
sB8aE2aFFap
sB8aE3aFFap
sB8aE4aFFap
sB8aE5aFFap
sB8aE6aFFap
sB8aE7aFFap
sB8aE8aFFap
sB8aE9aFFap
sB8aEAaFFap
sB8aEBaFFap
sB8aECaFFap
sB8aEDaFFap
sB8aEEaFFap
sB8aEFaFFap
sB8aF0aFFap
sB8aF1aFFap
sB8aF2aFFap
sB8aF3aFFap
sB8aF4aFFap
sB8aF5aFFap
sB8aF6aFFap
sB8aF7aFFap
sB8aF8aFFap
sB8aF9aFFap
sB8aFAaFFap
sB8aFBaFFap
sB8aCFa00ap
sB8aC4a20ap
sB8aC5a01ap
sB8aC3a38ap
sB8aC3a00ap
sB8aC3a3Fap
sB8aC3a00ap
sB8aC3a00ap
sB8aC3a71ap
sB8aC3a6Eap
sB8aC3a43ap
sB8aC3a69ap
sB8aC3a7Cap
sB8aC3a08ap
sB8aC3a00ap
sB8aC3a00ap
sB8aC3a00ap
sB8aC3a39ap
sB8aC3a00ap
sB8aC3a38ap
sB8aC3a00ap
sB8aC3a3Fap
sB8aC3a00ap
sB8aC3a00ap
sB8aC3a71ap
sB8aC3a6Eap
sB8aC3a43ap
sB8aC3a69ap
sB8aC3a7Cap
sB8aC3a08ap
sB8aC3a00ap
sB8aC3a00ap
sB8aC3a00ap
sB8aC3a39ap
sB8aC3a00ap
sB8aECa09ap
sB8aEDa09ap
sB8aCDa01ap
sB8aCBa4Eap
sB8aCCa00ap
sB8a30a01ap
sB8a03a6Fap
sB8a00a02ap
sB8a0Ba00ap
sB8a88ap
sB9a11np
sB8a0Ba00ap
sB8a0Ba00ap
sB8a0Fa02ap
sB8a27a20ap
sB8a1Aa0Cap
sB8a04aC0ap
sB8a1Ba14ap
sB8a0Da47ap
sB8a28a00ap
sB8a02ap
sB9a00np
sB8a02a00ap
sB8aD0aFFap
sB8aD1aFFap
sB8aD2aFFap
sB8aD3aFFap
sB8aD4aFFap
sB8aD5aFFap
sB8aD6aFFap
sB8aD7aFFap
sB8aD8aFFap
sB8aD9aFFap
sB8aDAaFFap
sB8aDBaFFap
sB8aDCaFFap
sB8aDDaFFap
sB8aDEaFFap
sB8aDFaFFap
sB8aE0aFFap
sB8aE1aFFap
sB8aE2aFFap
sB8aE3aFFap
sB8aE4aFFap
sB8aE5aFFap
sB8aE6aFFap
sB8aE7aFFap
sB8aE8aFFap
sB8aE9aFFap
sB8aEAaFFap
sB8aEBaFFap
sB8aECaFFap
sB8aEDaFFap
sB8aEEaFFap
sB8aEFaFFap
sB8aF0aFFap
sB8aF1aFFap
sB8aF2aFFap
sB8aF3aFFap
sB8aF4aFFap
sB8aF5aFFap
sB8aF6aFFap
sB8aF7aFFap
sB8aF8aFFap
sB8aF9aFFap
sB8aFAaFFap
sB8aFBaFFap
sB8aCFa00ap
sB8aC4a20ap
sB8aC5a01ap
sB8aC3a38ap
sB8aC3a00ap
sB8aC3a3Fap
sB8aC3a00ap
sB8aC3a00ap
sB8aC3a71ap
sB8aC3a6Eap
sB8aC3a43ap
sB8aC3a69ap
sB8aC3a7Cap
sB8aC3a08ap
sB8aC3a00ap
sB8aC3a00ap
sB8aC3a00ap
sB8aC3a39ap
sB8aC3a00ap
sB8aC3a38ap
sB8aC3a00ap
sB8aC3a3Fap
sB8aC3a00ap
sB8aC3a00ap
sB8aC3a71ap
sB8aC3a6Eap
sB8aC3a43ap
sB8aC3a69ap
sB8aC3a7Cap
sB8aC3a08ap
sB8aC3a00ap
sB8aC3a00ap
sB8aC3a00ap
sB8aC3a39ap
sB8aC3a00ap
sB8aECa09ap
sB8aEDa09ap
sB8aCDa01ap
sB8aCBa4Eap
sB8aCCa00ap
sB8a30a01ap
sB8a03a6Fap
sB8a00a02ap
sB8a0Ba00ap
sB8a88ap
sB9a9Enp
C7은 튜너 모듈을 읽고 TVP5150에 액세스 할 수 있습니다. Mac에서 똑같이 처리를 흘리면 잘 작동하지 않습니다. . .
USB를 snoop해 보았는데, USB로의 액세스에서는 I2C의 주소 최하위 비트의 설정이 필요없고, 읽어들일 때에도 짝수의 주소로 USB에 액세스 하고 있어, EM2820이 변환하고 있는 것 같습니다.
EM2820은 설정 레지스터의 주소와 I2C의 주소가 같은 파라미터가 되어 있어 뭔가 이상한 설계입니다.
Reference
이 문제에 관하여(I2C Sniffer), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yamori813/items/4afc8db8bcfbdf4079c7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)