|
Удобные для ручной пайки 32-битные микроконтроллеры в корпусах soic, tssop и dip с малым количеством выводов., Всё на борту (АЦП, FLASH, RAM). |
|
|
|
Dec 17 2011, 10:06
|
Местный
  
Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531

|
Думаю многим начинающим, как и мне, будет интересен этот небольшой сравнительный обзор. 1. NXP LPC1112FD20 (32-bit ARM Cortex-M0)16kb FLASH / 4kb RAM / 10-битный АЦП, корпус SOIC 20 ножек, шаг 1.27мм. При небольшом опыте можно прижав пальцем подхватить первую ногу и припаять остальные секунд за 30. Начав изучать с этим процессором архитектуру cortex arm вы автоматически будете лучше разбираться и в камешках от других фирм. Нормальный объём оперативки 4kb позволит реализовать более продвинутые алгоритмы без извращений. Идеален для 16-битных программ, не нужно думать о переполнении, например при оверсемплинге - просто складываем 10-битные выход с АЦП в 32-битную ячейку. Но в продажу пока не поступил, как и камни в корпусах TSSOP (LPC1112FDH20, LPC1112FDH28 и LPC1114FDH28). С нетерпением ожидаем в розничной продаже. http://www.nxp.com/products/microcontrolle...PC1112FD20.html2. MICROCHIP PIC32MX16kb FLASH / 4kb RAM / 10-битный АЦП, есть в DIP-корпусах Наверняка будет особо любим теми, кто начал свой путь с восьмибитных PIC-ов. По всему миру не утихают споры о том, что лучше ARM или PIC32. Хотя у CORTEX ARM и присутствует некая стандартизация, но при переходе на ARM процессор другой фирмы код предётся также переделывать, как и в случае перехода с PIC32 на ARM. Так что это вряд ли недостаток. Удивляет обилие маловыводных корпусов с крупным шагом между ногами, удобных для пайки: DIP, SOIC, TSSOP. http://www.microchip.com/wwwproducts/Devic...ocName=en5559893. STMicroelectronix STM32F100, STM32F103 (32-bit ARM Cortex)16..128kb FLASH / 4..10kb RAM / 12-битный АЦП, к сожалению только LQFP48/64/100 Такой корпус паять уже не так удобно, как SOIC или TSSOP, но всё же реально. Перед прихватом крайней ноги достаточно хорошо позиционируется "вакуумной" присоской, но тут уже вероятность ошибки больше. У многих радиолюбителей на плате болтаются неиспользованные ноги. Хотя есть и свои плюсы - низкая стоимость, больше номенклатура с объёмной флеш-паматью и RAM. После покупки оценочной платы и скачал и установил аж три пакета для разработки бесплатно, хотя и с ограничением на размер компилируемого кода. 1)TrueSTUDIO - маленький дистрибутив 260мб, заработало всё сразу, в интерфейсе нормальный шрифт 2) MDK - тоже заработало, но с бубном. 3) IAR - насмешили так насмешили, самый первый пример из дистрибутива не откомпилировался по причине ограничения на размер исходного кода. Ну это и понятно - дистрибутив на 700мб. Бесплатная версия видимо нацелена на далнейшую регистрацию, чтобы сразу после покупки не скачивать ничего нового. У 2 или 3 был какой-то кривой шрифт интерфейса - мелкие корявые буквы. Подойдёт тем, кому всё-таки нужно многоногий мк или больший объём RAM или FLASH. Обилие отладочных плат от разных производителей. http://www.st.com/internet/mcu/product/216844.jsp3.1 32-битные микроконтроллеры AVR32, RENESAS, TOSHIBA и т.п. в корпусах LQFP48 и 64.В основном эти продукты весьма похожи как по объёму памяти, так и по наличию 10-12битных АЦП. Для AVR32 наверняка будет больше вариантов отладочных плат. У RENESAS вроде бы есть онлайн-уроки на английском (нужна регистрация), весьма неплохо оформелены судя по видео-презентации. 4. TI MSP430 16-битный2..4кб FLASH / 0.25 байт памяти / 10/12-битный АЦП. SOIC, TSSOP Наверное, это был бы лучший выбор, если бы не специфический перекос в параметрах. Хочешь больше памяти - не дадим встроенный АЦП. Хочешь лучше АЦП - дадим, но за это только 256 байт оперативки. А если взять TI-шный малоногий ARM, то в нём вообще не видно АЦП. А если хочешь АЦП в ARM, то впридачу кучу ног и мелкий шаг между ножками. Вот так я посидел денёк в параметрическом поиске у TI и понял для себя одну вещь: эти контроллеры сделаны специально под определённый круг задач, выйти за рамки которого очень сложно (весы, термометры, счётчики). Просто по объёму оперативки. Будет очень итересно наблюдать, если TI последует примеру NXP и MICROCHIP, выпустив что-нибудь в маловыводном корпусе SOIC или TSSOP с приличным объёмом оперативки и 10/12-битным АЦП. Несомненный плюс - это большое количество отладочных плат и большая номенклатура с высокой совместимостью по коду. http://www.ti.com/lsds/ti/microcontroller/...uct_search.page4.1. Analog Devices ADUC703964kb FLASH / 4kb RAM / 16-битный АЦП Хорошая альтернатива MSP430, если нужен встроенный 16-битный АЦП, но не хватает памяти программ и оперативки. Но корпус неудобен для пайки - экзотический LFCSP, видимо такие корпуса стоят в мобильниках. Возможно дешевле будет взять внешний АЦП, но тогда мы уйдём от идеологии всё в одном. DIP, SOIC, TSSOPПодводя итоги, лидером в "брутальности" оформления корпусов становится MICROCHIP с его новыми PIC32MX в DIP-корпусах. Хотя у некоторых DIP может ассоциироваться со старинными микросхемами, но основным недостатком я бы назвал сложность выпайки. Мне проще запаять парочку 20-ногих TSSOP, чем выпаять один шестиногий DIP. А из достоинств - то, что под DIP есть неплохие платки, куда можно засунуть это дело без пайки, что-то вроде навесного монтажа или как там его. Есть и более симпатичные SOIC корпуса. Запихнуть слона в спичечный коробок намеряна NXP со своими LPC111x в корпусах SOIC и TSSOP-20. На этом самые удобные для пайки корпуса с хорошим наполнением RAM заканчиваются. Далее идёт MSP430 с его огромной номенклатурой, множеством SOIC и TSSOP, но уже с меньшим объёмом памяти. LQFP48,64,100Лидируют уже не такие удобные в пайке 32-битные STM32F100. Простота, доступность, низкие цены. Затем идёт MSP430 в LQFP, но уже без АЦП и 16-битной архитектуры. Может есть что-то стоящее у Renesas и TOSHIBA, но это ещё надо поискать. А вот для любителей AVR есть AVR32, который найти я думаю будет очень легко. А можно подпаяться проводками к ADUC7039 от Analog Devices и получится интересная вычислительная штучка со встроенным 16-битным АЦП. Помимо контактов нужно ещё и "брюхо" тщательно заземлить. Лирическое отступление: При разработке миниатюрных устройств советы в плане установки внешней АЦП и памяти лишены смысла, а более продвинутые камни с корпусом LQFP48 к сожалению не свернёшь в трубочку и не запихнёшь в корпус от пластиковой ручки. Так что здесь прослеживается некоторая проектная жадность "у меня же такие мощи, такая площадь кристала! Да я забесплатно могу вывести мильён ног и сделать крутой контроллер из этой миллиметровой фигни". В итоге приходится ставить многовыводный мк со встроенным АЦП + внешнюю память + внешний АЦП и это называют экономикой =) Но как бы это не называли, по-моему реальная экономика уже начинает прослеживаться у NXP и MICROCHIP. p.s. Может забыл какого производителя?
Сообщение отредактировал tmtlib - Dec 17 2011, 15:02
|
|
|
|
|
 |
