Микроконтроллер под linux + Ethernet

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
pulo
Родился
Сообщения: 9
Зарегистрирован: Чт авг 18, 2011 18:41:42

Микроконтроллер под linux + Ethernet

Сообщение pulo »

Здравствуйте.
Микроконтроллерами начал заниматься совсем недавно, опыт программирования есть, хочу сделать следующее:
плату которая берет значение с АЦП и шлет в Ethernet (с небольшой обработкой), задачу решать хочу на линуксе, те обязательно хочу чтобы там линукс стоял (uClinux) мало ли, что то добавить нужно будет, отсюда следующий вопрос:
Какой микроконтроллер выбрать и что дополнительно может потребоваться?
остановился на микроконтроллере STM32F107RCT6 и отладочной плате STM3210C-EVAL, но засомневался что uClinux на нем будет работать тк не удалось выяснить поддерживает ли uClinux данный Ethernet встроенный в микроконтроллер. Смотрел в Application notes но так и не понял что за Ethernet там встроен. Может кто знает хороший микроконтроллер под линукс и Ethernet ?
Также думаю над следующим вариантом:
Процессор SAM9XE128
Отладочная плата SAM9XE-EK
тогда нужно еще внешнии SDRAM и Flash, соответственно какого объема должно хватить для нормальной работы?
Реклама
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Микроконтроллер под linux + Ethernet

Сообщение Satyr »

Для твоей задачи линукса и близко не нужна.
Задача вобще не 5 копеек.

Рекомендую без глупостей взять МК ламинаримикро с встроенными MAC + PHY Ethernet, сделать простешиую плату, буквально RJ45 разьем, кварц, чуть рассыпухи и на базе StellarisWare за пару вечеров все закодить до полной работоспособности.
Реклама
Аватара пользователя
DiGiCat
Друг Кота
Сообщения: 4793
Зарегистрирован: Пт июл 11, 2008 09:42:35
Откуда: Made in USSR

Re: Микроконтроллер под linux + Ethernet

Сообщение DiGiCat »

на линуксе и STM32 не видел, а :
Ethernet to SPI
Ethernet - на AVR
uhttpd-avr
scio me nihil scire...
_______________________

Изображение <= Жалобная кнопка в правом нижнем углу... )
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Микроконтроллер под linux + Ethernet

Сообщение Satyr »

В микроэлектроннике 3-4 года - революция и новая эпоха.
Сколько можно с ENC28J60 на 10мегабит, тормозным интерфейсом наружу и за такие деньги сидеть ?

Автор темы в личку писал, но отвечу лучше тут, надо прогресс нести в массы :))

Есть весьма интересное семейство МК у Texas Instruments - Stellaris. В нем несколько МК с встроенными всеми компонентами 100 мегабитного Ethernet, наруже только согласующие трансформатор и сопротивления.

Я брал lm3s6432 - средненький по жирности, ног не слишком много, без проблем покупается в Москве.

Вот минимум, достаточный для запуска МК с работающим Езернетом и отладки
lm_eth.PNG
(71.68 КБ) 1940 скачиваний
Дальше навешивать по вкусу

К семеству есть замечательная библиотека StellarisWare, с которой все за 5 минут с полпинка запускается.

Практически вся программа, не считая моих драйверов под 1-wire и "cgi-скрипта", для формирования странички.


int main()
{
unsigned long ulIPAddr = 0;
unsigned char pucMACAddr[6] = { 0x10, 0x20, 0x30, 0x40, 0x50, 0x61};

IntMasterDisable();

// Configure main clock 50MHz
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ);
FlashUsecSet(50);

// Configure SysTick for a 100Hz interrupt.
SysTickPeriodSet(SysCtlClockGet() / TICKS_PER_SECOND);
SysTickEnable();
SysTickIntEnable();

// Enable and Reset the Ethernet Controller.
SysCtlPeripheralEnable(SYSCTL_PERIPH_ETH);
SysCtlPeripheralReset(SYSCTL_PERIPH_ETH);

