?

Log in

No account? Create an account
Пост про комбинированную плату Arduino: AVR + MIPS 24KEc + Linux - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Пост про комбинированную плату Arduino: AVR + MIPS 24KEc + Linux [Aug. 5th, 2013|10:01 pm]
Yuri Panchul
Господа! Согласно вчерашнему опросу, выиграл пост про плату:

Мой приятель Сергей Рыжков, директор интернет сервис профайдера http://rinet.net, недавно обратил мое внимание на плату, которая комбинирует классический AVR-ный Ардуино с линуксоносным MIPS 24K:

http://arduino.cc/en/Main/ArduinoYUN

Arduino YÚN

Overview

Arduino YÚN is the first member of a new groundbreaking line of wifi products combining the power Linux with ease of use of Arduino. The first Arduino YÚN is the combination of a classic Arduino Leonardo (based on the Atmega32U4processor) with a Wifi system-on-a-chip running Linino (a MIPS GNU/Linux based on OpenWRT). We embedded the Linux machine directly on the PCB of the Arduino Leonardo and we connected the two so that from Arduino it’s very easy to run commands on the Linux side and use it as an Ethernet and Wifi interface. Historically, interfacing Arduino with complex web services has been quite a challenge due to the limited memory available. Web services tend to use verbose text based formats like XML that require quite a lot or ram to parse. On the Arduino YÚN we have created the Bridge library which delegates all network connections and processing of HTTP transactions to the Linux machine.

Summary

Microcontroller ATmega32u4
Operating Voltage 5V
Input Voltage (recommended) 5V via microUSB or PoE 802.3af
Input Voltage (limits) 6-20V
Digital I/O Pins 14
PWM Channels 7
Analog Input Channels 6 (plus 6 multiplexed on 6 digital pins)
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB (ATmega32u4) of which 4 KB used by bootloader
SRAM 2.5 KB (ATmega32u4)
EEPROM 1 KB (ATmega32u4)
Clock Speed 16 MHz
Processor MIPS 24K operating at up to 400 MHz
Memory DDR2 64MB Ram and 16 MB SPI Flash
AP or router Complete IEEE 802.11bgn 1x1
Host/Device USB 2.0
MicroSD PoE compatible 802.3af card support


Что вы думаете на этот счет?

Занятная комбинация
3(37.5%)
Занятная кобинация, но как отнесутся пуристы Ардуино?
1(12.5%)
Занятная кобинация, но как отнесутся пуристы MIPS?
0(0.0%)
Занятная комбинация, и у меня даже есть идея, как ее применить
2(25.0%)
Я зилот ARM-а и ненавижу такую комбинацию вдвойне
1(12.5%)
Другое (пояснить в комментариях)
0(0.0%)
Из-за бугра плюете?
1(12.5%)

Какие еще комбинации вас бы заинтересовали?

Microchip PIC32MZ + Xilinx FPGA
3(16.7%)
Microchip PIC32MZ + Altera FPGA
4(22.2%)
MIPS interAptiv (>1 GHz на TSMC 40G) + Xilinx FPGA
5(27.8%)
MIPS interAptiv (>1 GHz на TSMC 40G) + Altera FPGA
4(22.2%)
Arduino-pin-compatible chipKit c Microchip PIC32 + MIPS 24K как YUN
0(0.0%)
Arduino-pin-compatible chipKit c Microchip PIC32 + MIPS interAptiv
0(0.0%)
Комбинации MIPS proAptiv c чем-нибудь (пояснить в комментариях)
0(0.0%)
Комбинации Cavium MIPS64 c чем-нибудь (пояснить в комментариях)
0(0.0%)
Другое (предложить в комментариях)
2(11.1%)
LinkReply

Comments:
[User Picture]From: freedom_of_sea
2013-08-06 05:35 am (UTC)

ардуино здесь лишний

Будущее за линуксовыми одноплатниками с GPIO и adc на борту
(Reply) (Thread)
[User Picture]From: panchul
2013-08-06 07:34 am (UTC)

Re: ардуино здесь лишний

Возможно, но тут есть один нюанс - у микроконтроллеров помимо GPIO и ADC есть еще целый арсенал периферии - CAN, DMA controller, SPI, I2C, UART, тамеры, USB-on-the-Go и т.д. и т.п.

