Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ATmega328P I2C
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
ClockworkOrange
Задача - работа с шиной I2C,
изучаю примеры, которые в сети.

Не могу взять в толк - почему во всех примерах не задаётся конфигурировние пинов, на которых сидит HW I2C (dвыбор I2C/GPIO и режим - открытый коллектор)?

для примера тут - http://www.embedds.com/programming-avr-i2c-interface/
mempfis_
Цитата(ClockworkOrange @ Feb 5 2014, 16:12) *
Не могу взять в толк - почему во всех примерах не задаётся конфигурировние пинов, на которых сидит HW I2C (dвыбор I2C/GPIO и режим - открытый коллектор)?


Какое конфигурирование Вы имеете ввиду? Давно работал с AVR, но там вроде если разрешается переферийный модуль, то автоматически разрешаются альтернативные ф-ии пинов, соответствующие этому модулю. Поэтому вероятно ничего не конфигурируют в GPIO. Достаточно разрешить I2c - и пины сами автоматически настроятся.
_Артём_
Цитата(ClockworkOrange @ Feb 5 2014, 15:12) *
Не могу взять в толк - почему во всех примерах не задаётся конфигурировние пинов, на которых сидит HW I2C (dвыбор I2C/GPIO и режим - открытый коллектор)?
Так сделано в MegaAVR. Но можно и задавать:
Цитата
Note that the internal pull-ups in the AVR
pads can be enabled by setting the PORT bits corresponding to the SCL and SDA pins, as
explained in the I/O Port section. The internal pull-ups can in some systems eliminate the need
for external ones.
ClockworkOrange
да, но в тех же примерах для AVR для интерфейса SPI выводы конфигурятся "руками" - задаётся направление, а для ~CS еще и полностью ручное руление.
_Артём_
Цитата(ClockworkOrange @ Feb 5 2014, 15:50) *
для интерфейса SPI выводы конфигурятся "руками"
Ну так то SPI - там возможны варианты использования:
для мастера
1) используется CS-SCK-MISO-MOSI
2) CS-SCK-MISO
3) CS-SCK-MOSI
4) SCK-MISO-MOSI
5) что-то забыл?
А для TWI какие варианты? Кроме подключить-не подключить pull-up внутри и нет ничего.

P.S. Для UART-а тоже направление не задаётся (UART для примера привожу). Альтернативная функция переписывает TX. А RX? Хм - может pullup можно и подвесить. Не, пишут что - RxD pin is overridden by the USART.

Случаи бывают разные...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.