Programski jeziki in okolja

programski jeziki in programiranje

Moderator: tilz0R

Programski jeziki in okolja

OdgovorNapisal/-a MaticBabnik » 11 Sep 2017, 17:00

No po nekaj več kot dveh letih sem se le naveličal Arduino IDE-eja in njegovega jezika.
Vendar v katerem okolju in jeziku naj nadaljujem?
Jezik naj bi imel sintakso C-ja, od okolja pa pričakujem le to da je zastonj in ima čim manj hroščev (CVAVR odpade).
:_helpsos :_helpsos :_helpsos
_____________________________________________________________________________________________________________
Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. -A.Einstein
Uporabniški avatar
MaticBabnik
 
Prispevkov: 11
Pridružen: 05 Sep 2017, 21:10
Zahvalil se je: 5 krat
Prejel zahvalo: 0 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 0

Re: Programski jeziki in okolja

OdgovorNapisal/-a s54mtb » 11 Sep 2017, 17:04

Predlagam, da zamenjas se mikrokontroler za kak arm cortex. IDE je lahko keil, ki je do32k kode brezplacen.
Uporabniški avatar
s54mtb
 
Prispevkov: 13327
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1957 krat
Prejel zahvalo: 5375 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Programski jeziki in okolja

OdgovorNapisal/-a MaticBabnik » 11 Sep 2017, 18:34

Pa mi ta zamenjava prinese kaksne prednosti???
Kakšne so prednosti in slabosti ARM v primerjavi z nečim kot atmega328P
Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. -A.Einstein
Uporabniški avatar
MaticBabnik
 
Prispevkov: 11
Pridružen: 05 Sep 2017, 21:10
Zahvalil se je: 5 krat
Prejel zahvalo: 0 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 0

Re: Programski jeziki in okolja

OdgovorNapisal/-a Protoncek » 11 Sep 2017, 18:42

U, madonca...kakšno vprašanje...
prednosti? Ni da ni, po moje bi lahko našteval do jutri. Hitrost, periferija, spomin...
Slabosti? Hja, mego328 že poznaš, arm moraš pa še spoznati. Po moje je to edina slabost (in dovolj dobra, da mene odvrača od ARM-a. A ni kriv toliko ARM kot jezik C, ki ga jaz ne znam...).
Kljub temu, da nimam pojma o ARM-u ti tudi jaz priporočam, da greš nanj. Če si še mlad, še toliko bolj. Za nas starine je (zaenkrat) mega še dovolj...
Uporabniški avatar
Protoncek
 
Prispevkov: 4905
Pridružen: 17 Jan 2015, 21:41
Kraj: Mengeš
Zahvalil se je: 555 krat
Prejel zahvalo: 678 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 139

Re: Programski jeziki in okolja

OdgovorNapisal/-a marko » 11 Sep 2017, 19:06

Komot ostaneš na AVR-ju, samo Arduino zamenjaj z Atmel Studijem in ICE3 programatorjem. Sintaksa je ista kot v arduino okolju, ki je itak C.
Tem 8 bitnik vs ARM je pa nešteto in ni pravega odgovora in razloga za ali proti, kar tebi pač bolj odgovarja. Meni se zdi, da če se z 328P ukvarjaš, ni potrebe po ARM-u, ker imaš tudi znotraj 8 bitnikov še veliko zmogljivejših mikrokontrolerjev. Tudi znotraj Atmela.
Če ti v življenju ne gre in si nesrečen, se spomni na lastnike Renaultov.
marko
 
Prispevkov: 1432
Pridružen: 18 Jan 2015, 02:00
Zahvalil se je: 176 krat
Prejel zahvalo: 215 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 113

Re: Programski jeziki in okolja

OdgovorNapisal/-a xfce » 11 Sep 2017, 19:20

Ponavadi se izbira MCU glede na potrebe in ceno. Imaš zamišljen izdelek in poiščeš pravi MCU, ne pa da izbereš MCU in ugotavljaš kaj bi naredil (oziroma to je hobi).

