ATTiny85 용 I2C 라이브러리?

Digispark ATTiny85 보드를 사용하여 I2C 데이터를 전송하고 싶습니다.

다음 I2C 라이브러리를 찾았습니다. 어느 것이 더 가볍고 안정적이며 버그가없고 효율적이고 강력하며 사용하기 쉬운가요?

  • Adafruit의 TinyWireM 은 2 년 동안 업데이트되지 않았습니다.

  • felias-fogg “의 SoftI2CMaster 가이 게시물이 나온 후 며칠 내에 업데이트되었습니다.

  • lucullusTheOnly “의 TinyWire 는”TinyWireM 및 TinyWireS 라이브러리를 기반으로 “몇 년간의 개선을 나타냅니다. 이 버전은 TinyWireM의 공동 제작자 인 BroHogan이 권장합니다. https://playground.arduino.cc/Code/USIi2c

Wire는 기능이 부족한 것 같습니다.

“기본 Arduino Wire () 라이브러리는 버스 속도 변경을 지원하지 않거나 적절한 클럭을 제공합니다. 확장 지원. 이렇게하면 기본 라이브러리가 약간만 작동합니다. “ https://www.maxbotix.com/articles/095.htm

ATTiny에 사용할 수있는 다른 I2C 라이브러리는 무엇인가요? IDE에서 Digispark SoftSerial, OneWire 및 VirtualWire를 볼 수 있습니다.

모두 어떻게 비교됩니까?


참고, 다음 답변은 내 질문과 관련이없는 것 입니다.

댓글

  • 둘 다 시도해보세요 … 가장 많은 예제 코드가있는 것부터 먼저

답변

I2C 데이터를 전송하고 싶습니다 …

조금 모호합니다.

어떤 기기로 전송 하시겠습니까? 데이터 속도 (100kHz, 400kHz)는 얼마나 빠릅니까? 당신의 유일한 전송이고 아무것도 읽지 않습니까? I2C 버스의 유휴 전압은 얼마입니까 (원하는 버스 속도에 대해 올바른 풀업 저항 값을 선택했는지 묻기 위해)?

Wire 라이브러리가 코어 클럭 속도를 지원하지 않는다고 언급했습니다. 약간의 해킹없이 변경되지만 마이크로 컨트롤러를 실행하려는 속도 또는 I2C를 사용하려는 속도에 대해서는 언급하지 마십시오. 속도를 올리셨 기 때문에 400kHz를 추측 할 수 있지만 “질문에 답하는 좋은 방법은 아닙니다.

나는 100kHz의 I2C 버스 속도로 Arduino UNO에서 Wire 라이브러리를 사용하고 있습니다.” s는 내 요구에 잘 맞았습니다. 나는 바이트를 안팎으로 얻었습니다.

이 시점에서 가장 좋은 제안은 위의 라이브러리 중 하나가 원하는 기능을 지원하지 않는 경우 포크하고 기능에 대한 지원을 직접 추가하는 것입니다. “하나의 슬레이브 장치로만 전송하는 경우 TinyWire 처럼 버스 중재에 대해 걱정할 필요가 없습니다. Adafruit는 대부분 괜찮지 만 버그를 수정하고 코드를 유지하는 데는 느리게 보입니다. 그러나 코드의 나이가 여러분에게 알려지지 않도록하십시오. I2C는 1982 년에 만들어졌고 “아직 사용하고 있습니다 … 😛

다음은 제가 접근하는 방법입니다. 라이브러리 선택 :

  • 필요한 기능 정의
  • 이러한 기능을 대부분 포함하는 라이브러리 찾기
  • 필요한 새 기능 추가
  • li>

  • 풀 요청

답변 <을 통해 추가 된 기능을 커뮤니티와 공유 할 수 있습니다. / h2>

bHogan 은 TinyWireM 및 TinyWireS의 최초 개발자 인 것 같습니다. Andreas Spiess ( “스위스 악센트를 가진 사람”)는 rambo의 TinyWire 라이브러리 구현 그의 I2C 센서와 GitHub의 rambo와 arduino.cc의 bHogan이 같은 사람인 것 같습니다 …

또한 rambo의 TinyWire 라이브러리를 사용하여 만들었습니다. TinyWire의 Adafruits 버전은 람보의 코드 포크 인 것 같습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다