Если в микроконтроллер ставить mid-range и тем более high-end процессор, то он 1) станет дорогим 2) станет ненадежным и недолговечным в экстремальных условиях так как их прийдется выпекать на маленьких нанометрах.

А если в mid-range чип (скажем для wireless) ставить всю эту кучу интерфейсов и специфических штук, то они не будут использоваться в обычных массовых приложениях (а относятся ли к ним приложения для хоббистов?).

В общем тут тонкий момент - как оптимизировать цену, надежность, набор периферии, производительность, наличие TLB MMU (необходимо для линукса), и чтобы при этом чип был пригоден как для обычных изделий, так и для условных современных ардуинщиков.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: nicka_startcev
2013-08-06 07:57 am (UTC)
>Какие еще комбинации вас бы заинтересовали?

мозг для мелкогабаритного робота:
1. ядро (АРМ, МИПС - пофиг) достаточное для нормальной работы линукса (64мб и 400мгц достаточно)
2. усб-хост
3. альтера, достаточная чтоб сделать в ней, например, полсотни ШИМов и смесителей шимов (шимы - как у хоббийных серв для самолётов и танчиков - 1-2мс импульс, 20мс период. такие ШИМы надо измерять, синтезировать)
4. габариты не более чем у ардуино нано, можно многоэтажный дизайн
5. 5в толейрант
6. импульсный стабилизатор для питания самой платы. импульсный, а не а-ля 78l05, который и проседает и греется.
7. под линукс должны быть драйвера всего, что есть на плате и в SoC-е -- зачастую в такого рода вещах то плавучка не поддерживается ядром и компилятором, то граф.сопроцессор без библиотек для работы с шейдерами, то интерфейс с камерой закрытый и без драйверов, то еще какая внезапная пакость.
8. крайне желательна минимальная согласованность с линуксовой инфраструктурой: скрипт для обновления ядра через интернет, репозитарий с пакетами -- примерно как у дебиана на разберри пи.
(Reply) (Thread)
[User Picture]From: panchul
2013-08-06 08:07 am (UTC)
Если вы напишете эти требования по английски и в развернутой форме (с обоснованиями каждой feature), я могу это переслать человеку, который занят дизайном плат для образовательных программ в Imagination в UK.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: alec_v
2013-08-06 06:45 pm (UTC)
Ну почему ПОЧЕМУ на MIPS-е нету ничего похожего на Marvel Kirkwood ???

Это серия SoC чипов для сетевых применений (DDR, 1Gb Ether, SATA, USB), ядро очень интересное - переделанный ARMv5 со встроенным L2 кэшем на ~1GHz. Я вот большой фанат MIPS-а, но глядя на эту железку (принесли починить) я сломался. Ыыыыы. Она РЕАЛЬНО БЫСТРАЯ.
(Reply) (Thread)
[User Picture]From: panchul
2013-08-06 06:58 pm (UTC)
А PMC Sierra, Cavium, Broadcom - нет аналогов с MIPS?
Напишите пожелание, пришлите мне на yuri.panchul@imgtec.com , я зафорвадю в технический маркетинг
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: nicka_startcev
2013-08-06 07:17 pm (UTC)
кстати, а делает ли АРМ или его ээ.. лицензиаты сборки из нескольких кристаллов, когда SoC+RAM+Flash как-то хитро спаивают и пихают в один корпус? на выходе выходит микросхема "всё в одном", к которой можно подключить буквально только одно питание и всю желаемую периферию типа ацп/цап, сетевых трансформаторов, шин и2ц/спи/кан.
(Reply) (Thread)
[User Picture]From: panchul
2013-08-06 08:22 pm (UTC)
я чего-то помню про такую сборку, но очень смутно
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: nicka_startcev
2013-08-06 10:14 pm (UTC)

два вопроса не в тему

1. сколько примерно ядер современного быстрого "MIPS" можно сделать по той же технологии и на той же площади кристалла что и современный х86 типа "core-не-помню-номер"?

2. краем уха из недостоверных и некомпетентных источников слышал, что китайцы в своём Goldson прикрутили какие-то волшебные дополнительные инструкции, которые магически ускоряют симуляцию х86-кода. Журналисты явно не понимают о чем говорят, я не понимаю на основе чего журналисты родили такое. Если там действительно было что-то радикальное в системе команд, то интересно в общих чертах узнать, что именно.
(Reply) (Thread)
[User Picture]From: panchul
2013-08-07 05:32 am (UTC)