V zadnjem času so ARM-ji zmagovalci kar se tiče vsega. Recimo en 32 Mhz 8 bit mcu dobiš za okoli 50 centov in prav tako en mali cortex m0, s tem da ima več rama in je 32 bit. Mislim, da je najbolj pomembno, da si zamisliš, kaj bi sploh naredil in kaj potrebuješ.
Uporabniški avatar
xfce
 
Prispevkov: 892
Pridružen: 14 Feb 2015, 12:38
Kraj: Poljane nad Škofjo loko
Zahvalil se je: 124 krat
Prejel zahvalo: 257 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 51

Re: Programski jeziki in okolja

OdgovorNapisal/-a s54mtb » 11 Sep 2017, 19:32

Protoncek je napisal/-a:U, madonca...kakšno vprašanje...
prednosti? Ni da ni, po moje bi lahko našteval do jutri. Hitrost, periferija, spomin...


Na hitro: če ti je dovolj "žmiganje" z led in branje tipk, potem res ne rabiš hitrega arma. Če ti je "bit banging" I2C čisto dovolj hiter in fleksibilen, potem ne rabiš hitrega arma. Če ti ni atmega predrag, potem ne glej cortex-a. Če te poraba ne skrbi in ne potrebuješ baterijskega napajanja, potem ostani na atmegi....
res bi lahko še dolgo našteval.

Če bi pa rad delal kaj "sodobnega" in "resnejšega", potem ti pa priporočam, da nabaviš eno nucleo razvojno ploščo za STM32F0 in poskusiš. V najslabšem primeru boš vrgel stran tistih 5 eur in nekaj prostega časa. Ampak sem prepričan, da če imaš projekt(ič), ki je malo zahtevnejši od prižiganja LED z atmego, potem boš hitro osvojil tudi arm-a.

Lahko začneš kar tule:
https://stm32f4-discovery.net/
pa sproti kaj vprašaš.

Hitro boš ugotovil, da gre PWM lahko v MHz, da se izračun premice lahko dogaja milijonkrat na sekundo, da gre takt na SPI ali I2C preko MHz, da se proceosr zbudi, nekaj naredi in zaspi nazaj v 100us in je povpračna poraba tako majhna, da lahko napajaš kar iz gumb baterije, ....
Uporabniški avatar
s54mtb
 
Prispevkov: 13327
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1957 krat
Prejel zahvalo: 5375 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Programski jeziki in okolja

OdgovorNapisal/-a zanka » 11 Sep 2017, 19:40

Slaba lastnost ARM-a je to, da jih večina deluje na 3,3 V. Če je logika zadaj 5 V ... potem verjetno tisti za pol evra odpadejo ali pa k ceni prispeva dodaten vir napajanja, prehodi nivojev ipd.
Uporabniški avatar
zanka
 
Prispevkov: 3186
Pridružen: 17 Mar 2016, 01:16
Kraj: SI-8000
Zahvalil se je: 120 krat
Prejel zahvalo: 371 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 74

Re: Programski jeziki in okolja

OdgovorNapisal/-a Protoncek » 11 Sep 2017, 20:07

Tudi xmege so na 3 voltih, torej če pri megah rabiš kaj več moči si na istem. No, pri veliko višji ceni xmege seveda...
Pač uporabiš level konverter pa je. Čeprav... ko si na 3 voltih to pač upoštevaš in je potem tudi periferija 3 voltna.
Uporabniški avatar
Protoncek
 
Prispevkov: 4905
Pridružen: 17 Jan 2015, 21:41
Kraj: Mengeš
Zahvalil se je: 555 krat
Prejel zahvalo: 678 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 139

Re: Programski jeziki in okolja

OdgovorNapisal/-a Kroko » 11 Sep 2017, 20:17

Danes vse "moderno" dela na 3.3V in 1.8V. 5V logika je preteklost.
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 5093
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 709 krat
Prejel zahvalo: 1809 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Programski jeziki in okolja

