roboforum.ru

Технический форум по робототехнике.

LPC1111... Вопросы.

LPC1111... Вопросы.

Michael_K » 12 дек 2010, 16:01

Сабж.

ноги не желают переключаться в PIO - выходы.
Последний раз редактировалось Michael_K 16 дек 2010, 00:39, всего редактировалось 1 раз.

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Сергей » 12 дек 2010, 17:05

Я не работал с LPC1111, пока только LPC1343, но хочу отметить что эти чипы сделаны на "скорую руку". Еррата только наполняется, а также появляются новые версии чипов.

Добавлено спустя 2 минуты 45 секунд:
Кстати, ты бы привел код как происходит у тебя инициализация GPIO

Добавлено спустя 7 минут 17 секунд:
И еще как вариант можно проверить в симуляторе keil.

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Michael_K » 12 дек 2010, 18:17

эти ноги по умолчанию (после ресета) работают как дебуг-интерфейс
- SWDIO и SDCLK, соответственно.
Назначаю их на PIO - выход так:

LPC_IOCON->ARM_SWDIO_PIO1_3 = 0xC1;
LPC_GPIO1->DIR = 0x00000008;

Нифига не происходит - снаружи выглядят как просто ноги с подтяжками.
Симулятор чем поможет? Регистры пишутся (нормально считывается обратно, что записал).

Добавлено спустя 2 минуты 9 секунд:
остальные ноги работают (как минимум те, что мне были нужны)

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Сергей » 12 дек 2010, 19:45

Ну вроде должно быть все нормально, нашел интересную запись про PIO1_3
This pin can be used for other functions
such as GPIO, but it should not be held low on power-up or reset.


Кстати, а маску порта ты случаем не настраивал?

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Виталий » 12 дек 2010, 19:59

Так может этот самый debug интерфейс следует отрубить?

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Michael_K » 12 дек 2010, 20:01

При стартапе - пусть болтаются как хотят - элементаоно светодиод туда подцепить хотябы.
Маски не настраивал - (и не понимаю, если честно, что за маска порта?)

Вот буквально сокращаю код до двух строчек - со всеми ногами работает, а с этими нет.
(Ну и необходимый минимум настроек - разрешаю клоки в IOCON, AHB итп.)

Добавлено спустя 22 секунды:
Виталий писал(а):Так может этот самый debug интерфейс следует отрубить?

может быть. КАК?

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Сергей » 12 дек 2010, 20:03

debug не отрубить.
Попробуй в IOCON записать не 0xC1 а 0xC0 и увидишь сюрприз =)

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Michael_K » 12 дек 2010, 20:25

эмм... подтяжка отключилась вроде, но управляться по-прежнему не хочет...

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Сергей » 12 дек 2010, 20:42

Код: Выделить всёРазвернуть
LPC_GPIO1->DIR |= (1<<3);
LPC_GPIO1->DATA &=~(1<<3);

LPC_IOCON->ARM_SWDIO_PIO1_3 = 0xC0;
     
LPC_GPIO1->DATA |= (1<<3);


Вот так к примеру можешь попробовать, это как я пробую в симуляторе.

Добавлено спустя 10 минут 21 секунду:
Проверь, пожалуйста вот этот код
Код: Выделить всёРазвернуть
LPC_GPIO1->DIR |= (1UL<<3);
LPC_GPIO1->DATA &=~(1UL<<3);

LPC_IOCON->ARM_SWDIO_PIO1_3 = 0xC0UL;
     
LPC_GPIO1->DATA |= (1UL<<3);


Если не заработает, то в этом же коде вместе 0xC0UL поставь прежний вариант 0xC1UL.

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Michael_K » 12 дек 2010, 20:55

это только в симуляторе.
добавил к вашим строчкам цикл
Код: Выделить всёРазвернуть
LPC_GPIO1->DIR |= (1<<3);
LPC_GPIO1->DATA &=~(1<<3);

LPC_IOCON->ARM_SWDIO_PIO1_3 = 0xC0;
     
while(1)
{
   LPC_GPIO1->DATA |= (1<<3);
   for(i=0;i<20;i++);
   LPC_GPIO1->DATA &= ~(1<<3);
   for(i=0;i<20;i++);
}

на осцилле стоит единица :(

Добавлено спустя 3 минуты 35 секунд:
ни с с0, ни с с1

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Сергей » 12 дек 2010, 20:55

Проверь последний предложенный мной вариант

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Michael_K » 12 дек 2010, 20:55

угу - один фиг

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Сергей » 12 дек 2010, 20:59

с добавленным UL не работает? Попробуй тогда еще в качестве варианта IOCON 0xC2, 0xC3

Добавлено спустя 19 секунд:
Кста, компилятор то какой?

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Michael_K » 12 дек 2010, 21:01

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

разрезал уже плату - на другие ноги подцепил...
но "осадок остался" :(
да и вообще некрасиво.

Re: LPC1111... как использовать ноги PIO1_3 и PIO0_10?

Сергей » 12 дек 2010, 21:07

Вот я в кейловском симуляторе и проверял.
Я где-то видел, что в LPC134x на порту перепутали что-то с IOCON, только вот найти не могу что и где :D


Rambler\'s Top100 Mail.ru counter