Re: два вопроса не в тему

1. MIPS имеет смысл сравнивать с ядрами Intel Atom.

Так как ядра MIPS - синтезируемые, а Intel Core-что-то использует физические оптимизации.

Если сравнивать с ядрами Atom, то см. слайд 23 с http://microchip.com.ru/Support/MASTERs2012/P3212.pdf


2. Я не разбирался с инструкциями в Loongson / Godson, которые типа могут ускорить симуляцию x86 кода. Я не уверен, что это была особенно успешная идея.
(Reply) (Parent) (Thread)
[User Picture]From: alj868
2013-08-07 02:26 pm (UTC)
Купил я как-то Скайнет (черт не скайнет а Скайбокс-Дримбокс) (двух-ядерный мипс чего-то там, 400МГц каждый) а он оказывается не тянет Ютуб в 720р. И в 480р не тянет, а только лишь в 360 и ниже.

А АРМ гигагерцовый который сам себя скалит вниз до 500-700 МГц как правило, потому что всегда перегрет , тянет 720р.

Так что комбинация конечно интересная, но есть Кьюби Боард, и есть андроид стики за 35 долл + нано или мини за 8-12. И памяти в коммодити андроид стиках обычно по гигабайту тоже...

Edited at 2013-08-12 07:29 pm (UTC)
(Reply) (Thread)
[User Picture]From: alj868
2013-08-07 02:33 pm (UTC)
Хочу 64разрядный процессор с 2Гб ДДР чтобы нормальный линукс влезал, и недорогой ФПГА (Спартан6 ЛХ150 или типа того, что там есть у Альтеры) чтобы быстро с процессором говорил. У АРМа пока только 32битные такие есть и не то чтобы очень дешевые.
(Reply) (Thread)
[User Picture]From: Иван Графский
2013-08-09 02:04 pm (UTC)
По-моему, самая большая ошибка здесь, что многие ищут задачу под процессор, а не наоборот. Господа, какие у вас вообще проекты, что требуют такой вычислительной мощности? Я вот хочу сделать плату ЦОС с ацп и цапами и сделать универсальную платформу для радиосвязи, sdr и так далее. Если не выстрелит - то хоть поучу ЦОС и матлаб. Но у меня пока нет готовых предложений по поводу обработки - может быть это будет связка 6-го спартана с dsp процессором.
(Reply) (Thread)
[User Picture]From: panchul
2013-08-09 04:50 pm (UTC)
Кстати, в спартан6 есть DSP slices - DSP48. Они не могут заменить для данной задачи выделенный DSP?
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: waqur
2013-09-11 08:48 pm (UTC)
Недавно я делал систему управления умной теплицей, и такая связка (микроконтроллер + плата, способная тянуть линукс) хорошо себя зарекомендовала.

В моём случае это были 2 платы Arduino Uno + Raspberry Pi.

У Arduino хорошо получаются всякие задачи реального времени. Первая плата (обвешанная в основном датчиками окружающей среды) получила планировщик задач жёсткого реального времени. Каждый датчик занимает один или более из 32 слотов планировщика, и соответствующая процедура-обработчик занимается точным во времени I/O: DHT11, Dallas 1-wire и тому подобное. Хотя есть и просто работа с ADC.

Вторая плата (обвешанная в основном реле) просто слушает UART и дёргает релюшки, но к ней также подключены датчики напряжения и тока (с целью измерения общей потребяемой мощности на объекте), данные с которых считываются с помощью ADC. ADCшка делает 8000 измерений в секунду, каждое из которых начинаются по сигналу аппаратного таймера/счётчика, так что ритм измерений не сбивается пока микроконтроллер занят другими делами, например работой с UART. Очень мило, что в Atmega328P линия запуска измерений на ADC соединёна с аппаратными часиками, процессору остаётся только по прерыванию забирать результаты измерений из специального регистра и переключать аналоговый вход для следующего замера.

Ну а на Raspberry Pi уже крутится полноценный Linux, управляющая логика, web-сервер, база данных и всё такое прочее.

Edited at 2013-09-11 08:58 pm (UTC)
(Reply) (Thread)