OdgovorNapisal/-a VolkD » 11 Sep 2017, 20:38

Kroko je napisal/-a:5V logika je preteklost.
Ni ravno preteklost, se pa hitro umika. Kljub vsemu bo še dolgo ostala, servisi in podobne stvari.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 51597
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 12721 krat
Prejel zahvalo: 7697 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Programski jeziki in okolja

OdgovorNapisal/-a zanka » 11 Sep 2017, 21:01

Če je 3,3 V moderno, potem se bi lahko izdelek na Mašunu moderniziral. (Ugibam, da je deloval na 5V.) Kajti, ko sem jaz začel, sem začel na 5V.
Uporabniški avatar
zanka
 
Prispevkov: 3186
Pridružen: 17 Mar 2016, 01:16
Kraj: SI-8000
Zahvalil se je: 120 krat
Prejel zahvalo: 371 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 74

Re: Programski jeziki in okolja

OdgovorNapisal/-a MaticBabnik » 11 Sep 2017, 21:05

No, ARM mi ni čisto nova stvar saj RaspberryPI 3 uporablja Cortex-A53.
Vendar še par vprašanj:
Multithreading???
V kakšnih ohišjih se dobi cortex M0?
Kako je s knjižnicami?
Kako se uploada programe?
Omejitev toka na pinih? 20mA? 40mA?


Oh in glede razvojne plošče, ste mislili kaj takega:
Slika
Slika
Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. -A.Einstein
Uporabniški avatar
MaticBabnik
 
Prispevkov: 11
Pridružen: 05 Sep 2017, 21:10
Zahvalil se je: 5 krat
Prejel zahvalo: 0 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 0

Re: Programski jeziki in okolja

OdgovorNapisal/-a krko » 11 Sep 2017, 21:13

Dobi se TQFP, LQFP, QFN, F0 pa tudi v TSSOP ohišjih. THT se ne dobi.

Glede razvojne ploščice bi priporočal Nucleo (nekje 10 € ali manj na Farnellu), programira pa se preko SWD, kateri omogoča tudi debugiranje.
krko
 
Prispevkov: 1143
Pridružen: 18 Jan 2015, 12:56
Kraj: Cerknica/Postojna
Zahvalil se je: 82 krat
Prejel zahvalo: 110 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 12

Re: Programski jeziki in okolja

OdgovorNapisal/-a s54mtb » 11 Sep 2017, 21:22

5V ni preteklost. Se še kako proizvaja. Cypress psoc ima celo vgrajen napajaknik in ga lahko direktno napajaš iz krepko več kot 5V, nxp (ex freescale), familija kinetis KE je čiztokrvni cortex m3 in dela lepo na 5V.

Ohišja? Poglej nxp lpc800, jih imaš tudi v DIL8 ali DIL40, lahko pa v bga z 8 kroglicami. Izbir je res velik. Samo kinetis ima preko 1000 modelov. STM32 je podobno. Za začetek lahko izbereš npr. TSSOP 20 stm32f0xx, ki je cenovno v rangu tinyavr.
Uporabniški avatar
s54mtb
 
Prispevkov: 13327
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1957 krat
Prejel zahvalo: 5375 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Programski jeziki in okolja

OdgovorNapisal/-a s54mtb » 11 Sep 2017, 21:28

krko je napisal/-a:Dobi se TQFP, LQFP, QFN, F0 pa tudi v TSSOP ohišjih. THT se ne dobi.

Glede razvojne ploščice bi priporočal Nucleo (nekje 10 € ali manj na Farnellu), programira pa se preko SWD, kateri omogoča tudi debugiranje.


Tudi dil so, kot sem napisal....
http://uk.farnell.com/nxp/lpc810m021fn8 ... dp/2320692

Ne pozabi, da na stm32 platah dibiš debug vmesnik, ki ga lahko uporabiš za debugiranje tvoje elektronike na osnovi tega mcu. Ne r abis raznih cigotaagov ali drugih vmesnikov.

