01.11.2009, 18:33
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Здравствуй, ARM. Запуск "на коленке"
Многие после определенного опыта работы с простыми и маленькими процессорами задают вопросы:
"Как бы удешевить изделия?"
"Как бы выкинуть все дорогие, но часто обязательные чипы обвязки (RTC DS1307, FT232RL для связи по USB, ...)?"
"Как дешево и просто подключить систему к компьютерной сети?"
"Как повысить производительность?"
"Как снизить затраты на использование больших прошивок?"
Если вы хоть раз задавали себе такой вопрос, то пришло самое время переоценить ценности и, возможно, слезть c PIC'ов и AVR и оставить им только самые рутинные задачи.
Ведь есть он - могучий ARM. А благодаря недавним стараниям фирмы Philips могучий стал при этом и дешевым. Очень неприлично дешевым.
Я хочу в этой ветке написать серию постов о старте c ARM'ом "на коленке". Цель ставлю для начала самую базовую и простую - это помигать светодиодом.
Если кому эта тема интересна, дайте мне знать об этом, чтоб я знал - продолжать или нет.
Последний раз редактировалось alexgap; 01.11.2009 в 18:57.
|
|
|
Эти 359 пользователя(ей) сказали Спасибо alexgap за это сообщение:
|
!nekromant! (01.01.2012), -=MAPT=- (05.01.2010), 291066 (13.09.2010), 2M (24.03.2010), A-10 (09.02.2011), abigsam (19.01.2011), adebt (12.03.2011), adis (18.11.2009), afs2007 (11.11.2009), ajsn (10.01.2010), akselerometr (19.02.2010), alek$andr (12.02.2010), Aleks02 (11.11.2009), aleks1000 (13.09.2010), aleksa-yar (12.11.2009), Aleksey_G (11.11.2009), alexandr050 (16.09.2010), alexanvp (09.02.2010), alexomega (18.08.2010), Algissw (03.01.2010), Alien-ag (30.08.2011), Alixiter (07.12.2009), aloneman (22.04.2011), alpast (10.02.2010), ancle-fedor (23.02.2010), Andreisela (04.11.2009), andrnag (10.11.2009), Andron-74 (06.03.2011), andron007 (28.01.2024), andruha-d (31.08.2010), aniza (31.08.2010), Aqua (01.02.2010), Archer07 (05.11.2009), archi79 (17.01.2011), ArtUrl1986 (05.11.2010), artyomugr (16.05.2012), Arxi (27.07.2010), asng (03.11.2009), ASU1956 (23.04.2010), autogen-sk (17.08.2010), avl2003 (04.12.2011), Avtofaer (07.07.2010), a_sergeevich (19.03.2011), Bar_boss (18.12.2010), Basil_aha (30.08.2010), bdpcvit (08.07.2011), bgb043 (12.03.2010), blinov_66 (12.03.2010), bnn062 (18.12.2009), Britikov (11.03.2011), budoraga (23.11.2014), bugmenot (01.12.2009), bulatovor (04.01.2012), CeDJeY (16.03.2011), Classic200 (13.09.2010), crocafm (26.02.2010), cruse (08.01.2010), daddy (10.11.2009), Daddy_Karlo (28.12.2009), DanteReal (22.04.2012), dddcom (22.06.2010), deefcator (29.09.2010), dell40 (06.01.2012), Denis147 (30.01.2011), Dextor (18.03.2010), diglook (05.03.2010), DimAlt (03.11.2009), diman_123456 (01.07.2011), dimka11 (03.11.2009), Djakovskij (07.01.2012), DmitryBik (11.03.2011), Dmitry_DAK (11.07.2011), Donbob (21.04.2016), drron (08.07.2011), DukeN (17.08.2010), ea (10.03.2011), eavy (17.06.2011), ELcat (14.10.2010), ElectroZheka (18.11.2009), Eleman11 (07.12.2009), eliseevrci (04.11.2009), emos (05.11.2009), EvgenWL (04.04.2010), E_C_C (19.04.2010), fantom732 (13.06.2010), fiberline (28.02.2011), flanker-d (06.06.2010), Fox_Alex (14.11.2009), freik (04.03.2011), FreshManGood (03.01.2015), Gammi007 (16.02.2012), gdtron (28.09.2010), Gl. Sergey (23.04.2010), GLONIUM (17.03.2010), gogin79 (21.05.2010), golf2109 (25.11.2013), grbizly (10.01.2011), GREGORI_DEMCHUK (04.11.2009), gremlin_ (19.11.2010), gres_go (16.07.2011), Gridmag (30.08.2010), Highlander (20.12.2010), Hunter51 (26.01.2010), ibiza11 (17.08.2010), ie_rybkin (12.03.2011), igicom (23.06.2011), igor_volosatov (04.12.2009), igrok (12.12.2010), ITShark (23.11.2010), Jeka_T (17.08.2010), JerryLutor (01.08.2011), jhm (11.03.2010), joogorden (04.07.2011), k34Nex (14.02.2010), kaminv (07.12.2009), karsis (03.11.2009), kdp55 (28.06.2011), kerya33 (16.02.2012), kiberman4000 (15.03.2011), kichatovkg (21.07.2011), Kimz2k7 (24.12.2009), Kirikilitsa (20.02.2010), kirs2 (10.11.2009), Kit_T (19.10.2011), Kolob1 (24.03.2011), Komi (22.10.2012), Kostik00 (20.06.2011), kozer_1983 (03.11.2009), Kriogenius (17.08.2010), kuksin (08.11.2009), kulibin_svv (01.11.2009), kuzma-61 (17.11.2009), KYCEL (17.08.2010), lag1828 (05.11.2009), legalize81 (11.10.2010), lehers (30.08.2010), Leonardo1 (20.02.2010), levko07 (04.11.2009), LexaTagan (11.04.2010), Lexi (20.11.2009), LionRJ (12.07.2010), look22 (07.12.2009), Looker2 (18.03.2011), Loole (15.11.2009), lunavarvar (19.11.2010), lunin (23.11.2009), majorka65 (03.04.2010), makler1 (06.03.2011), makser1 (29.07.2010), MaK_33 (12.09.2011), maxim161 (16.09.2010), maxx_kazus (11.03.2011), mdiesel (11.03.2011), me7_akystik (04.11.2009), Melkiy_rus63 (25.11.2010), micosss (02.12.2023), Mihaell (16.02.2011), MisterDi (02.11.2009), Mixer79 (05.11.2009), MIXT (17.03.2011), mng (26.08.2010), Monyak (03.11.2009), mousew1 (15.04.2010), movel22 (23.11.2010), muravskiy (11.11.2009), NemoCut32 (11.11.2009), nikofil (30.09.2012), Nikopol (11.11.2009), NiTr0 (14.12.2009), nml (02.11.2009), nnmkayf (07.12.2009), nocturnus (22.07.2011), nsa-random (18.03.2010), nuclearcat (01.09.2016), OLEGIK68 (08.12.2009), omkravets (19.09.2010), oven7744 (19.12.2009), pan6 (30.04.2010), Partizan26 (27.05.2010), pavel_ua (10.11.2009), Pavlike (28.07.2011), PAVLO-KAI (10.11.2009), pinco (09.11.2010), plus (17.08.2010), Power17 (15.03.2011), qsxxsq (18.02.2010), Radi0777 (20.07.2010), Radius (07.07.2011), RafikM (11.11.2009), rednid (15.08.2011), Rite (07.12.2011), Robss (29.12.2010), Rodoclav (09.09.2011), roma9112 (05.11.2009), Roma_te (03.11.2009), ronin19 (11.11.2009), rsrg (05.08.2011), Rtos (16.11.2009), RY723 (22.11.2009), saint_code (08.02.2010), sanitar249 (18.11.2009), sasa_kaa (24.07.2011), savarez (21.11.2009), Schio (21.06.2011), Scorpion200 (28.10.2010), seanta (30.08.2010), Segriv (28.03.2010), Serg777777 (29.01.2012), Sergey_Bondar (16.11.2009), sergx1300 (06.12.2010), serg_v52 (10.02.2010), serj_neo (25.01.2011), set555 (08.12.2010), Seth (17.09.2010), shols (12.03.2014), shulgaserj (07.07.2011), shurikos (10.11.2009), Simbr (17.11.2009), simsimua (12.06.2010), sintakc (31.01.2014), sio_66 (10.11.2009), slawlog (13.09.2010), sleever (19.11.2009), smart85 (12.11.2009), Solncevorot (28.12.2010), sound-75 (27.01.2011), SSidko (10.02.2011), sslobodyan (12.11.2009), starcomputer (17.12.2009), stasdizzi (05.12.2010), stasusb (11.03.2011), stepanich (03.11.2009), stranger007 (12.09.2010), strvv (09.11.2010), surf148 (07.12.2009), sVital2008 (08.07.2011), sxematik (31.10.2010), sytyi (18.02.2011), s_denya (09.12.2009), taras-vt (26.09.2010), telem (11.03.2011), telemaster99 (13.09.2010), temo4ka_lebedev (12.09.2011), tigerfox (12.11.2009), tigerV (10.03.2011), Turbulator (10.02.2011), ua4nfx (11.12.2009), Ulanar (20.07.2011), Uragan90 (07.06.2010), usr10000 (25.02.2010), v2003 (11.07.2010), v2010 (19.12.2010), vadim25 (19.02.2010), vad_n1 (13.11.2009), vain (20.02.2010), val72ua (20.07.2011), Valexander (08.07.2011), Vas2 (19.12.2009), vgoffer (04.11.2009), viczai1 (19.05.2010), viktorag (12.02.2012), vitaly_v_ch (17.08.2010), vitecd (18.10.2010), Vitek_S (19.05.2011), vo1 (01.11.2009), Volodey (08.07.2011), vovkru (04.09.2010), wct_sniaper (17.10.2010), werty_063 (23.02.2010), wildbrain (15.12.2009), WinnerBoy (06.09.2010), wss60 (26.12.2009), yagorik (14.12.2010), Yanichar (11.07.2010), YMalyta (16.12.2009), youmych (18.08.2010), YOUR_HOPE (20.02.2010), yura.butin (12.02.2010), YURALL72 (02.11.2009), yurik132 (20.01.2016), YuriK_EKB (10.11.2009), zagagulkin (20.02.2010), Zahar (03.11.2009), zamm (12.03.2011), Zeman1979 (21.09.2010), zembin (31.01.2011), zerberus (08.12.2010), Zheng (09.07.2011), Zoosman (21.07.2011), Zorhan (16.03.2011), zvladm (13.03.2010), бАрада (16.02.2013), Кот Баюн (11.11.2009), максим15 (27.12.2011), _grey_ (24.12.2009), _Ross_ (11.03.2011) |
|
01.11.2009, 19:21
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Итак, начнем с вводной информации.
Архитектура ARM является очень зрелой и прошла "закалку" временем и медными трубами. Она получила широчайшее распространение; к примеру, почти каждый мобильный телефон на земном шаре основан на процессоре c ARM архитектурой.
ARM архитектура представлена несколькими подгруппами, самой базовой из которых является ARM 7. Именно с нее мы начнем изучение.
В отличие от 8-ми битных процессоров таких как AVR и PIC, у ARM-процессоров нет единого производителя-монополиста. ARM - это лицензируемая архитектура, и каждый конкретный производитель добавляет/вырезает что-то свое. Каждый производитель делает процессоры со своей фирменной распиновкой: у Philips корпуса с одной распиновкой, у фирмы Atmel сходные чипы - с совершенно другой распиновкой. А товарищ Ли Цзянь из Китая предпочитает делать ARM-процессоры в знаменитых "каплях", прямо на плате При всем этом, машинный код процессоров сходный и различается только в обращении к перефирии, которая у каждого производителя своя. Стоимость сходных процессоров разнится в зависимости от производителя, иногда в разы.
Я хочу остановится на ARM-процессорах семейства LPC2000 фирмы Philips. Как раз такой недорогой процессор сейчас лежит у меня на диване, готовясь стать жертвой обучения и экспериментов.
Последний раз редактировалось alexgap; 01.11.2009 в 19:24.
|
|
|
Эти 42 пользователя(ей) сказали Спасибо alexgap за это сообщение:
|
A-10 (09.02.2011), arnas (23.06.2012), artyomugr (16.05.2012), audriusz (28.05.2011), bgb043 (12.03.2010), dddcom (22.06.2010), demon81 (23.11.2010), Djakovskij (07.01.2012), Eleman11 (07.12.2009), fantom732 (13.06.2010), FreshManGood (03.01.2015), German43.7 (19.04.2010), gora888 (11.03.2011), ITShark (23.11.2010), KYCEL (17.08.2010), magistrche (19.02.2010), MJE13007 (11.11.2010), Monyak (27.11.2009), mousew1 (15.04.2010), Partizan26 (27.05.2010), qsxxsq (18.02.2010), rednid (15.08.2011), sasa_kaa (24.07.2011), Segriv (11.04.2010), shulgaserj (07.07.2011), Simbr (17.11.2009), ua4nfx (11.12.2009), vadim25 (19.02.2010), vetek (08.07.2011), Zeman1979 (21.09.2010), Zorhan (16.03.2011) |
|
01.11.2009, 19:48
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Итак, первая неприятность которая постигает новичка - это практически полное отсутствие ARM процессоров в DIP корпусах. Но не стоит отчаиваться, эта проблема просто решается, это будет описано чуть позже.
А теперь я немного расскажу о своем "герое". Поскольку я уже вдоволь навозился с малюсенькими контроллерами, то решил начать изучение ARM сразу с "джекпота".
На рисунке ниже представлен мой новый друг: контроллер LPC2368 в корпусе LQFP. У него всего лишь 100 ножек. На борту 512 кбайт флэш-памяти, 32 кбайт ОЗУ. Прямо на чипе есть шикарные часы (RTC) с возможностью независимого питания от 3-х вольтовой литиевой батарейки. 4 USART порта, 2 CAN порта, аппаратный USB контроллер, контроллер MAC-уровня Ethernet, встроенная поддержка SD/MMC флэш-карточек и еще много всего. Прозводительность 72 MIPS.
С полной картиной возможностей можно ознакомится, взгянув на даташит: http://www.standardics.nxp.com/produ...67.lpc2368.pdf
Этот чип я сегодня купил за ~8 у.е. по розничной цене. Это цена почти топового чипа, но есть чипы и маленькие. С приблизительными ценами можно ознакомится на странице http://www.terraelectronica.ru/catal...&Gde=2&PageS=2
|
|
|
Эти 45 пользователя(ей) сказали Спасибо alexgap за это сообщение:
|
Alexei78 (03.11.2009), ArtUrl1986 (05.11.2010), bgb043 (12.03.2010), bugmenot (02.12.2009), dark_temptation (13.11.2011), Djakovskij (07.01.2012), Eleman11 (07.12.2009), fantom732 (13.06.2010), FreshManGood (03.01.2015), Jkot (15.11.2009), kozer_1983 (03.11.2009), lsa (01.11.2009), me7_akystik (04.11.2009), Mike_ELC (01.11.2009), Monyak (27.11.2009), revector (13.09.2010), roma9112 (05.11.2009), sasa_kaa (06.06.2012), Segriv (28.03.2010), Simbr (29.06.2010), steb (06.11.2009), ua4nfx (11.12.2009), Uragan90 (07.06.2010), vadim25 (19.02.2010), vain (15.11.2009), viczai1 (10.11.2009), Yegorvin (04.11.2009), Zeman1979 (21.09.2010), Zorhan (16.03.2011), Кот Баюн (23.09.2018), _grey_ (24.12.2009) |
|
01.11.2009, 20:07
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Макетирование "на коленке" без доступа к DIP корпусам, на мой взгляд, невозможно. Чтобы сделать невозможное возможным используется такой простой переходник. В моем случае, это переходник для чипа в корпусе LQFP-100. Я его тоже сегодня предусмотрительно купил.
Контроллер и переходник у меня пока что лежат на диване нераспаяные. Пришло время немного поработать руками.
На сегодня, думаю, хватит. По мере продвижения буду писать подробные отчеты.
Тема следущего отчета - похвастаться распаянным переходником и обсудить минимальную но достаточную схему включения контроллера и светодиода.
|
|
|
Эти 28 пользователя(ей) сказали Спасибо alexgap за это сообщение:
|
Alexandr (16.12.2010), ArtUrl1986 (05.11.2010), artyomugr (21.11.2010), bgb043 (12.03.2010), bugmenot (02.12.2009), Djakovskij (07.01.2012), Eleman11 (07.12.2009), FreshManGood (03.01.2015), George22 (11.11.2009), Mihaell (23.04.2011), Monyak (27.11.2009), mousew1 (15.04.2010), revector (13.09.2010), sasa_kaa (06.06.2012), Segriv (28.03.2010), Simbr (25.11.2009), ua4nfx (11.12.2009), xerox2 (03.11.2009), Zeman1979 (21.09.2010), Zorhan (16.03.2011), _grey_ (24.12.2009) |
|
01.11.2009, 20:08
|
|
Частый гость
Регистрация: 30.07.2006
Адрес: Москва
Сообщений: 47
Сказал спасибо: 4
Сказали Спасибо 6 раз(а) в 3 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Хотелось бы по больше информации о том как с ним работать... Где код написать (и какой язык), как и чем прошить... Систему команд, подводные камни и т.п.
Тем кому это интересно думаю знают как, чем и куда распаять корпус TQFP или LQFP...
С нетерпением жду продолжения!
__________________
На любом форуме на ваши сообщения реагируют, только если они являются новой информацией, спорны или заведомо неверны.
Последний раз редактировалось Mike_ELC; 01.11.2009 в 20:12.
|
|
|
Эти 4 пользователя(ей) сказали Спасибо Mike_ELC за это сообщение:
|
|
|
02.11.2009, 16:39
|
|
Временная регистрация
Регистрация: 26.09.2009
Сообщений: 81
Сказал спасибо: 4
Сказали Спасибо 16 раз(а) в 13 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Для программирования не нужен никакой отладчик.
|
|
|
Эти 3 пользователя(ей) сказали Спасибо espectr0 за это сообщение:
|
|
|
02.11.2009, 18:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Вигглер можно за полчаса спаять и обойдется он меньше чем в 100р. Это если есть LPT. Без отладчика стартовать практически невозможно - что то не работает, а что конкретно не так можно до пенсии гадать.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо kison за это сообщение:
|
|
|
02.11.2009, 19:29
|
|
Вид на жительство
Регистрация: 30.12.2006
Адрес: Junktown
Сообщений: 300
Сказал спасибо: 164
Сказали Спасибо 171 раз(а) в 59 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Виглер и Н-JTAG, и можно и прошивать, и отлаживать
несколько информации есть в теме "можно отладить АРМ на колене"
вот моя платка на AT91SAM7S32
|
|
|
Эти 5 пользователя(ей) сказали Спасибо rear за это сообщение:
|
|
|
02.11.2009, 20:16
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от espectr0
|
Я нормально "стартовал" без отладчика. Свободный УАРТ - для меня лучший отладчик.
|
Ну-ну. Консоль хорошо, но отладчик она не заменит. Особенно по началу. Исключительные ситуации отслеживать через вывод в консоль еще тот геморрой - нужно писать обработчики на ассемблере. На С не получится, нет доступа к регистрам, а именно в них содержится адрес инструкции вызвавшей исключение.
А стандартный обработчик выглядит примерно так:
Код:
|
dabort_handler: b dabort_handler |
Попав сюда можно долго ждать вывода в консоль...
Хотя на крайний случай можно и консолью обойтись - обработчики пишутся один раз и потом можно просто копипастить их в новый проект. Или вообще стартап подменять. Но вот вопрос - много ли начинающих готовы написать эти обработчики на ассемблере?
|
|
|
Эти 2 пользователя(ей) сказали Спасибо kison за это сообщение:
|
|
|
03.11.2009, 01:58
|
|
Гражданин KAZUS.RU
Регистрация: 08.07.2006
Сообщений: 886
Сказал спасибо: 119
Сказали Спасибо 1,110 раз(а) в 177 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Итак, чип запаян в плату-переходник.
Настало время подумать над минимальной и при этом достаточной схемой включения контроллера и светодиода. Для того чтобы справится с этой задачей нужно бегло прочитать даташит на контроллер LPC2368. Из него станет понятно на какие ножки подключать землю, питание и светодиод.
В итоге получился прототип простейшей схемы. Главные моменты: - Питание контроллера — 3.3 В, а не "привычные" 5 В
- Контроллер содержит несколько подсистем, каждая из которых имеет свое питание. Соответствующие ножки подключены к проводу +3.3 В
- Цифровая земля Vss представлена 7-ю ножками и соединена с общим проводом. К нему же подключена и аналоговая земля Vssa
- Светодиод подключен к порту ввода-вывода P1[0]. Я взял его наугад. Можно было бы выбрать любой из доступных 70-ти портов
Сразу бросается в глаза большое количество ножек земли и питания. Это обьясняется просто — так как мы используем большой чип (100 ножек), то нужно позаботиться о доставке тока, способного удовлетворить энергетические потребности процессора, встроенной перефирии и 70-и доступных портов ввода-вывода. А они могут быть значительными — максимальная рассеиваемая мощность на чипе может достигать величины 1.5 Вт при полной нагрузке.
Даже несмотря на то, что мы используем только один маленький светодиод в качестве нагрузки, все ножки земли и питания должны быть всегда подключены, иначе контроллер может работать неустойчиво. Есть случаи, когда можно не подавать питание +3.3 В на некоторые ножки, но пока мы это для простоты опускаем.
Имея на руках приблизительную схему можно двигаться дальше — выбирать источник питания.
Последний раз редактировалось alexgap; 03.11.2009 в 03:41.
|
|
|
Эти 24 пользователя(ей) сказали Спасибо alexgap за это сообщение:
|
ArtUrl1986 (05.11.2010), bugmenot (01.12.2009), Djakovskij (07.01.2012), Eleman11 (07.12.2009), fantom732 (13.06.2010), Forum User (25.11.2010), mousew1 (15.04.2010), Pavel55 (13.01.2011), Segriv (30.03.2010), sersne (08.10.2010), Simbr (25.11.2009), ua4nfx (11.12.2009), Zeman1979 (21.09.2010), Zorhan (16.03.2011) |
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:44.
|
|