Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
STM32 generic board
Hmm cena, to jeste ...

A da se napravi graficki akcelerator od jos jednog dodatnog Blue Pill? Smile
Reply
Iskreno mene je uvek klala memorija u tim GUI konstrukcijama. Prvo kad sam bio mali :Smile, kopirao sam mikroE - njihovu neku makromedia plocu il tako nesto, a oni su tu povezali graficki kontroler na MCU kao da su namerno hteli da zeznu stvar.

 Ali kako je moje iskustvo sa ARMom, grafikom i sta sve znam bilo =0, taj problem sam video tek nekoliko meseci kasnije, kad su ploce bile napravljene i kad su visuallTFT i mikroC poceli da me guse...

Onda  480x272 je poraslo na  800x480 (ono musterija hoce veliki ekran i uvek u je pravu fazon..) a to je vec bilo skoro pa previse...Nije bilo rama na samom grafickom chipu za vise od jednog frejma, to znaci da nema double buffering, pa se sve vidi kad se crta i sl...U nekim novim konstrukcijama sam poceo da korisitm 32f429  (ima i LCD kontroler) ali tu su vec porasli prohtevi, (musterija hoce i video u help-u :Smile ) i o5 fali i ram i flash...

Probavao sam i stm32f769 ali je nekako spor za debug i razvoj, zaboravim sta sam hteo dok se spusti kod...
Reply
Kako bi se za GUI ponasao NanoPI boardi?

http://www.friendlyarm.com/index.php?rou...ry&path=69

Evo ja imamo NanoPI NEO2 sa 512MB rama gore je njegova distribucija ubuntu sa terminalom...instaliras NodeJS imas gotove npm librarye za LCD GUI i tako dalje..cpu je quad core 512MB RAMA..dakle embeded paltofrma i lijepo sa Noda JS pises kod u JavaScriptu..ili kako kazu ako tek volis da ivuces sve iz CPU arhitekture onda ucit polako Go Lang kazu da je cak i bolji od C++ po performansama..taj NanoPI ima headere koji imaju SPI USART i ostale peripetije na koje se spaja sa okolnom okolinom..cpu je 32-bitni a ima i verzija sa 64-bitnim CPU...

A jezik moze da se instalira koji god hoce koji ima za ubuntu samo mora biti kompiliram za ARM arhitekturu moze i python pascal gcc a ima cam i arduino... pa me zanima kako bi po ponasao NanoPI boardi sa ovim gore STM32 boardom kod grafickom prikaza?
Reply
Sa tim NanoPI bi to sve radilo drasticno brze, pricamo o bar 10x brzem procesoru, DDR memorija itd, cak ako se ne varam tu je 64bitni CPU.
Za guranje displeja to bi bilo fino resenje, moze preko paralelnog porta da vezes display i to bi radilo prilicno brzo.

Recimo ja sam uspeo da izguram nekih 30FPS preko SPI seriskog porta, preko 8/16bit paralelnog to bi islo 200+ FPS.

E sad dolazimo do druge strane price, Linux i aplikativni procesori.
Za neke stvari koje nisu tako zahtevne, dakle tamo gde latenca procesiranja nije toliko kriticna i gde moze da se to seta u rasponu od nekoliko stotina milisekundi onda moze da se ide preko Linux tj preko kernela i visoslojne apstrakcije.
Medjutim ako ti treba veoma mala latenca reda stotine nanosekundi, onda mora da se ide na neki MCU i to MCU od 72MHz ce te poslove raditi drasticno bolje nego CPU od 1GHz+ sa Linuxom!

Naravno, dobitna kombinacija je nekakav "hibrid", za brze taskove sa malom latencom koristis MCU a za sve ostale manje prioritetne ili sporije zadatke koristi CPU.
Spomenuti BeagleBone Black je jedan od retkih mini racunara koji ima hibridni procesor, dakle u sebi ima 2 x MCU koji se vrte na fantasticnih 200MHz i jos jedan dodatni aplikativni CPU core na 1GHz.
Reply
(10-14-2017, 08:51 PM)ronovar Wrote: Kako bi se za GUI ponasao NanoPI boardi?

