Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как себя вести Open-drain
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Leopoldius
Доброго времени суток.

Попался мне в руки AT91SAM7X256 с платой EtheRus. Занялся разбором сей игрушки 1111493779.gif

Возник попутно вопрос...
Как правильно настроить выход с Open-drain? Правильно ли таким образом будет это сделать. smile3046.gif

Я делал так:

CODE

AT91F_PIOB_CfgPMC();
AT91F_PIO_Enable(PinsPIO.BASE_FOR_PIOs, PinsPIO.SelectedPins);
AT91F_PIO_CfgOutput(PinsPIO.BASE_FOR_PIOs, PinsPIO.SelectedPins);
AT91F_PIO_OutputWriteEnable(PinsPIO.BASE_FOR_PIOs, PinsPIO.SelectedPins);



PinsPIO структура, которая обьявлена как,


CODE

typedef struct _ConfPios
{
unsigned int Selected_PIOs_To_PMC; // Определяем к которому из PIO контроллеров хотим подключить тактовые импульсы
AT91PS_PIO BASE_FOR_PIOs; // Базовый адрес для PIO
unsigned int SelectedPins; // Выводы с которыми работаем
unsigned int PinsMode; // Желаемый режим вывода
int defPinState; // Состояние конфигурируемых выводов по умолчанию

} AT91_STR_PIOs_Config;



Програмирую в uVision 3.90

З.Ы.: Прошу сильно не пинать, т.к. С я учу вместе с раскуриванием данного процесора. Раньше писал для AVR на АСМе и Паскале.
З.Ы.Ы.: Подскажите пожалуйста попутно полезных сайтов по С для АРМ, и вообще где про этот контроллер можно почитать

Спасибо
Сергей Борщ
Open drain включается записью 1 в соответствующий бит регистра AT91C_BASE_PIOA->PIO_MDER. Как это делается вашими чудо-макросами - неизвестно ("Наши люди в булочную на такси не ездят").
Leopoldius
Цитата(Сергей Борщ @ Apr 13 2011, 10:34) *
Open drain включается записью 1 в соответствующий бит регистра AT91C_BASE_PIOA->PIO_MDER. Как это делается вашими чудо-макросами - неизвестно ("Наши люди в булочную на такси не ездят").


Это не чудомакросы, а взятые ф-ции с ствндартной библиотеки Keil, которая зовется lib_AT9SAM7X256.h

Описание которой лежит вот здесь

Извините, я наверное неправильно выразился..
Правильной ли будет последовательность включения Open-Drain вывода выполненая в такой последовательности:

1. Подключить выбраный PIO к тактовому генератору
2. Указать что данный вывод мы хотим использовать как выход
3. Разрешить изменение состояние выхода
4. Указать что данный вывод является выходом с Open-Drain

Или достаточно пунктов 1 и 4.

Спасибо.
aaarrr
Цитата(Leopoldius @ Apr 13 2011, 13:04) *
Это не чудомакросы, а взятые ф-ции с ствндартной библиотеки Keil, которая зовется lib_AT9SAM7X256.h

Данная "библиотека" рождена Атмелом. И лучше ей не пользоваться.

Цитата(Leopoldius @ Apr 13 2011, 13:04) *
Правильной ли будет последовательность включения Open-Drain вывода выполненая в такой последовательности:

Пункт 1 для выхода не нужен, тактирование требуется только если пин используется как вход. Для настройки пина как OD нужно:
1. записать PIO_PER
2. записать PIO_OER
2. записать PIO_MDER
Посмотрите в DS картинку I/O Line Control Logic.

Ну или руками: выставить данные в '0', рулить через OER/ODR - разницы нет никакой.
Leopoldius
Спасибо за ответ.

Цитата(aaarrr @ Apr 13 2011, 12:30) *
Данная "библиотека" рождена Атмелом. И лучше ей не пользоваться.


Чем тогда пользоватся? Руками писать свою библиотечку

aaarrr Если не секрет, в чем ее недостаток? Если это возможно, можете подсказать сайты, где можно взять примеры к данному контроллеру
aaarrr
Цитата(Leopoldius @ Apr 13 2011, 13:35) *
Чем тогда пользоватся? Руками писать свою библиотечку

Пользоваться руками и головой. Но библиотеку писать совсем не обязательно.

Цитата(Leopoldius @ Apr 13 2011, 13:35) *
aaarrr Если не секрет, в чем ее недостаток?

Набор предоставляемых ей функций предельно примитивен (как минимум 90% - это записать значение(я) в регистр(ы)).
Зато создается некоторый уровень "абстракции", который на деле:
а) изрядно затрудняет чтение программы
б) для начинающих зачастую подменяет изучение документации на контроллер
Кроме того, она содержит большое количество "индусского" кода.
Leopoldius
Спасибо за ответы. Процес пошел, пока на уровне smile3046.gif ) Но я думаю что все впереди a14.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.