реклама на сайте
подробности

 
 
> LPC2103 вопросы по GPIO, и т.д....
Папа Карло
сообщение Mar 28 2008, 16:05
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Здравствуйте господа.

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

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

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

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

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


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

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

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

Нога у МК P0.13.
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 24)
Папа Карло
сообщение Mar 30 2008, 15:56
Сообщение #16


Частый гость
**

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Всем привет.

Появились неясности в программировании МК 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*/


Что я не правильно настроил ?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 30 2008, 16:30
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Посчитали неправильно: 12000000 / 16 / 48 = 15625.
Go to the top of the page
 
+Quote Post
KRS
сообщение Mar 30 2008, 16:42
Сообщение #18


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Папа Карло @ Mar 30 2008, 18:56) *
Среда теперь Keil демо с сайта язык СИ.


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


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

ЗЫ А как насчет простого решения снети теперь Keil и поставить например CrossWorks
Go to the top of the page
 
+Quote Post
Папа Карло
сообщение Mar 30 2008, 16:59
Сообщение #19


Частый гость
**

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Цитата(aaarrr @ Mar 30 2008, 20:30) *
Посчитали неправильно: 12000000 / 16 / 48 = 15625.


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

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

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

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

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

Как это возможно?
У кварца стоят конденсаторы на 22пФ.
Go to the top of the page
 
+Quote Post
KRS
сообщение Mar 30 2008, 16:59
Сообщение #20


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Папа Карло @ Mar 30 2008, 20:53) *
Если у меня стоит 15625 бод, то будет работать с компьютером у которого 19200 бод ?

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

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

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

Так у вас частота 60 МГц переферии 60/4 = 15
UART получается 15000000/16/48 = 19531
Go to the top of the page
 
+Quote Post
Папа Карло
сообщение Mar 30 2008, 17:14
Сообщение #21


Частый гость
**

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



С делителем 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");


МК зависает.

Сообщение отредактировал Папа Карло - Mar 30 2008, 17:15
Go to the top of the page
 
+Quote Post
Wano
сообщение Mar 30 2008, 20:11
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 272
Регистрация: 3-06-06
Пользователь №: 17 737



Хорошо бы глянуть в отладчике куда переходит и в каком месте процессор.
Go to the top of the page
 
+Quote Post
sergeyip
сообщение Mar 30 2008, 20:51
Сообщение #23


Местный
***

Группа: Участник
Сообщений: 251
Регистрация: 15-12-05
Из: Москва
Пользователь №: 12 247



Цитата(Папа Карло @ Mar 30 2008, 21:14) *
Ещё проблемка.
МК зависает.

Нужно целиком программу прикладывать. Подпрограммы NXP без ошибок, глюк наверняка у вас в теле программы.
Go to the top of the page
 
+Quote Post
Папа Карло
сообщение Mar 31 2008, 08:17
Сообщение #24


Частый гость
**

Группа: Новичок
Сообщений: 176
Регистрация: 15-02-08
Из: Москва
Пользователь №: 35 074



Вот проект.

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

Есть ли внутренняя подтяжка входов, как у AVR ?
Чтоб внешние резисторы не ставить.
Прикрепленные файлы
Прикрепленный файл  uart1.zip ( 45.8 килобайт ) Кол-во скачиваний: 23
 
Go to the top of the page
 
+Quote Post
sergeyip
сообщение Apr 1 2008, 09:30
Сообщение #25


Местный
***

Группа: Участник
Сообщений: 251
Регистрация: 15-12-05
Из: Москва
Пользователь №: 12 247



Цитата(Папа Карло @ Mar 31 2008, 12:17) *
Вот проект.
Все переменные, которые используются в ПП прерывания и в основной программе , одновременно, должны объявляться определителем volatile smile.gif

Сообщение отредактировал sergeyip - Apr 1 2008, 09:35
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01443 секунд с 7
ELECTRONIX ©2004-2016