Анонс уроков по LPCXpresso

Не без пинка со стороны, собрался написать N-е количество уроков по LPCXpresso на базе LPC1343. В связи с этим есть некоторые предупреждения и вопросы.
Сразу предупреждаю, что всё изложенное является мнением автора и не обязано совпадать с вашим мнением.

UPD: Изложенный материал является «устаревшим». Так для версии среды 4.0 уже изменены и имена библиотек и пути. Текущее руководство следует использовать как «образец», не обязательно всё будет соответствовать с точностью до символа. При возможности информацию обновлю, но не обещаю что это будет скоро. Некоторые замечания имеются в комментариях от других участников. В связи с этим чтение комментариев является обязательным, если у вас что-то не получается.


Зачем это надо

Цель, преследуемая мной, показать, что осваивать АРМ ни чуть не сложнее чем AVR или PIC. Меня до сих пор удивляет, когда народ, начинающий изучение электроники, говорит что «Начну вот с 8-битных, они проще». Ну не правда это.
Если сравнить средства разработки, доступные обыденному любителю решившему заняться изучением контроллеров, то явное лидерство на данный момент у STM и LPC. Посмотрите сами. Что бы освоить AVR вам надо либо собрать программатор самостоятельно, либо потратить на готовый порядка 1к. А если речь идет об отладке, то всё ещё плачевнее. В аппозиции находится STM8, STM32 и LPC1xxx которые выбросили на рынок бюджетные отладочные платы. За 400-1000р вы получаете не просто программатор, но и внутрисхемный отладчик.
Огромным минусом, препятствующим распространению LPC и STM среди любителей, является отсутствие бесплатных средств разработки. А лицензия просит порядка $500+.
Но хочу обратить ваше внимание на отладочную плату LPCXpresso. Её отличительная особенность состоит в том, что при покупке вы так же получаете лицензионный ключ, позволяющий использовать IDE CodeRed с ограничением 128кБайт кода, чего для нас более чем достаточно.

На кого рассчитаны эти уроки

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

Средства

Изучение будет проходить на базе отладочной платы LPCXpresso с установленным контроллером LPC1343 в среде CodeRed. Если у вас в наличии имеется другой модуль (например, довольно много интересных модулей с распаянной периферией и подключенными дисплеями), то это не моя проблема. Я не стану усложнять материал, делая кучу условных компиляций для всех видов платформ. Если вы считаете, что ваших знаний достаточно для использования другого модуля, то портировать пример сможете и сами.
Поскольку на LPCXpresso кроме контроллера практически ничего нет, нам понадобится ещё некоторое количество рассыпухи: кнопка, потенциометр, пара резисторов и провода.
По той же причине отсутствия распаянной периферии, уроки будут «бедными». Я постараюсь использовать как можно меньше дополнительных компонентов. Это будет либо легкодоступные недорогие компоненты, либо наверняка имеющиеся у вас. Но ни кто не застрахован от неожиданностей.
Приведу список того, что вам потребуется:
  • тактовая кнопка [1-4] (для изучения портов ввода/вывода)
  • потенциометр на 1к — 100к (для изучения АЦП)
  • USB папа — как на флешке, переключатель, резистор на 1.5к (для изучения USB)
  • Дисплей от Nokia 3310 (для изучения SPI)
  • SD/MMC карта памяти [+разъем] (для изучения/закрепления USB и SPI)
  • микросхема термометра LM75 (для изучения шины I2C)материал сложный для начинания
  • MAX3232 и 6 конденсаторов на 1мк, либо FTDI с обвязкой (для изучения UART)
  • провод, олово, флюс и т.д. для пайки
Список как видите небольшой. Всё это (кроме дисплея) и естественно саму плату можете приобрести, например, где и я в Чип-НН (Огромное спасибо магазину за низкие цены и качественное обслуживание). Дисплей приобретался в магазине «Профи». Но не возбраняются и другие магазины.
Так же рекомендую заказать и напаять на плату PLS/BLS для того что бы при измерении схемы можно было обойтись без паяльника, а простым переключением проводов. Так же полезной окажется беспаечная макетная плата (на любителя).
Да. И не забудьте про шнурок USB mini-A для подключения самой платы к компьютеру. В комплектацию он, к сожалению, не входит. А в прочем у меня он и так был, и мне не пришлось за него переплачивать.

Копирастам