Aja, pa se nekaj je zanimivejse kot pri xduino: debugiranje je celo uporabno. Nastavis lahko breakpointe, gledas vsebino spremenljivk v zivo, ... Pa tudi "prinnf" si lahko napeljes v okno debugerja v izbranem IDE...
Uporabniški avatar
s54mtb
 
Prispevkov: 13327
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1957 krat
Prejel zahvalo: 5375 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Programski jeziki in okolja

OdgovorNapisal/-a zanka » 11 Sep 2017, 21:29

s54mtb je napisal/-a:Ohišja? Poglej nxp lpc800, jih imaš tudi v DIL8 ali DIL40, lahko pa v bga z 8 kroglicami.

Kolikor sem jaz našel je samo LPC1114FN28 v DIP.

Sicer smo pa narediti še eno temo, čemu ARM.
Uporabniški avatar
zanka
 
Prispevkov: 3186
Pridružen: 17 Mar 2016, 01:16
Kraj: SI-8000
Zahvalil se je: 120 krat
Prejel zahvalo: 371 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 74

Re: Programski jeziki in okolja

OdgovorNapisal/-a s54mtb » 11 Sep 2017, 21:32

DIL8,........
Si pogledal link v objavi nad tvojo?

Za eksperimentiranje...
http://e.pavlin.si/2016/02/03/stm32f070 ... ototyping/
Uporabniški avatar
s54mtb
 
Prispevkov: 13327
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1957 krat
Prejel zahvalo: 5375 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Programski jeziki in okolja

OdgovorNapisal/-a zanka » 11 Sep 2017, 21:40

s54mtb je napisal/-a:DIL8,........
Si pogledal link v objavi nad tvojo?

Dobro, ampak velja le do razprodaje.
Uporabniški avatar
zanka
 
Prispevkov: 3186
Pridružen: 17 Mar 2016, 01:16
Kraj: SI-8000
Zahvalil se je: 120 krat
Prejel zahvalo: 371 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 74

Re: Programski jeziki in okolja

OdgovorNapisal/-a tilz0R » 11 Sep 2017, 22:16

Matic,

Kot je omenil s54mtb, Keil je free do 32-kb kode.
Še več, če uporabljaš STM32L0 ali STM32F0, potem je Keil popolnoma free ne glede na code size (no limitations at all).

Torej, če bi rad začel z STM32 serijo, predlagam zate L0 serijo.

