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

 
 
> Не могу зажечь светодиод на ноге у LPC2368
ArtemDement
сообщение May 3 2010, 10:16
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460



Цитата(shahr @ Jul 22 2009, 13:35) *
Опыта пока нет, но можно побетатестировать вот такую плату на LPC2368 в режиме онлайн:



Здесь!


Есть у меня такая платка, штука интересная, прошивать ее не надо, просто достаточно кинуть bin-файл на флешку(сама платка как-бы ею и является). Вот только как HEX-файл от Keil заставить в ней работать ?
Может есть конвертер какой ?
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 36)
ArtemDement
сообщение May 3 2010, 10:23
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460



Цитата(-= Александр =- @ Feb 26 2010, 17:05) *
Теперь такой вопрос: как научить Keil шить через H-Flasher?


Найден ли ответ на этот вопрос ?
Go to the top of the page
 
+Quote Post
ArtemDement
сообщение May 3 2010, 10:35
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460



Проблема - не могу зажечь светодиод на ноге P1.23 контроллера - LPC2368.


Код
#include <LPC23xx.h>

#define dword unsigned long int


void set_pin(dword p)
{
IOSET1=p;
}


void clear_pin(dword p)
{
IOCLR1=p;
}


void init_pins(dword p)
{
IODIR1=p;
}


#define PIN 1<<23



unsigned int i,j,z;



void main(void) {



init_pins(PIN);

z=123;


while (1)
{

set_pin(PIN);

for (i=1;i<10000;i++) j=z*z;

clear_pin(PIN);

for (i=1;i<10000;i++) j=z*z;

}

}
Go to the top of the page
 
+Quote Post
stasyud
сообщение May 3 2010, 12:12
Сообщение #4





Группа: Участник
Сообщений: 6
Регистрация: 6-03-08
Пользователь №: 35 706



IOSET1, IODIR1, IOCLR1 - что-то я не нашел в даташите таких регистров, зато есть - IO1SET, IO1DIR, IO1CLR.
Или у Вас в хидере они так обозначены? wink.gif
Ну, и переименовывать типы данных надо через typedef, а не - define.

Сообщение отредактировал stasyud - May 3 2010, 12:19
Go to the top of the page
 
+Quote Post
DRUID3
сообщение May 3 2010, 12:28
Сообщение #5


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(stasyud @ May 3 2010, 15:12) *
IOSET1, IODIR1, IOCLR1 - что-то я не нашел в даташите таких регистров, зато есть - IO1SET, IO1DIR, IO1CLR.
Или у Вас в хидере они так обозначены? wink.gif
Ну, и переименовывать типы данных надо через typedef, а не - define.

Ерунда... Такие регистры есть(по крайней мере были)...
Да и через define можно ввести DWORD.


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
ArtemDement
сообщение May 3 2010, 12:31
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460



Полагаю, если бы их не было, то Keil просто не позволил бы создать HEX-файл и вывел сообщения о ошибках ?
Go to the top of the page
 
+Quote Post
DRUID3
сообщение May 3 2010, 12:35
Сообщение #7


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



1<<1 //2-ая нога

1<<23 //24-ая...

Эта нога ожидается?


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
ArtemDement
сообщение May 3 2010, 12:44
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460



Светодиод не зажигается при присоединении к любому из выводов этого порта.
Go to the top of the page
 
+Quote Post
DRUID3
сообщение May 3 2010, 12:56
Сообщение #9


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



...а 3.3V он открывается вообще? Резистор токоограничения какой?


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
ArtemDement
сообщение May 3 2010, 12:57
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460



Резистор 1к
Go to the top of the page
 
+Quote Post
stasyud
сообщение May 3 2010, 12:59
Сообщение #11





Группа: Участник
Сообщений: 6
Регистрация: 6-03-08
Пользователь №: 35 706



Цитата
Ерунда... Такие регистры есть(по крайней мере были)...

В юзер мануале их нету, зато в кейловском хидере они есть)))

Проверил в железе - код работает, правда в функции задержки добавил по нолику, чтобы подольше были.
Go to the top of the page
 
+Quote Post
ArtemDement
сообщение May 3 2010, 13:19
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460



Цитата(stasyud @ May 3 2010, 16:59) *
Проверил в железе - код работает, правда в функции задержки добавил по нолику, чтобы подольше были.


А что за железо ?

