Перейти к содержанию
    

ATmega328P I2C

Задача - работа с шиной I2C,

изучаю примеры, которые в сети.

 

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

 

для примера тут - http://www.embedds.com/programming-avr-i2c-interface/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Какое конфигурирование Вы имеете ввиду? Давно работал с AVR, но там вроде если разрешается переферийный модуль, то автоматически разрешаются альтернативные ф-ии пинов, соответствующие этому модулю. Поэтому вероятно ничего не конфигурируют в GPIO. Достаточно разрешить I2c - и пины сами автоматически настроятся.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не могу взять в толк - почему во всех примерах не задаётся конфигурировние пинов, на которых сидит 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да, но в тех же примерах для AVR для интерфейса SPI выводы конфигурятся "руками" - задаётся направление, а для ~CS еще и полностью ручное руление.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для интерфейса 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.

 

Случаи бывают разные...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...