Нужна полезная библиотека связи на 1-4 выводах ATtiny84 вместо I2C

Я напортачил при проектировании своей печатной платы и просто предположил, что могу использовать программное обеспечение slave I2C с ATtiny84.

Причина, по которой я это сделал, заключается в том, что мне нужно было использовать все аналоговые входы.

Контакты, которые у меня есть на разъеме, следующие:

PB0 (вывод 2), PB1 (вывод 3), PB2 (вывод 5) и PA0 (вывод 13)

Есть ли альтернатива I2C или другой протокол связи, который я мог бы использовать для подключения нескольких из этих подчиненных плат к ведущему (ATMEGA328 и т.д.)?

Большое спасибо, я могу предоставить любую дополнительную информацию.

, 👍2

Обсуждение

SPI без MOSI (односторонняя связь) требуется только два контакта CLK и MISO. Это сэкономит вам один пин., @Dougie

Вы можете написать потрясающую реализацию I2C. -- Как и любой другой последовательный протокол. -- Вы могли бы даже изобрести свой собственный протокол, но это неразумно. -- Существует множество последовательных протоколов, начиная с 1 провода., @the busybee


1 ответ


1

Это много пинов, так что все действительно сводится к вашему приложению и тому, для чего вы хотите оптимизировать.

Вы могли бы сделать немного потрепанный программный I2C-ведомый на этих выводах. "Битовый взрыв" означает, что вы просто пишете программу для переключения битов на выводах, а не передаете байты аппаратному обеспечению, которое будет делать то же самое (хотя иногда быстрее или без использования циклов процессора). Для этого потребуется либо найти какой-то существующий код для реализации протокола, либо ознакомиться с документацией по протоколу и написать ее самостоятельно. В зависимости от ваших целей, второй вариант может стать отличным опытом обучения и отнять у этого материала часть магии. Это всего лишь 1 и 0, и как только вы действительно усвоите это, вы поймете, что с этими маленькими чипами вы можете делать почти все, что угодно, независимо от аппаратной или библиотечной поддержки.

,