Хочу обратить отдельное внимание для ошивающихся здесь владельцев/модераторов/прочих других сайтов/форумов/прочих. Свободно разрешается только публикация ссылок на статьи. Сами статьи без предварительного согласия копировать запрещено.
Для всех же хочу сообщить. Весь код, приведённый в моих уроках, изначально был под BSD лицензией и я не возражаю, если вы его будете использовать в своих проектах (в том числе и коммерческих), с оговоркой, что я не несу за него ответственности. Ссылки на исходные материалы предоставлю ниже отдельно.

Отказ от ответственности

Весь приведённый материал распространяется что говорится «AS IS». Вы его можете использовать на свой страх и риск. Ни я, ни владелец сайта, на котором опубликован материал, ни несёт ответственности за возможный причиненный ущерб. Паяйте, проверяйте, перепроверяйте и всё у вас будет хорошо.

Планы на будущее

Прошу в комментариях после прочтения хотя бы пары статей оставить пожелания «что бы вы хотели видеть рассмотренным в данном курсе». Предложения «а напиши для моей платы», «а можно видео вот этого мигания» сразу не рассматриваются. Будьте добры, не утруждайте себя и не засерайте комментарии.

Список материала

Здесь опубликован список статей. Для уроков опубликованных будут ссылки, для уроков запланированных просто название.
  1. Изучаем примеры. Введение в среду разработки. [важный]
  2. Создание проекта. Классика моргания светодиодом. [важный]
  3. Повторное использование кода. Подключаем библиотеку. [важный]
  4. Systick. Использование таймера для отсчета времени.
  5. GPIO input. Подключаем кнопку.
  6. Semihosting. Использование printf в отладке. [важный]
  7. АЦП. Измеряем напряжение.
  8. SPI. Подключаем дисплей от Nokia 3310.
  9. USB-bootloader. Прошиваем контроллер подручными средствами.
  10. USB-MSC. Разбираем пример.
  11. USB+SPI. Делаем картридер. [повтор]
  12. UART. Взаимодействуем с компьютером.
  13. Debug. Погружаемся в отладку на примере UART. [важный]
  14. PWM. Синхронный ШИМ на таймере.
  15. I2C. Работа с термометром LM75.
Это конечный список. Времени на курс ушло больше чем я мог себе позволить, по этому изменений не планируется.

Ссылки

Много примеров по контроллеру и плате. Аппноуты NXP — http://www.nxp.com/#/page/content=[f=/dynamic/applicationnotes/tid-50809_sid-56890/data.xml] [English]
Отличная библиотека под BSD лицензией. Является библиотекой от NXP, но несколько доведённой до ума и дополненной. LPC1343 Code Base — http://www.microbuilder.eu/Projects/LPC1343ReferenceDesign/LPC1343CodeBase.aspx [English]
Документация и примеры по библиотеке LPC1343 Code Base — http://www.microbuilder.eu/Projects/LPC1343ReferenceDesign/CodeBaseDocumentation.aspx [English]
Знакомство с LPCXpresso на английском — LPCXpresso Getting Started.pdf
Информация по LPCXpresso от NXP (+видеоуроки) — http://ics.nxp.com/lpcxpresso/ [English]
Среда разработки для LPCXpresso (скачать после регистрации) — http://lpcxpresso.code-red-tech.com/LPCXpresso/ [English]
Пример AN10986 USB-загрузчик (ISP) — http://www.nxp.com/documents/application_note/AN10986.pdf (Код: http://www.nxp.com/documents/application_note/AN10986_-_USB_In-system_programming_with_the_LPC1300.zip)
// TODO: this

Ссылки на статьи

Данный курс так же был размещен на форуме http://petro-ewlab.com/viewforum.php?f=123. Линк рекомендуется к сохранению (на случай пресловутой 503, или прочих даунов сообщества). Материал подредактирован в плане ошибок и доступности вложений, за что спасибо тов. petro-ew.
  • 0
  • 05 сентября 2011, 10:47
  • angel5a

Комментарии (42)

RSS свернуть / развернуть
Огромным минусом, препятствующем распространению LPC и STM среди любителей, является отсутствие бесплатных средств разработки. А лицензия просит порядка $500+.
Как раз у ARM с этим отлично. PIC и рядом не лежал. С AVR получше, достаточно полный опенсорсный тулкит доступен, но с отладкой засада. Правда ставятся опенсорсные тулкиты чуть сложнее, но можно заюзать уже собранные — скажем, CoIDE.
«Начну вот с 8-битных, они проще»
Ну 8051 в изначальном виде и правда проще. Точнее, у них периферия очень простая, в остальном в плане сложности разницы между МК тащемта и нет.