http://www.friendlyarm.com/index.php?rou...ry&path=69

Evo ja imamo NanoPI NEO2 sa 512MB rama gore je njegova distribucija ubuntu sa terminalom...instaliras NodeJS imas gotove npm librarye za LCD GUI i tako dalje..cpu je quad core 512MB RAMA..dakle embeded paltofrma i lijepo sa Noda JS pises kod u JavaScriptu..ili kako kazu ako tek volis da ivuces sve iz CPU arhitekture onda ucit polako Go Lang kazu da je cak i bolji od C++ po performansama..taj NanoPI ima headere koji imaju SPI USART i ostale peripetije na koje se spaja sa okolnom okolinom..cpu je 32-bitni a ima i verzija sa 64-bitnim CPU...

A jezik moze da se instalira koji god hoce koji ima za ubuntu samo mora biti kompiliram za ARM arhitekturu moze i python pascal gcc a ima cam i arduino... pa me zanima kako bi po ponasao NanoPI boardi sa ovim gore STM32 boardom kod grafickom prikaza?

Ja sam letos nešto nišanio NanoPi M1 Plus. Razlikuje sa po tome što ima eMMC na sebi. Nisam ga uzeo jer imam gomilu stvari koja mi stoji. Sad videh i ovaj NanoPi NEO za 8$ Huh  Da više ne veruješ
Pogledajte malo QT Creator za ove stvari oko izrade GUI na tim SBC platformama.
Reply
Dobar je NanoPI Neo ja ga imam ali prva verzija platio ga sa kutijom+adapterom+microsd i hladnjakom oko $30 sa postarinom preko ebaya...treba naci nesto jeftinije preko ebaya ili aliexpressa ili drugih sitova jer ovi kod friendlyarm racunaju postarinu koliko i uiredjaj vrijedi..primjer ja gledao da uzmem NanoPI Neo2 jer je 64-bitno CPU i gigabitni LAN traze za board $20 sto je vise nego ok cijena i jos $20 za shipping sto je previse Smile

Pisao sam im zasto da ne srede jean NanoPI Neo3 koji ce da ima Arm Cortex A53 8core, 2GB ili 4GB DDR3 RAM-a bez gpu (posto za server ne treba GPU jer ide preko SSH terminala)...ali odgovorn nisam dobio...zgodna stvarcica je taj NanoPI Neo...mada dosta radim u NodeJS pa mi to olaksava stvari dodje mi isto kao npr VPS Server ali ga ne trebam da placam svaki mjesec.

Sto se tice nanosekundi i latencija moze da se uzme jedan STM32 koji obradjuje te nanosekunde ili cak i pikosekunde i izlaz iz STM32 preko SPI ili USART-a moze da se salje na NanoPI Neo...logicno trebalo bi da ima malo kasnjenja ali to bi trebalo da radi super (STM32 za obradu signala u cim kracem vremenu a NanoPI Neo za GUI prikaz preko touch OLED ekrana)
Reply
To se videlo odavno da ce cene da odu skroz, pa secatese kada smo narucivali besplatno i stizale XMOS kartice sa 8 mikrokontrolera na sebi!!? Kada je to bilo??? To tad nesto bilo promotivna cena 10$ ili tako nesto.

Uzmite DANAS taj procesor da nesto napravite, hehee, nemoj da se za***mo. Uporedite to sa "mukicom" STM32 od par desetina MIPS Smile
To sta god da uzmes da napravis ima da izuva iz cipela ... kakvi crni DSP, pa to ima po 64 taki' kanala na sebi ... ma bezi : ) ... najezim se samo na pomisao ...
Mozda smo i "blesavi" sto to do sad nismo razgazili ... eeeh ... Gigabitni Ethernet na "izvolte" ... bruka sta tu sve moze da se radi i po kojoj ceni ....