Ответов
(30 - 44)
|
Dec 21 2011, 10:25
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
QUOTE (MrYuran @ Dec 21 2011, 15:11)  Это, видимо, из самых младших. Даже заштатный F149 имеет 60к флеши и 2к ОЗУ. Честный ADC12, аналоговый компаратор. TQFP64: не дип, конечно, но при некоторой сноровке можно и проводки к ножкам подпаять. Заточен исключительно под микропотребление. По остальным параметрам Cortex M0 его порвет. И особенно по цене. Если верить документации, то и Cortex-M3 его порвёт даже по потреблению. Если оный кортекс из EFM32. QUOTE (Alexashka @ Dec 21 2011, 16:22)  По ходу вопрос, а есть ли в природе Cortex M0 с 12-битным АЦП? Есть, вроде, - например, эти. 12 бит, 1 мегасэмпл в секунду.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Dec 21 2011, 10:41
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(Alexashka @ Dec 21 2011, 13:22)  а есть ли в природе Cortex M0 с 12-битным АЦП? Есть Cortex™-M3 STM32L152CB: • 12-bit ADC up to 1 Msps/24 channels • 2 × 12-bit DACs with output buffers • LQFP 48
|
|
|
|
|
Dec 21 2011, 11:19
|

Практикующий маг
     
Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576