Я проверял на такой платке:
http://starterkit.ru/html/index.php?name=s...p=view&id=9


Спасибо доброму модератору, добавившему два моих сообщения из других тем в эту тему.
Наверное, это должно привести к ускорению ответа на них.
smile.gif

Сообщение отредактировал ArtemDement - May 3 2010, 13:19
Go to the top of the page
 
+Quote Post
stasyud
сообщение May 3 2010, 13:22
Сообщение #13





Группа: Участник
Сообщений: 6
Регистрация: 6-03-08
Пользователь №: 35 706



Цитата
А что за железо ?

Плата самодельная, в вашем коде изменил только ногу порта для светодиода
Go to the top of the page
 
+Quote Post
Nixon
сообщение May 3 2010, 13:40
Сообщение #14


Гуру
******

Группа: Админы
Сообщений: 2 736
Регистрация: 17-06-04
Из: Киев
Пользователь №: 48



А вы случайно в SCS бит GPIOM в "1" не установили?


--------------------
Вам помочь или не мешать?
Go to the top of the page
 
+Quote Post
ArtemDement
сообщение May 3 2010, 17:40
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460



Цитата(Nixon @ May 3 2010, 17:40) *
А вы случайно в SCS бит GPIOM в "1" не установили?


Да, был установлен на "1", но смена на "0" ситуацию не изменила - мигать светодиодом не получается.

Продолжаю тестировать SK-MLPC2368.

Вот код для отправки символов по UART.
Этот код нормально работал с LPC2104, прошиваю в SK-MLPC2368 - никакой реакции.

Код
#include <LPC23xx.h>

#define byte unsigned char


void init_serial (void) /* Initialize Serial Interface */
{
PINSEL0 = 0x00000005; /* Enable RxD0 and TxD0 */
U0LCR = 0x00000083; /* 8 bits, no Parity, 1 Stop bit */
U0DLL = 110; /* 9600 Baud Rate 15MHz VPB Clock */
U0LCR = 0x00000003; /* DLAB = 0 */
}


byte send_byte (byte ch) /* Write character to Serial Port */
{
while (!(U0LSR & 0x20));
return (U0THR = ch);
}


byte b;

void main(void) {

init_serial();


while (1)
{
send_byte(b);
b++;
}


}
Go to the top of the page
 
+Quote Post
Nixon
сообщение May 3 2010, 17:42
Сообщение #16


Гуру
******

Группа: Админы
Сообщений: 2 736
Регистрация: 17-06-04
Из: Киев
Пользователь №: 48



А вы уверены что вы правильно линкуете программу? Судя по наличию вторичного бутлоадера программу нужно линковать не с 0.


--------------------
Вам помочь или не мешать?
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 3 2010, 18:00
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(ArtemDement @ May 3 2010, 20:40) *
Продолжаю тестировать SK-MLPC2368.

Инетесно,следующее сообщение будет не работает USB, или Ethernet?
Цитата
Этот код нормально работал с LPC2104, прошиваю в SK-MLPC2368 - никакой реакции.

PINSEL0 = 0x00000005; /* Enable RxD0 and TxD0 */
U0DLL = 110; /* 9600 Baud Rate 15MHz VPB Clock */

А Вам не показалось, что LP2104 это не LPC2368 и что copy-paste нельзя?



Цитата(Nixon @ May 3 2010, 20:42) *
Судя по наличию вторичного бутлоадера программу нужно линковать не с 0.

Почему решили, что есть "вторичный"?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Nixon
сообщение May 3 2010, 18:56
Сообщение #18


Гуру
******

Группа: Админы
Сообщений: 2 736
Регистрация: 17-06-04
Из: Киев
Пользователь №: 48



2 Zltigo А каким он образом эмулирует флешку?


--------------------
Вам помочь или не мешать?
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 3 2010, 19:15
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Nixon @ May 3 2010, 21:56) *
А каким он образом эмулирует флешку?

Это уже о другой плате:
Цитата
прошиваю в SK-MLPC2368 - никакой реакции.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Nixon
сообщение May 3 2010, 19:21
Сообщение #20


Гуру
******

Группа: Админы
Сообщений: 2 736
Регистрация: 17-06-04
Из: Киев
Пользователь №: 48



А, понятно. Я про первую думал.


--------------------
Вам помочь или не мешать?
Go to the top of the page
 
+Quote Post
stasyud
сообщение May 4 2010, 10:26
Сообщение #21





Группа: Участник
Сообщений: 6
Регистрация: 6-03-08
Пользователь №: 35 706



ArtemDement, вот у NXP есть примеры на всю периферию 2368 под микровижн.
http://ics.nxp.com/support/documents/micro...4xx.uvision.zip
Go to the top of the page
 
+Quote Post
ArtemDement
сообщение May 7 2010, 15:13
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460



Если уж у меня тут репутация "чайника", то ничто не мешает мне задать очередной глупый вопрос - почему при прошивке выдается такое сообщение ?
smile.gif

Сообщение отредактировал ArtemDement - May 7 2010, 15:13
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
DpInRock
сообщение May 7 2010, 20:04
Сообщение #23


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



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


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
ArtemDement
сообщение May 8 2010, 11:15
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460



Цитата(stasyud @ May 4 2010, 14:26) *
ArtemDement, вот у NXP есть примеры на всю периферию 2368 под микровижн.
http://ics.nxp.com/support/documents/micro...4xx.uvision.zip



Еще вопросик - при загрузке файла fio_release.hex, который лежит в code.bundle.lpc23xx.lpc24xx.uvision\LPC23xx_24xxSampleSoftware.r3\Keil\GPIO\Obj светодиоды моргают, при загрузке hex-файла, созданного на основе исходников(без внесения в них изменений) - нет.
Почему ?

Сообщение отредактировал ArtemDement - May 8 2010, 11:16
Go to the top of the page
 
+Quote Post
DpInRock
сообщение May 8 2010, 13:47
Сообщение #25


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



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


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
ArtemDement
сообщение May 9 2010, 08:59
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460



Попробовал поэкспериментировать с настройками линкера - прошивка не исполняет своих функций.
sad.gif
Какие именно настройки влияют на работоспособность прошивки ?
Go to the top of the page
 
+Quote Post
DpInRock
сообщение May 9 2010, 17:50
Сообщение #27


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



А не надо экспериментировать. (Ибо программа может не работать по великой массе причин).
Вот, к примеру, вы куда загружаете программу? А тогда где об этом сказано у линкера?
А не нужно ли делать какой-нибудь ремап в этом случае?
А где стеки? И где об этом у линкера?
А, собственно, кто эти стеки устанавливает?

Ответьте на эти вопросы.

Кроме того - "прошивка не исполняет" - это что значит?


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
ArtemDement
сообщение May 10 2010, 08:29
Сообщение #28


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460



Вот такие настройки по умолчанию.

"Прошивка не исполняется" - на выходе нет ни 0В, ни 3,3 В, а некое промежуточное состояние - 2,2В.

Сообщение отредактировал ArtemDement - May 10 2010, 08:32
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
КСПшник
сообщение May 10 2010, 08:35
Сообщение #29


Участник
*

Группа: Свой
Сообщений: 57
Регистрация: 7-09-05
Пользователь №: 8 307



Цитата(ArtemDement @ May 10 2010, 12:29) *
Вот такие настройки по умолчанию.

"Прошивка не исполняется" - на выходе нет ни 0В, ни 3,3 В, а некое промежуточное состояние - 2,2В.


Осмелюсь предположить, что Вы меняете состояние порта с периодом, меньшим времени интегрирования показаний мультиметра (как я понял Вы именно его используете для измерения напряжения).
Если частоту смены состояния порта поставить меньше (скажем 0.3 - 0.1 Гц), то на "тестере" все будет видно.
Go to the top of the page
 
+Quote Post
ArtemDement
сообщение May 10 2010, 08:43
Сообщение #30


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460



Цитата(КСПшник @ May 10 2010, 12:35) *
Осмелюсь предположить, что Вы меняете состояние порта с периодом, меньшим времени интегрирования показаний мультиметра (как я понял Вы именно его используете для измерения напряжения).
Если частоту смены состояния порта поставить меньше (скажем 0.3 - 0.1 Гц), то на "тестере" все будет видно.


Дело в том, что речь идет про исходник от NXP без всяких изменений и при загрузке файла fio_release.hex мигание отслеживается без проблем этим же мультиметром.
Проблема именно в том, что я как-то неправильно делаю HEX-файл.

Сообщение отредактировал ArtemDement - May 10 2010, 08:43
Go to the top of the page
 