http://www.xmos.com/products/silicon/xcore-200
Features
Industry-leading price/performance: down to ¢20 / logical core
Up to 32 cores and 4000MIPS


Attached Files
.pdf   xCORE-Architecture-Flyer_1.3.pdf (Size: 685,63 KB / Downloads: 5)
Reply
Bolje da se nisam podsecao na XMOS Big Grin ... ako ovog trenutka ne bacim STM32 i ne uzmem XMOS nista nisam uradio Big Grin ...
Katastrofa Smile ... pa jedan core samo da mi "preslika" memoriju TFT/Touch u interni RAM, drugi core samo za izvrsava DrawPixel(), DrawLine() itd, i treci da bude za interpreter komandi ... maaaa .... nemam reci sto to do sad nisam uopste probao ...

Ne vredi, XMOS ce da bude nova platforma koja ce stvarno da pokrije sve zahteve, a za za forum je interesantan HW za BatoMM V3.0 a moze vrlo lako da se desi da napokon sam AMP dobije Digitalnu drugu polovinu mosta o kojoj tek ima da pricamo! Digitalni ulaz sam vec obecao nije samo to! Smile
Reply
Jos sam malo istrazivao oko XMOS, ljudi ne znam sta da vam kazem.

STM32 i ekipa su dobri mikrokontroleri sa dobrim internim periferijama ali kada se u tu pricu uvuce neki graficki display sve postaje problem!
Spomenuo sam da sam sa STM32 uspeo preko SPI da izguram 30FPS (frejmova u sekundi) ali to je maksimum tog procesora i kada se to odradi ostaje jedno 10% slobodnog procesorskog vremena, nista preko toga dalje ne moze da se uradi a da to ne leti po nekim interaptima i da jitteruje ko blesavo.

Recimo taj SPI je pitanje da li moze da se napravi preko interapta na STM32 i da se rastereti procesor, i to ne znam sto, na SPI periferiji morao sam iz nekog razloga da cekam RXNE flag (RX buffer not empty) kod slanja podataka!!!, ne TXE (TX buffer empty) jer kada sam cekao TXE onda mi CS signal za SPI bio desinhronizovan i "ujedao" transmisiju i to je odmah pocelo da brljavi tako da sam prakticno ostao zaglavljen u tim petljama koje cekaju prenos preko SPI (clokovan na 20-ak MHz) i trosi skoro svo raspolozivo CPU vreme i nema gde dalje posle toga Sad

Ako me razumete, tu "samo" fali jos jedan core koji se drnda sa tim SPI i displejom. Kada bi se to resilo sve ostalo je onda boza!

Evo i jedno prakticno pitanje, banalan primer ali ajd da vas pitam, da li je neko uspeo da napravi non-blocking drajver za LCD 2x16 karaktera na bilo kom MCU????

Druga stvar, ova XMOS arhitektura stvarno ima buducnost jer se veoma lako prosiruje, ako zafale resursi, doda se jos jedan XMOS MCU i imaju specialni inter-connect bus za koji kazu da ima "zerro latency".
To je neverovatno korisna opcija, znate koliko znaci kada imate gomilu jezgra koja su medjusobno sinhronizovana i dele isti memoriski prostor ...

Definitivno moram da istrazim detaljnije sve oko XMOS, imam onu startKIT plocicu pa cu malo da to poguram ... STM32 ostaje takakv kakav jeste sa svim svojim dobrim osobinama ali XMOS je ipak nesto totalno drugacije gde se neki programski koncepti i metode resavaju na totalno drugi nacin ...
XMOS je predzadnja stepenica pre upotrebe FPGA!