Ну и STM32 Discovery как платформа для уроков поинтересней. Работает не только с CodeRed, в частности.
0
  • avatar
  • Vga
  • 05 сентября 2011, 12:07
За дискавери плюсом шло то что её народ на халяву пополучал и цена у неё по ниже. Но из минусов — нет USB (мелочь в принципе то), и главное все среды разработки требуют дополнительных капиталовложений. Бесплатно только 32кБ максимум.
Капиталовложения в IDE для LPCXpresso включены в стоимость платы и в итоге получается выгоднее взять её. При этом мы сразу получаем настроенную для работы с платой среду, что на мой взгляд является большим плюсом для изучения.
0
Нифига подобного, в отличие от экспрессы ст-линк вполне дружит с опенсорсом. Нужно только gdb-server из Atollic TrueStudio вытащить, а остальное — Eclipse/Code::Blocks + GCC-ARM.
А вот LPC-Link кроме CodeRed ни с чем не дружит. Хотя учитывая что он тоже на связке Eclipse + GCC-ARM — оттуда мэйби тоже можно выдернуть сервак для GDB.
0
  • avatar
  • Vga
  • 05 сентября 2011, 12:35
CooCox IDE на M3 и M0 lpc11XX,13XX,17XX поддерживает — Бесплатно
0
Ага, а LPC-Link она тоже поддерживает или придется докупить/дособрать CoLink? ;)
0
  • avatar
  • Vga
  • 05 сентября 2011, 13:39
если не путаю оно дружит еще с опен оцд
а он как раз может быть сделан из st-link который например на 8 дискавери — и его можно отломать и использовать отдельно с чем надо
0
или купить за огромные деньги 22$ j-link…
0
… а ссылку можно на сей j-link?
0
Именно по этому LPCXpresso и выбрана, что она хоть и дружит только с CodeRed, так зато «из коробки». Совершенно никаких плясок с бубном при минимуме капиталовложений. Курс ориентирован на новичков, а для них, я считаю, это плюс.
P.S.: конечно интерестно посмотреть на новичка, впаивающего tqfp48 :)
0
AVR или PIK
PIK???

Пишите, будет довольно интересно изучить данный материал.
0
angel5a, личная просьба, не могли бы вы проверять текст спеллчекером?
+2
  • avatar
  • ACE
  • 05 сентября 2011, 14:21
Чтож любопытно будет почитать. Я экспрессу потыкал да так и забросил. Не понравились мне лпц чтобы в них ковыряться еще. А тут, на готовеньком, глядишь и начну. Мне в 1343 бут сильно нравится
0
Я глубокого изучения материала проводить не буду. Будет быстрый старт «как это работает» и «самые ходовые задачи». Описаний «а вот можна так, а ещё ползком, и бегом, и в припрыжку» не планируется даже. Только то что надо на деле.
0
О какое совпадение — 2 дня назад опубликовали пост, а сегодня мне пришла LPCXpresso. Будем пробовать:-)
0
  • avatar
  • arch
  • 07 сентября 2011, 15:46
Полный список статей оформлен. Заявки больше не принимаются.
0
Я бы с удовольствием почитал про I2C
0
  • avatar
  • Geban
  • 22 сентября 2011, 16:23
На него времени не осталось, да и сложно будет для новичков объяснить всю эту хрень.
0
Всё, Ура! Последняя статья опублекована, с чем я себя и Поздравляю.
Спасибо всем, кто читал. Спасибо тем, кто помогал с ошибками. Спасибо за отзывы.
+1
Отличные статьи! Только почему-то в случае использования кнопок нет оговорок, что иной раз необходимо учитывать явление дребезга контактов, ставить фильтр…
0
Спасибо за публикации.
" – Если хотите, Вы можете уйти.

— Но учтите — у нас длинные руки!" ©
0
  • avatar
  • DVF
  • 25 сентября 2011, 11:36