|
Цитата(dxp @ Dec 21 2011, 14:25)  Если верить документации, то и Cortex-M3 его порвёт даже по потреблению. Если оный кортекс из EFM32. Есть, вроде, - например, эти. 12 бит, 1 мегасэмпл в секунду. Интересные процы, в плане замены тех же MSP430, тока вот не особо популярные еще, и видимо никогда не догонят Техас по популярности. Будут доступны в 2012г. Ну чтож поглядим, уже не долго ждать осталось  Цитата(blackfin @ Dec 21 2011, 14:41)  Есть Cortex™-M3 STM32L152CB: • 12-bit ADC up to 1 Msps/24 channels • 2 × 12-bit DACs with output buffers • LQFP 48 Спасибо, но великоват всетаки) Мне бы хватило и десятка ног. Цитата(tmtlib @ Dec 21 2011, 14:10)  А я вот тут подумал, генератор белого шума на пол бита нельзя ли программно сделать, замкнув выход ЦАП на входы АЦП и шипеть туда. Разрядность ЦАП-а вроде больше. Поискал на эту тему, но ничего не нашёл. Лучше не белого, а голубого  чтобы не повышать уровень шума в рабочей полосе. Но это лишний гемор имхо. Хотя вот например в контроллерах Silabs в АЦП есть даже аппаратный auto-averaging аккумулятор, призванный увеличивать разрядость с 10 до 12 или 13 бит. Вот только как там внеполосный шум накладывается я так и не понял, скорей всего -никак.
|
|
|
|
|
Dec 21 2011, 17:44
|

Практикующий маг
     
Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576

|
Цитата(Herz @ Dec 21 2011, 15:49)  Так вот, тот же NUC100, который Ivan Panov упоминал. По всему видно, что проц заточен под индастриал, 5В питание, все токи в спящем режиме на порядок больше аналогичных у 3-вольтовых аналогов. Еще бросилось то, что АЦП не умеет запускаться от внутреннего таймера. Но есть и плюсы- высокая тактовая, 12бит АЦП и можно на ноги повесить все вплоть до белых светодиодов
|
|
|
|
|
Dec 22 2011, 10:02
|

developer
   
Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032

|
Для управления 5-ти вольтовых Цитата a la 44780 есть вот такой способ http://elm-chan.org/docs/lcd/lcd3v.html
--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
|
|
|
|
|
Dec 22 2011, 11:14
|
Местный
  
Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531