XMOS u jednoj varijanti tih kontrolera imaju i model koji pored 8 MCU jezgra ima jos i CortexM3 jezgro sa svim kasicnim HW periferijama (SPI, I2C, PWM itd).
Ostali kontroleri koji nemaju to M3 jezgro prakticno nemaju nista ni od HW periferija nego se upotrebljava po jedno MCU jezgro koje na SW nivou radi sve te stvari. Caka je u tome sto kada imamo jezgro koje samo radi jedan zadatak, nema ko/sta da prekida te funkcije, 100% (pazite 100% stvarno) je sve determinisitno i tacno se zna sta/koliko traje i moze da se potpuno predvidljivo barata vremenima sa rezolucijom od 10ns.
Reply
Sve je to lepo, ali je glavno pitanje da li postoji realna potreba za tako nekim mocnim cpu.
Inace, non-blocking drajver za lcd 4x20 sam pravio pre jedno 10-ak godina. Samo povezes Db7-busy na interapt pin. Nista specijalno.
Reply
Displej sam kacio preko fsmc, a ako je npr spi onda iskljucivo dma. CS vozi isto hardwer najcesce neki pwm koji se lepo podesi.. Kazem nije problem brzo poslati podatke problem je odakle ih poslati i problem je brzo ih pripremiti. Npr na stm32f4xx blago overclockovanom na 216mhz uspevao sam da pripremin desetak frejmova u sec mjpeg 320x240...
Reply
>>> Sve je to lepo, ali je glavno pitanje da li postoji realna potreba za tako nekim mocnim cpu.

Pa meni recimo fale takvi resursi, posebno za neku robotiku i viseosne sprave.
Da sam na vreme istrazio XMOS sigurno se nebih drndao sa MESA (CNC - FPGA) karticama nego bi "zloupotrebio" po jedan MCU core koji bi se bavio samo jednom osom, tako za svaku osu posebno i tu da dodam jos jedan MCU koji samo sinhronizuje kretanje po osama, ostaju mi posle toga jos jezgra za ostale stvari oko aplikacije.
Tu mi recimo ne treba nikakava dodatna memorija samo mi je extremno bitno da nemam jitter i da je sve lepo sinhronizovano.
Cak to moze da ide dotle da se sa jednim jezgrom (bemga neka su i dva jezgra) napravi ceo servo-loop sa enkoderom i sta sve vec treba, pa tako X puta za svaku osu. To vec nije "šala" ... tako nesto sa single MCU je neizvodljivo ...

Kada se rasteretim ovih perifernih stvari, onda mogu da se posvetim "filosofiji" Smile ... hocu FFT da radim ... hocu da procesiram u realnom vremenu I2S signale ... hocu bre malo da osetim i ja moc tih procesora Smile
Sa STM sam "zaglavljen" u vremenu i prostoru, XMOS otvara totalno nove vidike ....
Reply
Sto se tice CNC-a i motion control, pogledaj LM628
Reply
Hmm, zanimljiv ovaj LM628 ... ali meni treba 8 high-precision high-speed osa Smile
Da stavim 8 komada LM628 ali ko to posle da sinhronizuje medjusobno sa tacnoscu od jednog koraka? ... nema sanse ... Smile
Samo FPGA ili nesto poput XMOS to moze da radi kako treba ...
Reply
Ekipa kod mene je radila viseosni cnc sa lm628 i komtrolisao ga je 386EX. Na njemu je koelga implementirao kompletan DIN66025 u ASM.
Reply
Svaka njemu cast, ali ja nemam zivaca da pisem ASM za x386 ... niti mi se kani da guram PC procesor uz jos 8 dodatnih IC da bi uradio nesto sto moze opusteno da radi jedan XMOS IC!
Ako ce mo tako, onda se opet vracamo na MESU koja ima FPGA i gde ti treba PC reda i3/i5/i7 da to sve gura iz recimo LinuxCNC, stim sto dobijes onda procesorske snage da radis 3D vizuelizaciju kretanja i jos gomilu nekih SW stvari koje su potrebne za takve masine.
Reply
Vojce, ovaj XMOS je opkako dobra sprava, posebno ako uzmemo u obzir da je skalabilna i da imaju bus za medjusobnu sinhronizaciju vize fizickih jezgra, pa to je nesto prelepo "u elektronici", seti se bus kakav smo morali da pravimo na backplane PCB za PLC2000, zamisli to sad isto gde ti sve zivo paralelno i medjusobno sinhronizovano po jednoj kartici, to je babaroga!
Reply
Odlican video sa objasnjenjem kako je to sve osmisljeno oko XMOS sa "HW thread"-ovima.
https://www.youtube.com/watch?v=nX1gR5pfMEw
Reply
Miki, ovo cu sigurno da proucim. Na prvu loptu mi je vrh. Moram da vidim kako se koriste resursi i koliko je komplikovano. Do tada evo jedne zanimljive informacije:

