I2C Sniffer

6209 단어 ATtiny85I2C
EM2820에 연결된 TVP5150 의 설정을 확인하기 위해 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는 나름의 처리 속도가 요구되어 다음과 같은 방법이 생각됩니다.
  • 빠른 CPU 사용
  • 마이크로 컴퓨터의 기능을 잘 사용합니다
  • 기능 제한
  • FPGA에서 전용 로직 만들기

  • 처음에 @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의 주소가 같은 파라미터가 되어 있어 뭔가 이상한 설계입니다.

    좋은 웹페이지 즐겨찾기