|
Цитата(Alexashka @ Dec 21 2011, 13:22)  Зачем? подключите светодиод "минусом" к выходу контроллера, получится инверсия. Заработало! Но пока без светодиода. символ пробел = 0xBF = 191 = 10111111 символ пробел = 0x20 = 32 = 00100000 - так должно быть символ "0" = 0x9f = 159 = 10011111 символ "0" = 0x30 = 48 = 00110000 - так должно быть т.е. уровни нужно инвертировать, и съедается стартовый бит. Но как новичок в этом деле я не совсем врубаюсь как ставить светодиод. Я оптопару напрямую подключаю к выходам микроконтроллера. Внутри оптопары по сути уже есть светодиод. Если я снаружи поставлю ещё один, то в зависимости от полярности либо всё перестанет работать, либо ничего не изменится. Короче я завис  Может есть схемка на подобную тему. p.s. Подрубил оптопару к выходам "GND" и "PA9" на STM32 Discovery. PA9 - это выход TX с USART1. Скорость USART-а задал как USART1->BRR=8000000L/9600L, т.е. исходя из скорости кварца в 8МГц, хотя здесь (http://habrahabr.ru/blogs/DIY/132739/) прочитал, что скорость по умолчанию 24МГц (8МГц умножается на 3?).
|
|
|
|
|
Dec 22 2011, 17:50
|

Практикующий маг
     
Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576

|
Цитата(tmtlib @ Dec 22 2011, 15:14)  p.s. Подрубил оптопару к выходам "GND" и "PA9" на STM32 Discovery. PA9 - это выход TX с USART1. Скорость USART-а задал как USART1->BRR=8000000L/9600L, т.е. исходя из скорости кварца в 8МГц, хотя здесь (http://habrahabr.ru/blogs/DIY/132739/) прочитал, что скорость по умолчанию 24МГц (8МГц умножается на 3?). Эээээ...я какбэ и имел ввиду светодиод, который в оптопаре Все правильно, у Вас щас на него идет "1" и он горит, и "1" появляется на COM-порту. Инверсии нет. А она должна быть для корректной работы UART<->RS232. А если подключить оптопару плюсом на 3,3В (такое ведь питание IO контроллера?) и минусом на порт (РА9) получится инверсия- светодиод будет гореть при "0" в порту. Понимаете мысль?  Про битрэйт не скажу, проще всего воткнуть щуп осциллоскопа и посмотреть своими глазами какой там битрейт. А вообще если берете пример от производителя, то обычно там указывается скорость, у моего атмеля например было так, функция настройки UART принимает тактовую частоту и желаемую частоту UART, и если цифры адекватные, она и выставляется.
|
|
|
|
|
Dec 23 2011, 02:21
|
Местный
  
Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531

|
Цитата(Alexashka @ Dec 22 2011, 21:50)  Эээээ...я какбэ и имел ввиду светодиод, который в оптопаре Все правильно, у Вас щас на него идет "1" и он горит, и "1" появляется на COM-порту. Инверсии нет. А она должна быть для корректной работы UART<->RS232. А если подключить оптопару плюсом на 3,3В (такое ведь питание IO контроллера?) и минусом на порт (РА9) получится инверсия- светодиод будет гореть при "0" в порту. Понимаете мысль?  Спасибо за ответ, хотя понимаю что мой вопрос немного слишком =) Подключил осциллограф и до меня начало доходить. Сейчас смотрю книгу "Сопряжение ПК с внешними устройствами" 2001: если по схеме снизу подключить к "плюсу" оптопары 3.3в, а к "минусу" - PA9, то для нормальной работы схемы PA9 должно выдавать от 0 до 3.3вольт, и при 3.3 вольтах диод погаснет. У меня на PA9 выдаётся 1 вольт. Честно скажу, в документации ещё не смотрел какое напряжение должно быть. Т.е. нужно или резистор ставить или ещё чего. Для начала попробую верхнюю схему =) И ещё вспомнилось: Цитата А что у STM родной софт с ограничениями? У Freescale ограничение по коду 128кБ (CodeWarrior для Kinetis), пожалуй для такого мощного камня это уже маловато. Если без ограничения на размер кода, то помимо TrueStudio оказалось ещё есть интересная штука http://coocox.org/CoIDE/CoIDE_Updates.htm (CoIDE?). Вчера в какой-то статье нашёл ссылку на эту софтину. По описанию - похоже на TrueStudio. Всё это не только для STM, так что возможно имеет смысл попробовать. UPDATE: Заработало, по схеме с инверсией из книжки - подтяжка к 5 вольтам. Но вот у меня теперь возник другой вопрос. Без нагрузки на выходе мк PA9 есть 3.3 Вольта, а после подключения оптопары (светодиод) напряжение на PA9 падает где-то до 1.5 Вольта. Как это для мк-то, стерпит? Может нужно ставить токоограничительный резистор, но будет ли тогда нормально светить инфракрасный диод в оптопаре не представляю.
Сообщение отредактировал tmtlib - Dec 23 2011, 03:56
Эскизы прикрепленных изображений
|
|
|
|
|
Dec 23 2011, 06:09
|