Получил плату LPCxpresso в конверте купон с Coupon Code. Вбиваю его на сайте Code_red. Выдают ошибку. Что делаю не так?
Ошибка:
Errors in the serial number provided.
Please ensure you enter the activation code exactly as provided by LPCXpresso
0
Тут было про Coupon Code. А для регистрации он совсем не нужен.
0
Виновать. Уточню из-за чего кипиш. Пытался скачать с сайта lpcxpresso.code-red-tech.com LPCxpresso (платка то пришла, и руки чешутся). К опере по умолчанию прикреплен доунлоад, который стал твердить мне про запрет закачки. Подумал: надо на сайте прописать какой-то код, что я получил вместе с платкой. А в руках только этот купон и вертелся. Вот и вбил его во вкладке My Registrations. А там выдали ошибку, описанную выше. Бум дальше разбираться…
0
На сайте нужно создать аккаунт (пароль придёт на почту), потом залогиниться в него тут, а дальше всё по шагам:
1. Download the LPCXpresso installer for your host by clicking here: (кнопка)
2. Run the LPCXpresso installer on your computer. Once the installation has completed, run the LPCXpresso application.
3. Select the menu item Help->Product activation->Create Serial number and Activate
— Your products' serial number will be displayed. Write down the serial number, or copy it into the clipboard.
4. Press OK. A web browser will be opened
— If you are already logged in to this site, the browser will open on the Registrations page, and the Serial number will be completed for you.
— If you are not logged in, you will need to login and visit the Registrations page. You will need to enter the Serial number exactly as displayed by the LPCXpresso application.
5. Complete the rest of the form and press the button to request the activation code
— Your activation code will be emailed to the address supplied when registering for this site.
6. Once you have received your Activation email and code, select the menu item Help->Product activation->Enter Activation code
7. Enter your activation code from the email and Press OK.
— This activates your product. The license type will be displayed and you will now be able to use all the features of LPCXpresso.
0
А тем временем в мрачных подвалах NXP готовят к выпуску контроллеры Cortex-M0 LPC1114FN28 в корпусе DIP28. АРМы становятся ближе к народу!!! Ура, товарищи!!! ))))
0
  • avatar
  • Resp
  • 02 ноября 2011, 23:08
Мда… Микрочип новые PIC32 в DIP и SOIC выпускает… осталось подобную новинку от ST дождаться… )))
0
В стандартных хоть, а не как STM8?
0
Стандартный дип28 с шагом 2.54, правда широкий (600 мил).
0
0
где можно купить отладочной плату LPCXpresso с даставкой в Беларусь???
0
На win7/x64 прошивалка/отладчик не видят плату — заливают прошивку в «ведущий» контроллер (тот, что реализует LPC-Link), винда его «тряет» и больше не находит. Упс. Ничего не работает :(
0
с виндой разбирайся. у меня все видится (win7 x64 Ultimate)
0
Ну а куда копать-то? Win7 x64 Ultimate, да. До запуска среды видит как USB Device with DFU Feature (или как-то так), после попытки дебажится (когда проливается прошивка для ведущего контроллера) просто никаких следов девайса в системе и всё.
0
хз-хз. я просто к тому, что это не проблема самой семерки х64. единственно, не говносборка, саму винду практически не тюнил, и всякие защитники-фаеры-аверы у меня потушены. попробуй в этом направлении посмотреть…
0
Английская лицензионка без антивирусов и файрволлов… Мда. Посмотрим, что техподдержка скажет… Написал им на форум…
0
Для истории, мало ли кто искать будет и найдёт: Драйвера от мыши Razer гадят. Без них всё работает, с ними — они перехватывают LPC-Link на себя зачем-то.
Очень это грустно, потому что Razer DeathAdder — чуть не единственная удобная мышка для левой руки, а без драйверов она светится светодиодами как новогодняя ёлка и вообще не настраивается :(
+1
Спасибо что отписались. Довольно «прикольный» момент.
0
В конец поста добавил ссылку на «зеркало».
0
Возможно ли, для изучения курса, взять LPCXpresso LPC1347 вместо LPCXpresso LPC1343. Так как последняя уже снята с производства и заменена на LPCXpresso LPC1347.
0
  • avatar
  • Aneg
  • 06 января 2014, 00:22
Бегло взглянул, разница не шибко большая. больше флеша, больше рамы (тут правда какие-то страницы пошли, видимо вынесли из общей — не вникал). Разъем USB девайса уже на плате. По описанию на камень ничего неожиданного не заметил. Не вижу причин, что бы не пошло.
Но следует отметить что курс уже устарел. смсис уже давно на 2-ю версию ушел, а там есть отличия. Так что курс выйдет не детальным руководством к действию, а примерной инструкцией.
0
P.S.: Офигеть, уже больше 2-х лет прошло.
+1
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.