Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LPC2103 вопросы по GPIO
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Папа Карло
Здравствуйте господа.

Недавно собрал свой первый МК на АРМ LPC2103.

С божий помощью он как то подключился к COM-порту и определился в Flash Magic.
Посмотрел я примеры для дерганья ногами МК и написал программу.

Программа прошивается и проходит проверку, но ноги не дёргаются.

Пробовал сам дёргать таким кодом:
Код
#include "lpc2103.h"

int main(void)
{
IODIR |= 0xffffffffL;
IOSET = 0x2000;
}


По идее я ждал. что загорится светодиод, который подключён к резистору 330Ом, а тот к земле.
Но ничего не произошло.

Записал программу миганием светодиодами из примеров в IAR 5.11, но ноги тоже не дёргаются и диодик не горит.

Подскажите пожалуйста минимальную программу для включения диода?

Нога у МК P0.13.
oll
а ногу p0.14 подтянули через 10к к 3В ?
Папа Карло
Подтянул через резистор 56к
InsolentS
Раз уж речь зашла про GPIO, подскажите пожалуйста, можно ли одновременно использовать вывод MOSI в режиме SPI, а вывод MISO просто как GPIO? проц LPC213x
GetSmart
Цитата(InsolentS)
Раз уж речь зашла про GPIO, подскажите пожалуйста, можно ли одновременно использовать вывод MOSI в режиме SPI, а вывод MISO просто как GPIO? проц LPC213x
Можно. Можно даже один SCK выводить.
Папа Карло
Хочу добавить, что выводы RTCK и DBGSEL не подключены.
GetSmart
Опции проекта могут быть неправильными.
oll
рабочий пример для Keil - переделал на кварц 14.7мГц , пробовал - мигает
брал тут http://www.micro4you.com/zencart/index.php...products_id=180
Папа Карло
Вот один из проектов, который не работает.
Он под IAR 5.11

Если кому несложно глянте плиз.

Цитата(oll @ Mar 29 2008, 09:29) *


Спасибо за пример, он дёргается 1111493779.gif
oll
с IAR не работал - там вроде надо править XCL файл, чтоб работало во флэш
посмотрите, может поможет - http://www.caxapa.ru/lib/lpc2000.html и
http://forum.radiospec.ru/index.php?showto...amp;#entry34477
второе, правда для ADUc-ов
задайте вопрос на Сахаре
Папа Карло
Наконец я решил проблему с нерабочей платой.

Решение было простое:
заходим в "ПУСК->Панель Управления->Установка удаление программ->IAR->Удалить"

После чего всё заработало и мой диодик ярко замигал.

Если у кого есть другие методы, было бы интересно узнать.
GetSmart
Цитата(Папа Карло)
Если у кого есть другие методы, было бы интересно узнать.
Попробуй format c:
действует безотказно smile.gif
oll
Да уж - нет доверия компиляторам.
Писать что ли на ассемблере? Где лежат ассемблерные библиотеки для АРМов?
zltigo
Цитата(Папа Карло @ Mar 29 2008, 17:16) *
Если у кого есть другие методы, было бы интересно узнать.

Moderator:
Для обсуждения Ваших """методов""" тему перенес в "Off Topic". Можете продолжать....
sergeyip
Цитата(oll @ Mar 29 2008, 10:29) *
рабочий пример для Keil -

Тот же самый пример- проект переведен в ИАР. Недавно - квартал назат скачал ИАР и уже он устарел. Проект Папы Карло не открывается в моей среде. Диодики в ИАРЕ стали мигать медленнее, поэтому константу задержки 6666 я заменил на 1000:)
Папа Карло
Всем привет.

Появились неясности в программировании МК LPC2103.

Среда теперь Keil демо с сайта язык СИ.

Первое, тактирование МК.
У меня внешний кварц на 12МГц.
МК сам запускается от внешнего кварца или его надо переключать ?

Пробовал настроить UART на 9600, но вышло 19200.

Вот настройки:
Код
  PINSEL0 = 0x00000005;           /* Enable RxD0 and TxD0                     */
  U0FCR = 0x7;//Enable FIFO
  U0LCR = 0x83;                   /* 8 bits, no Parity, 1 Stop bit            */
  U0DLL = 48;                     /* 9600 Baud Rate @ 12MHz VPB Clock         */
  U0DLM = 0;
  U0LCR = 0x03;                   /* DLAB = 0*/


Что я не правильно настроил ?
aaarrr
Посчитали неправильно: 12000000 / 16 / 48 = 15625.
KRS
Цитата(Папа Карло @ Mar 30 2008, 18:56) *
Среда теперь Keil демо с сайта язык СИ.


Цитата(Папа Карло @ Mar 30 2008, 18:56) *
Пробовал настроить UART на 9600, но вышло 19200.


При таких настойах если у вас получилось 19200, то кварц у вас 14.7456 МГЦ ( если конечно VPDIV у вас 1, если мне не изменяет память по умолчанию он 4, и PLL вы не включали).

ЗЫ А как насчет простого решения снети теперь Keil и поставить например CrossWorks
Папа Карло
Цитата(aaarrr @ Mar 30 2008, 20:30) *
Посчитали неправильно: 12000000 / 16 / 48 = 15625.


Если у меня стоит 15625 бод, то будет работать с компьютером у которого 19200 бод ?

На кварце написано 12МГц.

PLL настроился сам стартовой программой.
Там написано так:
MSEL 5
PSEL 2

VPDIV галочка убрана и он не настраивался.

Посчитал, и правда по формлам у меня кварц 14МГц.

Как это возможно?
У кварца стоят конденсаторы на 22пФ.
KRS
Цитата(Папа Карло @ Mar 30 2008, 20:53) *
Если у меня стоит 15625 бод, то будет работать с компьютером у которого 19200 бод ?

На кварце написано 12МГц.

PLL настроился сам стартовой программой.
Там написано так:
MSEL 5
PSEL 2

VPDIV галочка убрана и он не настраивался.

Так у вас частота 60 МГц переферии 60/4 = 15
UART получается 15000000/16/48 = 19531
Папа Карло
С делителем 98 заработало на 9600 бод.

Ещё проблемка.

Взял функции из примеров на сайте NXP по передаче строки в UART.

Код
#define TEMT (1<<6)

void send_uart0(unsigned char b)
{
while( !(U0LSR & TEMT) );
U0THR = b;
}

void PrintString(const char *s)
{
while(*s)
    {
    if(*s == '\n')
        send_uart0('\r');
    send_uart0(*s);
    s++;
    }
}


После нескольких вот таких вызовов:
Код
PrintString("Start program.\r");


МК зависает.
Wano
Хорошо бы глянуть в отладчике куда переходит и в каком месте процессор.
sergeyip
Цитата(Папа Карло @ Mar 30 2008, 21:14) *
Ещё проблемка.
МК зависает.

Нужно целиком программу прикладывать. Подпрограммы NXP без ошибок, глюк наверняка у вас в теле программы.
Папа Карло
Вот проект.

И ещё, подскажите плиз.

Есть ли внутренняя подтяжка входов, как у AVR ?
Чтоб внешние резисторы не ставить.
sergeyip
Цитата(Папа Карло @ Mar 31 2008, 12:17) *
Вот проект.
Все переменные, которые используются в ПП прерывания и в основной программе , одновременно, должны объявляться определителем volatile smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.