Практикующий маг
     
Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576

|
Цитата(tmtlib @ Dec 23 2011, 06:21)  UPDATE: Заработало, по схеме с инверсией из книжки - подтяжка к 5 вольтам.
Но вот у меня теперь возник другой вопрос. Без нагрузки на выходе мк PA9 есть 3.3 Вольта, а после подключения оптопары (светодиод) напряжение на PA9 падает где-то до 1.5 Вольта. Как это для мк-то, стерпит? Может нужно ставить токоограничительный резистор, но будет ли тогда нормально светить инфракрасный диод в оптопаре не представляю. Не не не не не, резистор 100 ОМ оставьте! Он нужен для ограничения тока через порт. Я думал, что он у Вас какбы само собой стоит, вот и не сказал. Напряжение падает потому что выход контроллера не может выдавать большой ток, максимальный ток указан в электрических параметрах в даташите контроллера -чтото порядка 20мА. Если со 100 Ом будет норм.работать так и оставляйте.
|
|
|
|
|
Dec 23 2011, 06:18
|
Местный
  
Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531

|
Цитата(Alexashka @ Dec 23 2011, 10:09)  Не не не не не, резистор 100 ОМ оставьте! Он нужен для ограничения тока через порт. Я думал, что он у Вас какбы само собой стоит, вот и не сказал. Напряжение падает потому что выход контроллера не может выдавать большой ток, максимальный ток указан в электрических параметрах в даташите контроллера -чтото порядка 20мА. Если со 100 Ом будет норм.работать так и оставляйте. Нашёл datasheet на оптопару: Графа Typical по диоду: "Vf = 1.1v, 5mA". То есть я так понял ему хватает 1 вольта 5 мА. Сейчас впаяю какой-нибудь резистор (тьфу, сначала транзистор написал) UPDATE: Вставил токоограничительный резистор 200 Ом, всё работает, и выглядит более пристойно: на выходе мк 3.3в, на входе в оптопару около 1в. Со стороны порта "подтягиваюсь" к 5 вольтам резистором на 500 Ом - не маловато ли? Здесь: Цитата вообще советуют 10кОм. В принципе всё должно логично вытекать из формулы R = U / I и "даташитов", с поглядыванием на осциллограф. Заметил, что некоторые микроконтроллеры в LQFP48 дороже и труднее доставаемы, чем аналогичные или даже превосходящие по параметрам в LQFP64. Видимо лучше использовать 64 =)
Сообщение отредактировал tmtlib - Dec 23 2011, 06:52
|
|
|
|
|
Dec 23 2011, 10:49
|

Практикующий маг
     
Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576