Ko boš pripravljen se lahko oglasiš na ZS in se dogovoriva kateri nucleo dobiš.
V zameno pričakujem, da boš opisal na tem forumu, kako ti je uspelo prižgati prvo LED, ki je na nucleo plati ;) (shouldn't be that hard)

Vedno podpiram ljudi z željo po novem učenju!

Če dam nekaj prednosti slabosti ARM (STM32) vs 8-bit (Atmel Atmega):

Slabosti:
- Logika je 3V3 in ne 5V
- Osnovno delovanje ni več tako osnovno
- Tehnologija ne omogoča EEPROM-a (L0 in L1 ga sicer še imata, ostali ne več)
- Novo okolje, nekaj učenja
- ...

Prednosti:
- Cena
- Načeloma večji pomnilniki, RAM, flash, etc
- ARM-Cortex inštrukcije, če se naučiš ARM, lahko vsak MCU, ki bazira na armu programiraš enostavno (ne glede na vendorja)
- Dobiš CMSIS paket knjižnice, ki jih izda ARM
- Na trgu imaš MCU z do 400MHz (MCU, not MPU)
- MCU-ji podpirajo ogromno komunikacijskih periferij, kar Atmega ne podpira (35 različnih v STM32H7 seriji)
- Vedel boš, kaj pomeni enostaven debug kode z onboard debuggerjem (ST-Link), če uporabljaš STM32 serijo
- ...

Kar se pa tiče STM32, so pa knjižnice in ecosystem narejeni tako za začetnike (HAL knjižnice) kot advanced userje, ki vejo kaj hočejo in kako to doseči (LL knjižnice). Zraven pride še grafičen konfigurator inicializacije periferij (STM32CubeMX), kar precej zmanjša začetne težave, načeloma jih nebi smelo biti več.

Spodnji odgovori so za STM32.

Multithreading???

Multithreading je mogoč, če imaš RTOS sistem implementiran, recimo FreeRTOS (Vsi ST exampli so na njem, če je RTOS omenjen), ali kakšen ARM KeilRTX, in še veliko drugih je. Design Cortex-M CPU-ja je bil narejen z mislijo, da bo end user uporabljal RTOS, vendar to niti približno ni nuja!

Drugače pa Cortex-M ne omogoča multicore konfiguracije, kot to omogoča Cortex-A.

V kakšnih ohišjih se dobi cortex M0?

Trenutno dol do 14pin TSSOP, drugače pa LQFP, QFN, TFBGA, etc. DIP ohišja ST nima.
V prihodnosti bo možno imeti SOP-8 ohišje.

Kako je s knjižnicami?

Imaš 2 veste knjižnice, ene so bolj za začetnik (HAL), druge za advanced userje (LL), oboje lahko nastaviš v CubeMX kot project export.
ARM za vsak CPU izda CMSIS knjižnice, ki so specifične za ARM core, torej ne glede na to kater MCU imaš (ST, NXP, etc), če imata isti Cortex za jedro, je knjižnica identična v obeh primerih.

Kako se uploada programe?

Upload poteka z programatorjem ST-Link ali drugim ARM Cortex-M supported. ST development boardi discovery/nucleo/eval imajo ST-Link že gor in se obnaša board podobno kot arduino, le da imaš zraven še pravi debugger!

Omejitev toka na pinih? 20mA? 40mA?

Omejitev toka je odvisna od pina do pina in kakšne funkcije ima.

To bi bilo to od mene, o tem zakaj eno in zakaj ne drugo je bilo ogromno tem. Če začnemo ponovno bo joj :)
Zadnjič spremenil tilz0R, dne 11 Sep 2017, 22:42, skupaj popravljeno 1 krat.
Knowledge sharing is people' caring., T. MAJERLE
Uporabniški avatar
tilz0R
 
Prispevkov: 1952
Pridružen: 18 Jan 2015, 00:12
Kraj: Črnomelj
Zahvalil se je: 237 krat
Prejel zahvalo: 564 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 120

Re: Programski jeziki in okolja

OdgovorNapisal/-a Proteus » 11 Sep 2017, 22:57

MaticBabnik je napisal/-a:Vendar v katerem okolju in jeziku naj nadaljujem?

Običajno je izbira HW in SW odvisna od namena uporabe.

Sicer pa so odgovori na tem forumu dokaj pričakovani, bi me že kar presenetilo, če bi slišal še kaj drugega kot pa STM32 & Keil.

Jaz n.pr. v svojih projektih vedno bolj uporabljam "Bare Metal" pristop:
http://www.embedded.com/design/mcus-processors-and-socs/4007119/Building-Bare-Metal-ARM-Systems-with-GNU-Part-1--Getting-Started
Uporabniški avatar
Proteus
 
Prispevkov: 3054
Pridružen: 18 Jan 2015, 01:31
Kraj: Planet Zemlja
Zahvalil se je: 329 krat
Prejel zahvalo: 682 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 125

Re: Programski jeziki in okolja

OdgovorNapisal/-a s54mtb » 12 Sep 2017, 11:23

Še ena familija zanimivih SoC-ov je STSPIN32F0, kjer sta integrirana pogon motorja in STM32F0.
https://www.avnet.com/shop/emea/p/misce ... 631713172/
Uporabniški avatar
s54mtb
 
Prispevkov: 13327
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1957 krat
Prejel zahvalo: 5375 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255


Vrni se na Software

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost