LINUX.ORG.RU

ARM-микроконтроллер


0

0

Пока что я пользовался PIC'ами - с ними проблем вообще нет. Но вот в новом проекте решил не заморачиваться с набором уймы микроконтроллеров и реализовать управление всеми железяками (10 шаговиков, 10 термодатчиков, 15 датчиков Холла) на одном контроллере.

У ARM, вроде, ног полно. Но вот что меня смущает: какие-то даташиты неполноценные на них. Ну и не нашел я достаточного количества портов.

Итак, что нужно:

  • желательно 10 раздельных портов аппаратного ШИМ'а (но, если рабочая частота контроллера будет в сотни мегагерц, ШИМ можно будет и программно реализовать)
  • как минимум 10 10-битных АЦП
  • как минимум ceil((10*4 + 15)/8) = 7 цифровых портов
  • USART
  • хотя бы 4 раздельных таймера
  • разрядность - по крайней мере 10-битная

Вопросы:

  1. Реально ли найти такой ARM-микроконтроллер?
  2. Как вообще дела обстоят с ними в линуксе? Мне уже в разных темах говорили, что программируется он обычным arm-gcc, а вот как прошивать-то?
  3. Если с таким количеством портов контроллеров нет, посоветуйте что-нибудь подходящее, чтобы меньшей кровью обойтись (меньшими размерами блока электроники).
☆☆☆☆☆

Вообще-то ARM'ов - как собак нерезаных, с туевой хучей вариантов периферии - от Atmel', STM, NXP, Freescale, тысячи их! Документированы контроллеры хорошо, но сначала нужно определится с конкретным классом/моделью. Это, кстати, заодно будет определять способ «прошивки» - кроме JTAG контроллеры программируются по rs232, usb и т.д. Я бы посоветовал модельный ряд LPC29xx от NXP (http://ics.nxp.com/products/lpc2000/lpc29xx) - они обещают до 24 каналов PWM «на борту», детально уже будешь сам разбираться...

RVictor
()
Ответ на: комментарий от Eddy_Em

Неудобный - это когда выводы сделаны на нижней стороне чипа, когда сбоку «торчат» и доступны - это ещё в порядке...

RVictor
()

>желательно 10 раздельных портов аппаратного ШИМ'а (но, если рабочая частота контроллера будет в сотни мегагерц, ШИМ можно будет и программно реализовать)

как минимум 10 10-битных АЦП


Это как? Больше 4-х физических АЦП не видел. А с коммутируемыми выходами проблем нет - это да.

Мне нравятся STM - у них верхняя линейка дешевая.

x-com
()
Ответ на: комментарий от x-com

Ну, АЦП можно коммутировать, лишь бы цифровых портов хватило. С таймерами и ШИМом я, конечно, загнул: раздельно управлять десятью двигателями одновременно вряд ли какой микроконтроллер сможет, т.е. здесь хотя бы поочередно... Но, в принципе, рекомендованные выше МКшки вполне ничего. Правда, паять замучаешься (а хотелось бы для опытов на панельку; сотню с лишним ножек отпаивать - то еще «счатье»...)

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Нахер для такой задачи этот ARM. А тем более обрезки типа Cortex M3/M4. C 10 однородных фазонезависимых PWM нет микроконтроллеров.. 6 сдвоеных (под полумост) PWM есь в TMS320F28235, TMS320F28335(floating point Delfino). New 80MHz TMS320F28086 has 9 dual PWM channels. 300MHz TMS320C2834x (Floating point Delfino) also has 9 dual channel 16 bit PWM. Channels A could be utilized as 18-bit high resolution PWM. They also released new dual core Concerto series recently. It has C2000 and Cortex M3 cores available in TQFP144 package. I'm not sure if this series has more than 6 same-type phase-independant PWMs.

This fully 32bit 2000 devices have higher performance than Cortex M3/M4/R4 at the same frequencies, but they also consumes a little more power.

According to my opinion the best performance to power consumption ratio (without hardware codecs like H.264) has Blackfin family.

Buddy if you want 10+ unique phase-independant PWMS, you'd better use FPGA- based solution with soft processors like Microblase(75-150 Mhz) form Xilinx or NIOIS-II (same frequencies) from ALTERA. Xilinx also has FPGA with hard-coded cores (PPC405, PPC440, and finally Arm Cortex A9).

Best regards, DOOMER#GP

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.