+Quote Post
stasyud
сообщение May 10 2010, 09:39
Сообщение #31





Группа: Участник
Сообщений: 6
Регистрация: 6-03-08
Пользователь №: 35 706



У меня иногда тоже не получалось получить рабочую прошивку - дело было в настройках оптимизации на вкладке "с/с++". Так и не понял как оно там оптимизирует - не работало при уровне оптимизации 0 и 3, а при 2 работало. Попробуйте откомпилить и проверить прошивки с разными уровнями оптимизации.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение May 10 2010, 11:45
Сообщение #32


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Если есть внешняя подтяжка пинов, то 2.2 вольта - это быстрое моргание.
Если нет, то может быть и чем угодно.

По поводу кейла. У вас стоит старт программы с 40000000. У 2368, насколько я помню, флэшка начинается с 0.
C 4000000 начинается RAM. Тогда, видимо, вопрос 1) к тому ЧЕМ вы загружаете и стартуете программу?

Для упрощения жизни ея лучше откомпилировать с адреса 0, после чего зашить во флэш. После чего она будет стартовать самостоятельно. Токо не забыть еще нужные галочки в кейле поставить, чтобы контрольную суммы по вектору 14 поставил нужную (если не ставит автоматически - я просто не знаю).


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
skripach
сообщение May 11 2010, 07:54
Сообщение #33


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Коль вы выпускник"ЛЭТИ" я бы вам посоветовал изучить след. документик:
Цитата
Министерство образования и науки Российской Федерации
Санкт-Петербургский государственный
электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина)


Методические указания
для выполнения лабораторных работ
по дисциплине “Микропроцессорные системы”

Скачать можно сдесь, сори к посту не хочет цепляться.
В своё время мне помогло, хотя ЛЭТИ увы не заканчивал.


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 16 2010, 08:12
Сообщение #34


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Поделюсь своим решением подобной проблемы.
Тоже на порте, к которому был подключен светодиод, висело около 2 V. Ничего там быстро не переключалось. Просто из-за утечек несконфигурированного порта через светодиод (анод подключен к питанию) и резистор протекал маленький ток, создавая то самое падение на светодиоде (около 1 V), и совсем чуть-чуть - на резисторе.
Оказалось, что важно сначала подать такты на порт, а потом конфигурацию задавать. Я делал наоборот, казалось, так логичнее. Вот порт и не работал. Когда перенес тактирование вперед, светодиод засветился.
Работаю с STM32F103, но, думаю, с другими микроконтроллерами от ARM должно быть так же.
Хотя у автора, думаю, проблема в ином...
Go to the top of the page
 
+Quote Post
ArtemDement
сообщение May 22 2010, 17:53
Сообщение #35


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460



Цитата(skripach @ May 11 2010, 11:54) *
Скачать можно сдесь, сори к посту не хочет цепляться.
В своё время мне помогло, хотя ЛЭТИ увы не заканчивал.


Вы вот иронизируете про ЛЭТИ, а у меня на кафедре, между прочим, большинство преподавателей вообще про ARM никогда не слышали, кто МК занимается, считает последним достижением 8051 или AVR.

Проблема разрешилась. Нужно было просто настроить Keil так как показано на скриншотах.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
skripach
сообщение May 22 2010, 20:22
Сообщение #36


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата
у меня на кафедре, между прочим, большинство преподавателей вообще про ARM никогда не слышали

Ну если кафедра физкультуры или экономики какой-нибудь то поверю. Методы по моей ссылке кто-то ведь написал, а там именно ARM LPC... .


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
ArtemDement
сообщение May 23 2010, 07:39
Сообщение #37


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460



Цитата(skripach @ May 23 2010, 00:22) *
Ну если кафедра физкультуры или экономики какой-нибудь то поверю. Методы по моей ссылке кто-то ведь написал, а там именно ARM LPC... .


Кафедра электроакустики и ультразвуковой техники.
По Вашим суждениям сразу видно, что Вы далеки от реалий того, что происходит в ЛЭТИ.
Да, там есть лаборатории с оборудованием NXP, Infineon, Siemens, Motorola, но далеко не все студенты учились хотя бы в одной из них.
Программа обучения на всех факультетах разная, зачастую сильно устаревшая.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 26th July 2025 - 00:05
Рейтинг@Mail.ru


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