// Enable Port F for Ethernet LEDs. PortF_2, PortF_3
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinTypeEthernetLED(GPIO_PORTF_BASE, GPIO_PIN_2 | GPIO_PIN_3);

// User LEDs PortG_0, PortG_1
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
GPIOPinTypeGPIOOutput(GPIO_PORTG_BASE, GPIO_PIN_0 | GPIO_PIN_1);
GPIOPadConfigSet(GPIO_PORTG_BASE, GPIO_PIN_0 | GPIO_PIN_1, GPIO_STRENGTH_8MA, GPIO_PIN_TYPE_STD);

// User jumpers PortC_4, PortF_1
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
// SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinTypeGPIOInput(GPIO_PORTC_BASE, GPIO_PIN_4);
GPIOPadConfigSet(GPIO_PORTC_BASE, GPIO_PIN_4, 1, GPIO_PIN_TYPE_STD_WPU);
GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_1);
GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_1, 1, GPIO_PIN_TYPE_STD_WPU);

// debug uart
UART1Init();

OneWire_Init();

// Enable Interrupts
IntMasterEnable();

UART1Write("HW Started.\n");

// Initialize the lwIP TCP/IP stack.
lwIPInit(pucMACAddr, 0, 0, 0, IPADDR_USE_DHCP); // глючит в длинке dhcp по черному

httpd_init();
http_set_cgi_handlers(&MyCGIList, 1);
http_set_ssi_handler(MySSIHandler, MySSITags, 2);

OneWireScanBus();
OneWireStart();

while(1)
{
if(ulIPAddr == 0)
{
// What is our current IP address?
ulIPAddr = lwIPLocalIPAddrGet();

// If it's non zero, update the display.
if(ulIPAddr)
{
LED_GREEN_ON();
// printf("IP %d.%d.%d.%d\n", ulIPAddr & 0xff, (ulIPAddr >> 8) & 0xff, (ulIPAddr >> 16) & 0xff, ulIPAddr >> 24);
}
}
}

return 0;
}

Результат примерно такой - http://satyr666.dyndns.org:20000/
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Микроконтроллер под linux + Ethernet

Сообщение Satyr »

Развязочные конденсаторы где то обрезались -)))
Расставить у каждого vcc.

Кварц на 8Мгц не обязателен, есть встроенный RC генератор, если стабильность частоты не нужна для общения с переферией.
Реклама
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Микроконтроллер под linux + Ethernet

Сообщение Satyr »

Если что
цены в Москве
lm3s6432 - 338р

atmega128 (и ее меньше минимума, делать на меньшем - просто наивно) - 172р
+
ENC28J60 - 128р

Только в первом случае у вас 32кб ОЗУ, 50Мгц, 32 бита, сеть 100 мегабит и крошечная примитивная плата,
а во втором 4кб ОЗУ, 20Мгц, 8 бит, сеть 10мегабит и плата, с которой еще повозиться за те же деньги )))
Реклама
pulo
Родился
Сообщения: 9
Зарегистрирован: Чт авг 18, 2011 18:41:42

Re: Микроконтроллер под linux + Ethernet

Сообщение pulo »

Всем большое спасибо за ответы, вариант с lm3s6432 заманчив, но думаю устройство будет многопрофильным, поэтому думаю доплатить и поставить процессор SAM9XE128 на котором будет работать linux соответственно, но вот не знаю сколько необходимо SDRAM и Flash, может кто-нибудь собирал такую систему?
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Микроконтроллер под linux + Ethernet

Сообщение Satyr »

Если уж так приспичило с линухом поиграть - купи за 2500р такую чтуку и экспериментируй http://starterkit.ru/html/index.php?nam ... view&id=32 Все уже есть + BSP прилагается.
Но, опять же, с большой вероятностью ты переоцениваешь "многопрофильность" своей задачи -)))
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: Микроконтроллер под linux + Ethernet

Сообщение Satyr »

Могу до кучи сказать, что в китайских GPS навигаторах на WinCE обычно 32/64Mb RAM и 64Mb флеша, который занят меньше чем на половину.
Так что делай прикидки.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»