http://uk.farnell.com/xmos/xs1-l4a-64-tq...dp/2356335
Reply
xC njihov kompajler je prvo baziran na LLVM kompajleru. To je isto zanimljiva prica za sebe.
Morali su da uvedu nekoliko nadogradnji na standardan C/C++ i to nekoliko vrlo bitnih i korisnih stvari.
Uveli su nove operatore poput <: i :> (pisi i citaj definisan stream end-point), nove kljucne reci za select/case, imaju nove funkcije PAR za paralelizam i najvise sto mi se prakticno svidelo je sto imaju INTERFACE programski patern gde se definise tip i ponasanje neke komunikacije tj kako oni to sve zovu end-point tako da se dolazi do jednog felksibilnog lose-coupled koncepta gde objekti i HW istance imaju svoje tacno lepo definisano ponasanje i nemaju bukvalno nikakve vise veze sa ostatkom sistema niti nesto utice na te dogadaje, potpuno je izolovan i u funkcionalnom smislu i u smislu apstrakcije SW objekta, code je potpuno re-upotrebljiv i nezavistan od ostatka sistema.

Dalje je interesatno da ne postoji DMA! Iz prostog razloga zato sto nije potreban u tom obliku kakvog smo ga imali na predhodnim MCU jer se sve radi preko event-a koji definsu ponasanje na prozivke ili odgovore predhodno definisanih HW tj SW objekata i to se sve desava na nivou HW gde nema context swich overhead za interapte!.

Nema dodeljivanja prioriteta interaptima! Opet zanimljiva stvar jer se prakticno to radi tako sto se samo u swich/case postavl zeljeni redosled funkcija! Opet je sve tacno definisano koliko traje, nema prekidanja tih procesa!

Thread-ovi nemaju return, svi su prakticno u svojim posebnim while(1){} beskonacnim petljama.

Inter komunikacija izmedju procesa se radi preko definisanih programskih INTERFEJSA, na primer dva nezavisna procesa mogu da imaju razmenu podataka preko nase definisane "stream strukture" koja moze recimo da sadrzi poseban Audio stream, poseban Video stream i poseban TELEKTEXT stream end-point/tacke.
Sta se sve izmedju tih tacaka desava je stvar naseg programa, recimo hocemo DSP da radimo nad tim podacima, nema problema, jedan core to radi, treba mu toliko-i-toliko vremena da procesira to sto hoces i ta funkcija je zavrsena! Definises lepo opet INTERFACE, ulazi toliko, izlazi toliko, imam te-i-te dogadjaje za start/stop, parametar x, y, z i tako dalje.

Ne postoji GLOBALNI scope memorije! Tj postoji ali oni to oni zovu UNSAFE gde je aplikacija duzna da vodi racuna o upotrebi memorije i prevenciji Race Condition situacija. Umesto toga se sve desava opet preko tacno definisanog interfejsa i procesi su prakticno tread-safe i kao takvi mogu da se lako paralelizuju. Jedan isti pod-program moze da se pokrenu u vise razlicitih nezavisnih instanci. Na primer, na jednom logickom jezgru pokrenes 8 kanala RS-232 od 115k, prakticno klasican bit-banging na SW nivou ali jedno jezgro na 100MHz to moze da odradi bez problema i neka samo to radi on je "pobedio" Smile

Ima tu jos raznih interesatnih stvari ... totalno nesto novo i meni neotkriveno u MCU svetu, ove stvari su mi poznate bile iz IT sveta, sada kada je to spusteno na MCU nivo to je vec vrlo vrlo fina prica!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)