06.11.2009, 15:56
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Интерфейсная часть схемы изображена на рисунке внизу.
Она состоит из двух составляющих: - Источника питания +3.3В
- Преобразователя USB ‹-› USART для программирования микроконтроллера
Теперь можно переходить к "вдыханию жизни". Нужно убедиться что:
- Источник питания +3.3В работает
- Пребразователь USB ‹-› USART работает
По первому пункту все ясно: берем вольтметр в руки и проверяем.
По второму пункту необходимы пояснения.
Перед проверкой USB ‹-› USART преобразователя нужно соединить линии RXD и TXD перемычкой. После этого плата подключается к USB порту компьютера. Должно произойти следующее: - Компьютер должен обнаружить новое устройство. Если этого не произошло, нужно искать ошибки при монтаже
- Должны поставиться драйвера. Если компьютер подключен к интернету, то это произойдет автоматически. Иначе может потребоваться загрузить драйвера с сайта производителя FT232. Драйвера находятся на странице http://www.ftdichip.com/Drivers/VCP.htm.
- Должен появится новый COM порт в списке устройств, подключенных к компьютеру
После этого следует убедиться что обмен данными действительно происходит по появившемуся COM порту. Для этого нужно использовать терминальную программу, например, PuTTY. После установки, следует запустить ее и выбрать наш COM порт. Чтобы сделать это, в PuTTY ставим галочку напротив Serial, а в текстовом поле Serial line следует указать имя порта в виде COMX, где X — это номер нашего порта (см. картинку внизу). Потом нажать кнопку Open.
Появляется черное окно терминала, где можно понабирать произвольные символы с помощью клавиатуры (см. картинку). Так как мы соединили RXD и TXD, то все данные, которые отправляются с компьютера должны приходить к нему обратно. Это означает, что мы должны видеть все символы, которые набираем. Если по какой-то причине символы не видны, то нужно искать ошибку в монтаже.
Если все в порядке, то можно считать что тестирование интерфейсной части схемы завершено успешно. Не забываем снять перемычку между RXD и TXD.
Теперь я приступлю непосредственно к "оживлению" микроконтроллера, о чем непременно поведаю в следующем отчете.
Последний раз редактировалось alexgap; 06.11.2009 в 18:54.
|
|
|
Эти 30 пользователя(ей) сказали Спасибо alexgap за это сообщение:
|
artyomugr (21.11.2010), CERGEI1982 (06.11.2009), dimka11 (06.11.2009), Djakovskij (07.01.2012), fantom732 (13.06.2010), fiberline (14.03.2011), fired (12.11.2009), FreshManGood (03.01.2015), gdtron (28.09.2010), gora888 (11.03.2011), maart100 (31.08.2010), mousew1 (15.04.2010), Nickolya_K (10.11.2009), nikcher-65 (31.08.2010), Nikopol (06.11.2009), NurAnion (09.09.2010), Popeye (07.11.2009), Satellite83 (06.11.2009), SErg_pAAA (16.09.2010), starcomputer (17.12.2009), sytyi (18.02.2011), ua4nfx (11.12.2009), Zorhan (16.03.2011), _vz_ (08.11.2009) |
|
08.11.2009, 02:55
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Итак, настало время "собирать камни".
Получившаяся завершенная схема изображена на рисунке внизу. Она состоит из двух уже знакомых нам частей: - Интерфейсной части (источник питания, FT232)
- Микроконтроллера со светодиодом
Отладка и "оживление" первой части уже было рассмотрено и пройдено.
Пришло время "вдохнуть жизнь" в микроконтроллер.
Нашей первой целью в этом кропотливом деле будет обеспечение связи микроконтроллера с компьютером так, чтобы микроконтроллер "обнаружился" с компьютера в утилите внутрисхемного программирования Flash Magic.
Чтобы это стало возможно, нужно аккуратно подключить контроллер согласно схеме. Чтобы не запутаться в номерах ножек нашего 100-пинового героя, их следует подписать как минимум для каждой из четырех сторон (см. вид сверху на плату). Затем подпаивать по одной ножке, предварительно отсчитав и разметив их маркером с обратной стороны платы. Если присмотреться на обратную сторону моей платы, то можно увидеть следы разметки. Для разметки я советую использовать маркер для компакт-дисков.
После того, как монтаж выполнен, необходимо педантично его перепроверить с помощью мультиметра — это сэкономит время и избавит от глупых ошибок. Учитывая большое количество ножек и некоторую "неизвестность" конструкции, это приобретает особенный смысл.
Когда проверка завершена, можно подключить питание +5В к схеме (линия POWER в разьеме USB). Я рекомендую использовать лабораторный блок питания (ЛБП) с установленным ограничением по току около 200 мА — если все-таки где-то закралась каверзная ошибка в монтаже, ограничение тока убережет микроконтроллер от "тепловой смерти".
У меня все получилось сразу — схема потребляла 40 мА при включенном контроллере. Будучи почти уверенным в правильности, я отключил ЛБП и воткнул плату в USB. И произошло долгожданное событие — контроллер "увиделся" утилитой программирования Flash Magic Вид утилиты показан внизу. Перед этим я выбрал COM порт, соответствующий моей плате. После этого я смог прочитать идентификатор устройства (см. картинки). Также я смог "полазить" в памяти с помощью функции Display Memory. Незаписанные байты флэш-памяти по-умолчанию имеют значение 255 (FF).
По общим ощущениям очень напоминает внутрисхемный программатор (ISP) для AVR, только фьюзов нет
В своем следующем отчете я обязательно расскажу о первой программе, которая заставит светодиод LED2 мигать.
П.С. В схеме резисторы R3–R5 необходимы для того, чтобы ограничить ток если "прошивка" окажется "левой" и начнет неожиданно "баловаться" портами.
Последний раз редактировалось alexgap; 08.11.2009 в 03:33.
|
|
|
Эти 40 пользователя(ей) сказали Спасибо alexgap за это сообщение:
|
alexmal99 (09.11.2009), artyomugr (21.11.2010), atsys (09.11.2009), dimka11 (09.11.2009), Djakovskij (07.01.2012), Eleman11 (08.12.2009), fantom732 (13.06.2010), FreshManGood (03.01.2015), gdtron (28.09.2010), INKAR (17.03.2010), LVII (14.11.2009), mousew1 (15.04.2010), NurAnion (09.09.2010), Pavel55 (13.01.2011), qsxxsq (18.02.2010), revector (13.09.2010), Roma_te (10.11.2009), sytyi (18.02.2011), ua4nfx (11.12.2009), Uz_Sleep_Walker (09.11.2009), Vadimku (31.08.2010), Vetal-soft (08.11.2009), wildbrain (15.12.2009), Yegorvin (08.11.2009), Zeman1979 (24.09.2010), zembin (12.11.2009), Zorhan (16.03.2011), _vz_ (08.11.2009) |
|
09.11.2009, 14:58
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
"Железо" готово, теперь поговорим о программе, которая будет мигать нашим светодиодом.
Для ее создания я буду использовать среду Keil. В ее состав входят С/С++ компилятор и интегрированная среда разработки. Демо-версия доступна для скачивания прямо с сайта производителя https://www.keil.com/demo/eval/arm.htm. Внешний вид среды показан на картинке внизу.
Вот что получилось:
Код:
|
#include ‹LPC23xx.H›
#define GPIOM 0x00000001
/* Задержка около 300 мс */
void wait()
{
int d;
for (d = 0; d ‹ 1000000; d++)
{
}
}
int main()
{
/* Выключение режима совместимости с LPC21XX */
SCS |= GPIOM;
/* Установка направления порта. P1[0] - выход */
FIO1DIR = 0x00000001;
for (;;) /* Бесконечный цикл */
{
/* Сброс P1[0]. На выходе лог. 0 */
FIO1CLR = 0x00000001;
/* Пауза */
wait();
/* Установка P1[0]. На выходе лог. 1 */
FIO1SET = 0x00000001;
/* Пауза */
wait();
}
} |
Программа выполняет инициализацию портов ввода-вывода, а потом входит в бесконечный цикл, переключая логический уровень на ножке 95 (P1[0]) микроконтроллера, и светодиод, подключенный к ней, мигает.
Все оказалось просто. Единственное с чем пришлось повозиться, так это с некоторыми опциями проекта, без которых он не хотел "заводиться". Рабочие опции удалось найти в примерах от производителя NXP.
Регистры FIO1DIR, FIO1CLR, FIO1SET подробно описаны в руководстве пользователя для моего микроконтроллера LPC2368.
После сборки проекта (см. вложенный архив) у него на выходе получается файл HelloWorld_LPC2368.hex, который нужно выбрать в утилите внутрисхемного программирования Flash Magic и нажать кнопку Start. Сразу после нажатия, прошивка будет "зашита" в микроконтроллер и светодиод начнет мигать
Я сделал небольшое видео по такому случаю:
Последний раз редактировалось alexgap; 09.11.2009 в 17:54.
|
|
|
Эти 34 пользователя(ей) сказали Спасибо alexgap за это сообщение:
|
artyomugr (09.07.2011), brunql (19.06.2010), dimka11 (09.11.2009), Djakovskij (07.01.2012), Eleman11 (08.12.2009), fantom732 (13.06.2010), fiberline (14.03.2011), FreshManGood (03.01.2015), Jora_fat (20.11.2009), Katran-tayfun (05.02.2010), mousew1 (15.04.2010), NurAnion (09.09.2010), pisto (09.11.2009), revector (13.09.2010), sanstan (10.08.2010), savarez (09.11.2009), Simbr (25.11.2009), sytyi (18.02.2011), ua4nfx (11.12.2009), vitamin01 (10.11.2009), wildbrain (15.12.2009), Zeman1979 (24.09.2010), Zorhan (16.03.2011), Кот Баюн (10.11.2009) |
|
09.11.2009, 15:16
|
|
Временная регистрация
Регистрация: 04.04.2008
Сообщений: 49
Сказал спасибо: 29
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Может забегаю наперед, нно не могли б объяснить один нюанс, сейчас микроконтроллер работает на внутреннем генераторе? На какой частоте?
|
|
|
|
09.11.2009, 15:26
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от dimka11
|
Может забегаю наперед, нно не могли б объяснить один нюанс, сейчас микроконтроллер работает на внутреннем генераторе? На какой частоте?
|
Работает на внутреннем генераторе на частоте около 10 МГц.
|
|
|
Эти 11 пользователя(ей) сказали Спасибо alexgap за это сообщение:
|
|
|
09.11.2009, 17:26
|
|
Частый гость
Регистрация: 09.11.2009
Сообщений: 26
Сказал спасибо: 10
Сказали Спасибо 9 раз(а) в 5 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от alexgap
|
FIO1CLR = 0x00000001;
|
Я так понимаю, что FIO1CLR (равно как и сотоварищи) может принимать только одно значение - 1 ?
|
|
|
|
09.11.2009, 17:41
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от savarez
|
Я так понимаю, что FIO1CLR (равно как и сотоварищи) может принимать только одно значение - 1 ?
|
Может принимать любое значение, в зависимости от того, какие биты порта нужно сбросить в "0".
Мне нужно было сбросить нулевой бит порта P1, поэтому я написал
Код:
|
FIO1CLR = 0x00000001 |
Например, если бы нужно было сбросить 31-й (ножка P1[31]) и 0-й (ножка P1[0]) биты, то следовало бы написать
Код:
|
FIO1CLR = 0x80000001 |
Последний раз редактировалось alexgap; 09.11.2009 в 17:51.
|
|
|
Эти 8 пользователя(ей) сказали Спасибо alexgap за это сообщение:
|
|
|
09.11.2009, 17:53
|
|
Частый гость
Регистрация: 09.11.2009
Сообщений: 26
Сказал спасибо: 10
Сказали Спасибо 9 раз(а) в 5 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от alexgap
|
Может принимать любое значение, в зависимости от того, какие биты порта нужно сбросить в "0".
Мне нужно было сбросить нулевой бит порта P1, поэтому я написал
Код:
|
FIO1CLR = 0x00000001 |
|
Т.е. 1 между FIO и CLR - номер порта, не дорожки, так сколько же там портов?
Последний раз редактировалось savarez; 09.11.2009 в 17:55.
|
|
|
Сказали "Спасибо" savarez
|
|
|
09.11.2009, 17:58
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от savarez
|
что же это за загадочная 1 между FIO и CLR, если она не имеет отношения к номеру порта ?
|
Смотрите, это просто. Связи выделены жирными символами:
Наша ножка: P 1[ 0]
Выражение для сброса этой ножки в "0": FIO 1CLR = 1 ‹‹ 0
"Загадочная 1" - это номер порта (но не номер бита в нем!). Каждый порт имеет по 32-а бита (т.е. 32 ножки). Вот примеры:
P1[0] - нулевой бит первого порта; FIO1CLR = 1 ‹‹ 0
P2[15] - пятнадцатый бит второго порта; FIO2CLR = 1 ‹‹ 15
P0[10] - десятый бит нулевого порта; FIO0CLR = 1 ‹‹ 10
В моем чипе LPC2368 пять портов (P0, P1, P2, P3, P4). Некоторые биты недоступны как ножки.
Последний раз редактировалось alexgap; 09.11.2009 в 18:04.
|
|
|
Эти 11 пользователя(ей) сказали Спасибо alexgap за это сообщение:
|
|
|
09.11.2009, 20:10
|
|
Временная регистрация
Регистрация: 26.09.2009
Сообщений: 81
Сказал спасибо: 4
Сказали Спасибо 16 раз(а) в 13 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
alexgap, почему для мигания светодиодом вы используете fast io?
|
|
|
Эти 2 пользователя(ей) сказали Спасибо espectr0 за это сообщение:
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:32.
|
|