|
Цитата(tmtlib @ Dec 23 2011, 10:18)  Со стороны порта "подтягиваюсь" к 5 вольтам резистором на 500 Ом - не маловато ли? Заметил, что некоторые микроконтроллеры в LQFP48 дороже и труднее доставаемы, чем аналогичные или даже превосходящие по параметрам в LQFP64. Видимо лучше использовать 64 =) Нормально, оптопаре 10мА не повредит, порту 5В тоже, он ведь на вход работает  Политика с корпусами мне тоже не совсем понятна, видимо все от тиража зависит, о чем мы можем только догадываться глядя на цены.
|
|
|
|
|
Dec 23 2011, 11:08
|
Местный
  
Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531

|
Офигеть! Всё заработало! Попробую в свободное время нарисовать схему, может кто знает что за программа рисует принципиальные схемы на листе в клеточку жирными линиями? Видел в некоторых статьях подобные аккуратненькие эскизы, или это в Paint-е? Канал приёма: Токоограничительный резистор 1шт. R=1.5 кОм Диод в параллель оптопаре 1шт. (но задом наперёд, для того чтобы отрицательное напряжение с RS-232 ушло в землю RS-232). Оптопара 1шт. Подтягивающий резистор 1шт. для подтяжки к 3.3В Канал передачи: Токоограничительный резистор 1шт. R=200 Ом Оптопара 1шт. DC-DC преобразователь 5в/5в Подтягивающий резистор 500 Ом Прошивка простенькая - при посылке данных в контроллер он их выдаёт обратно. Всё работает. Спасибо Alexashka за ответы на мои порою глупейшие вопросы. Кстати, меня немного напрягает неидеальность приведения RS-232 уровня (которое может быть -12в...+12в) к уровню для оптопары (0..1 вольт). Я поставил токоограничительный резистор параллельно линии RX, а диод - в параллель оптопаре. В итоге после всего этого уровни напряжения примерно -0.5...1.1 вольта. Вроде не критично. Может ещё резистор на землю поставить после диода....
Сообщение отредактировал tmtlib - Dec 23 2011, 11:11
Эскизы прикрепленных изображений
|
|
|
|
|
Dec 24 2011, 04:21
|
Местный
  
Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531

|
Цитата(Alexashka @ Dec 23 2011, 20:08)  Вы все правильно сделали. Для оптопары все что ниже +1В считается отсутствием сигнала, поскольку это токовый прибор (управляется током, а не напряжением). Диод защищает оптопару от обратного напряжения, что хорошо. Не понял Вы хотели полную гальваноразвязку сделать? Но ведь у Вас еще USB сидит на плате. По поводу DC/DC- там на схеме на первом листе вроде как задумка делать подтяжку сигналом DTR (хотя может и ошибаюсь) в этом случае DC/DC не нужен. У меня на переходнике USB-COM сигнал DTR всегда выдаёт 0. Питание есть только на CTS, когда открыт терминал. Когда стал брать питание с CTS, переходник начал глючить: ошибки в принятых данных, и даже иногда вылазила ошибка "Cannot set CommState". Как взял блок питания 220 -> 5в, всё сразу заработало. Можно было бы взять и с USB отладочной платы, но я хочу попробовать сделать источник питания 12->3.3 вольта. А потом и вовсе убрать отладочную плату Discovery и впаять имеющийся STM32F на плату с дырочками, там есть LQFP48 и 64, запитавшись от 12 вольт. Сейчас подумываю какой бы стабилизатор использовать. Для экспериментов хорошо иметь "стандартные" напряжения 3.3, 5, 10, 12 и т.п. , туда и экран можно засунуть, и диоды, и динамик небольшой для писков. Вчера искал сайт с "минималистическими" схемами, но что-то не густо. Я в номенклатуре элементов не силён, а вот знатоки этого дела когда встаёт вопрос "нужно 10 вольт" могут сразу выдать парочку схем с более-менее современными элементами. Да ещё применить правильно и получить заодно +/-5 вольт и т.д. p.s. У меня новенький трансформаторный блок питания на 12В 1А выдаёт 22В без нагрузки и 18В с подключением лампочки =) Внутри всё выглядит более-менее: трансформатор, резистор, диодный мост и конденсатор.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|