Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

DC Motoro driver sa odvojenim motion i communication mikrokontrolerom

[es] :: Elektronika :: Mikrokontroleri :: DC Motoro driver sa odvojenim motion i communication mikrokontrolerom

[ Pregleda: 2383 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Seme
Miroslav Bozic
Nis
Elektronski fakultet
Nis, Zajecar

Član broj: 43158
Poruke: 390
*.dynamic.isp.telekom.rs.

Sajt: www.ebuyelektronika.co.cc


+5 Profil

icon DC Motoro driver sa odvojenim motion i communication mikrokontrolerom11.09.2013. u 22:45 - pre 128 meseci
Zdravo svima,

pravim drajver za DC motor. Kao motion controller koristim PIC18F4431. Ta serija je dedicated za drajvovanje raznih vrsta motora. Ima interface za citanje enkodera u kvadraturi i jos dosta dobrih stvarcica za closed loop control pa mi samim tim savrseno odgovara. E sad s obzirom da cu imati povratnu spregu, i citanje pozicije i struje motora , kao i brzine, hteo bih da rasteretim ovaj kontroler tako sto bih za komunikaciju sa racunarom stavio poseban communication controller. Planiram da ova dva kontrolera povezem preko 8bit -nog bus -a i da communication controler moze u svakom trenutku da ocita vrednosti kao sto su pozicija, brzina i struja motora i takodje zada komande za start stop i ostale parametre. Sve ovo radim zato sto sam prvo u sam motion cotroller zgurao i modbus pa nisam imao dovoljan troughput podataka ka racunaru zbog preopterecenosti mikrokontrolera. Sampling logovanja mi je bio jako spor. a potrebno mi je da prikupljam podatke min 100x u sekundi.

Interesuje me misljenje svih koji su se bavili necim slicnim.

Zahvalan sam za svaki komentar.

Pozdrav Miroslav.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: DC Motoro driver sa odvojenim motion i communication mikrokontrolerom11.09.2013. u 22:54 - pre 128 meseci
taj pic ima hardwerski uart koji nece "nista" da "trosi" tako da nemas
potrebu za dodatnim kontrolerom, koristi uart na tom picu. ako hoecs da
pricas sa racunarom samo taj uart spoji preko ftdi232rl i to je to
(direkt uart na usb) ili nekim slicnim usb2uart adapterom, nema potrebe
nista drugo da budzis
 
Odgovor na temu

Seme
Miroslav Bozic
Nis
Elektronski fakultet
Nis, Zajecar

Član broj: 43158
Poruke: 390
*.dynamic.isp.telekom.rs.

Sajt: www.ebuyelektronika.co.cc


+5 Profil

icon Re: DC Motoro driver sa odvojenim motion i communication mikrokontrolerom12.09.2013. u 09:12 - pre 128 meseci
Zdravo Bogdane,

koristio sam UART u verziji 1. Medjutim kad u jednom kontroleru spucas UART preko kog ide modbus sa sample time 10ms, Strujni PID kontroler 2.5ms, Pozicioni kontroler 2.5ms, i Brzinski kontroler 2.5ms. Plus jos dosta toga vezanog za postavljanje parametara i slicnog dodje malo tesno. Cesto mi se desi da mi se kontroler malo zagusi u interaptima kada startujem npr. strujni regulator i pratim parametre na kompu. Zato hocu da odvojim te dve stvari.
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
*.static.sbb.rs.

Sajt: yu3ma.net


+505 Profil

icon Re: DC Motoro driver sa odvojenim motion i communication mikrokontrolerom12.09.2013. u 10:34 - pre 128 meseci
Ja sam slicno nesto radio sa drugim kontrolerima i u sustini zbog slicnih problema (brzina MCU) sam presao na druge serije PIC-eva i druge kontrolere generalno (TI, ARM).

Ova vremena koja si naveo izgledaju prilicno dugacka, milisekunde za racun, to je bas sporo, tu nema mnogo pomoci kada se radi sa 8bitnim platformama.
Eventualno to mozes da poboljsas sa vrlo pedantnom optimizacijom CODE-a i pisanju u ASM ali to zna da bude bas muka.

Predpostavljam da za PID imas i neku floating point matematiku a to je uzasno sporo na 8bitnim MCU.
Za to bih ti preporucio neki PIC iz 16bitne DSP / DSC serije ili 32bitne piceve.
Specificno za motor kontrol aplikacije ima bas njihova serija "MC", recimo dsPIC33EP128MC502, odlican procesor, brdo memorije, veoma brz A/D, specificni PWM-ovi sa visokom resolucijom itd.

Sa druge strane imas recimo ARM resenje sa STM32F4, konkretno STM32F4Discovery low-cost (~20E) razvojna plocica. To je opako parce HW-a, taj procesor ima HW floting-point i jos svasta nesto od periferija i te taskove oko matematike radi mnogo mnogo brze nego svi ovi PIC-ovi. Recimo sa tim sam napravio trofazni 32-kanalni termperaturni kontroler sa trijacima u izlaznom stepenu i upravljanjem faznim zasekom u 1000-ti deo 50Hz poluperiode (10bit) + 3x A/D, + 3x SYNC + LCD/KB. To radi ko zmaj ...
Glavni interapt mi je na svaih 10us, ja sam u to spakovao racun za 32 kanala, nije tako slozen, relativno prosto mnozenje i deljenje uz pomoc nekih lookup tablica gde sam preracunao neke koeficijente (feed-forward), cisto orijentacija koliko to vremena trosi.
Za jedan kanal bi to kuvalo bilo kakvu matematiku samo tako ;) Komunikacioni kanal kod takvih procesora uzima extremno malo resursa jer sve radi na nivou nezavisnog HW-a unutra.

Inace ima jos jedna vrlo zanimljiva opcija za kontrolu motora, cak BEZ MEHANICKE POVRATNE VEZE tj bez enkodera, mucka se sa merenjem struje motora i onda se na osnovu toga preracunava ostali parametri. To su sad najnovije tendencije u toj tehnici, to TI koristi kod Piccolo i Delfino serije kontrolera. Dodatno su napravili veoma ozbiljne software za tu nemanu oko proracuna i upravljanja celog procesa. Caka je da se isto prakticno radi neka vrsta feed forward-a, sa "poznatim" karakteristikama motora i pretvaranjem tih karakteristika u look-up tablice je moguce raditi takve stvari na potpuno drugaciji nacin nego sto se to do sad radilo.


[Ovu poruku je menjao mikikg dana 12.09.2013. u 12:19 GMT+1]
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: DC Motoro driver sa odvojenim motion i communication mikrokontrolerom12.09.2013. u 12:34 - pre 128 meseci
Citat:
Seme:
koristio sam UART u verziji 1. Medjutim kad u jednom kontroleru ... Zato hocu da odvojim te dve stvari.


pazi ovako, taj mcu mora nekako da komunicira sa okolinom, nebitno da li ce da prica sa kompom ili sa drugim mcu on nekako mora da prica sa okolinom. da bi pricao sa okolinom mozes da ili koristis neki hw modul u njemu (uart, spi, pmp.. sta sve ima od periferije) ili ces da koristis sw da bitbangujes komunikaciju. ako ces da bitbangujes, sve je jasno - to trosi mnogo cpu ciklusa i sporo je i smara i ... dakle ako koristis sw implementaticiju seriskog porta sigurno imas problem, ako pak hoces da koristis hw modul za komunikaciju, potpuno je svejedno da li ces pricati sa "drugim mcu-om" ili ces pricati sa PC-om, kada je seriski port u pitanju nema nista sto ce mcu manje da optereti od toga. ako tvoj program ne ume da odradi svoj posao ako je prekinut povremeno interaptima sa uart modula ili tvoj program ne valja ili si odabrao previse spor mcu, dakle ili menjaj program ili menjaj mcu (ja licno mislim da si ti nesto u sw zabrljao no svakako ti je lakse uzeti veci mcu )
 
Odgovor na temu

goran_68

Član broj: 89012
Poruke: 932
*.dynamic.isp.telekom.rs.



+81 Profil

icon Re: DC Motoro driver sa odvojenim motion i communication mikrokontrolerom12.09.2013. u 14:08 - pre 128 meseci
Predlažem da proveriš taj deo koda koji ti obrađuje USART predaju i prijem. Taj kontroler ima dva različita nivoa prioriteta kod prekida. Da li uopšte koristiš tu mogućnost?
Imam i jedno alternativno rešenje ako baš ništa ne pomaže pa mora još jedan kontroler. Informacije o poziciji, brzini i struji do komunikacionog kontrolera možeš da preneseš preko slobodnih PWM ukoliko ih imaš. Pretpostavljam da ti je ovo i najkritičnije. Komunikacioni kontroler treba da ima bar tri CCP porta da bi merenjem frekvencije na njima dobio ove tri informacije. E sad, ne znam koje su ti dužine ti podaci da bi se uklopio u mogućnosti PWM modula kod ovog PIC-a. Proveri. Start i stop možeš da definišeš preko INT pinova (valjda ti je nešto slobodno).
gorankg
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
*.static.sbb.rs.

Sajt: yu3ma.net


+505 Profil

icon Re: DC Motoro driver sa odvojenim motion i communication mikrokontrolerom12.09.2013. u 14:26 - pre 128 meseci
Po specifikaciji za 18F4431 on ima:

Digital Communication Peripherals 1-UART, 1-A/E/USART, 1-SPI, 1-I2C1-SSP(SPI/I2C)

Dakle to je dedicated hardware za komunikaciju unutar samog PIC-a koji radi maksimalno efikasno. Tvoj program treba samo da iscita ili upise neki registar + jos nesto sitne logike da bi ta komunikacija radila. To se sve desava u mikrosekundama, taman posla da je to u milisekundama.

Tako da ocigledno nesto sa tvojim programom nije sve ok, lici kao da radis SW (bitbang) komunikaciju.

U tom smislu ne treba ti nikakav dodatni HW za komunikaciju za cist RS232 protokol, eventulano ako hoces da ti to ide na USB onda treba spomenuti FTDI kao "medju" interface i koji generalno nista bitno ne menja situaciju oko tajminga.

Jedino sto realno opravdava trosenje vremena na tom 8bitnom PIC je "teska" matematika, sve ovo ostalo sto si spomenuo bi trebalo da radi daleko brze.
Kada ti matematika pocne praviti probleme onda je neminovno da uzmes bolji / brzi MCU.
Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

Seme
Miroslav Bozic
Nis
Elektronski fakultet
Nis, Zajecar

Član broj: 43158
Poruke: 390
*.dynamic.isp.telekom.rs.

Sajt: www.ebuyelektronika.co.cc


+5 Profil

icon Re: DC Motoro driver sa odvojenim motion i communication mikrokontrolerom12.09.2013. u 21:41 - pre 128 meseci
Zdravo svima, hvala na odgovrima drago mi je da je tema ziva.

Znam tacno sta od hw interfejsa ima taj kontroler. Lako je kad imas jedan bajt da saljes. U pitanju je MODBUS tj dinamicki se menja duzina paketa koji se salju. Kada se svakh 10ms kontroler trigeruje da posalje 20 - 30 bajtova a u isto vreme na svake 2.5ms ga trigeruje PID interrupt ta vremena i ne deluju tako dugacka. Fora je takodje sto taj uC ima i hw interfejs za racunjanje brzine, koji takodje generise interrupt. Previse je i nikako nemam tacna vremena slanaj paketa ka kompu. Da se razumemo, da mi je potrebno samo da pratim struju ili brzinu ili poziciju i to samo onako cisto da imam informaciju, nikakav problem ne bi postojao. Fazon je sto mi monitoring treba da bude tacan, znaci kad posaljem zahtev za neki od parametara koji se odrzavaju konstatnim moram da ga dobijem odmah a ne da slanje prekida gomila interapta koji su veceg prioriteta. Trenutno mi se desi da nekoliko paketa stigne tacno na vreme a da povremeno zbog matematike i racunjanja zakasne po 2-3ms, sto je slozicete se sa mnom greska. Treba mi preciznih 10ms sample time na kompu.

Probacu sa STM32F4Discovery, jeftina je pa i nije neki veliki problem baciti 15 tak eur. Takodje sam za potrebe drugog projekta nabavio Beaglebone Black. Vidim da je optimizovan za motion kontrolere pa cu i sa njim da se pogiram cisto da vidim sta moze.

Drugari hvala na odgovorima.

Srdacan pozdrav M.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: DC Motoro driver sa odvojenim motion i communication mikrokontrolerom12.09.2013. u 23:58 - pre 128 meseci
a sa kim pricas modbus?
modbus ide preko seriskog porta, ako si ti vec napravio modbus "poruku",
svejedno dal je modbus rtu ili modbus ascii poslaces je preko uarta kako
god i neces potrositi dodatno vreme ...

mislim to sto pises nije konzistentno jbg ...

> Planiram da ova dva kontrolera povezem preko
> 8bit -nog bus -a

Zasto? Sto je ovo bolje od UART-a ?

> i da communication controler moze u svakom trenutku
> da ocita vrednosti kao sto su pozicija, brzina i struja
> motora i takodje zada komande za start stop i ostale parametre.

Kako ce da ocita? opet mora da pita "tvoj pic" koji su parametri
(pozicija, brzina...) koja je poenta toga ? Ako tvoj pic moze da
odgovori njemu preko "8bitnog bus-a" moze da mu odgovori i preko uarta
?! a ako moze da odgovori njemu, onda moze i PC-u da odgovori preko
usb-a (zakacenog preko usb2uart adaptera poput ft232rl)

moras da tacnije objasnis sta hoces ako mislis da dobijes korisniji info
od "uzmi veci brzi i bolji mcu" ili "ne valja ti program, lose si ti to
napisao"
 
Odgovor na temu

mikikg
System administrator
Srbija

Član broj: 3779
Poruke: 5059
93.87.92.*

Sajt: yu3ma.net


+505 Profil

icon Re: DC Motoro driver sa odvojenim motion i communication mikrokontrolerom13.09.2013. u 00:32 - pre 128 meseci
Probaj obavezno STM32F4Discovery (Cortex M4 sa DSP i FPU), vredi svaki dinar ta plocica, da je direkt ugradis u masinu, nema sta da razmisljas.
I jos jedna jako bitna caka sa tom i slicnim plocicama, tako si kompatibilan sa ARM platformom. Uzmes dve plocice recimo, jedna ti za razvoj SW, druga ti na masini ili radi drugi kolega na tome, to je milina pisati programe tako kada je unificirana neka platforma. Na to sve imas gomilu open source resenja za svakakve algoritme i namene i razvoj je relativno lak.
Za HW resursima ne oskudeva ta plocica, direktno imas oko 50 slobodnih I/O (sa "cupanjem" viska IC oko 80tak), analogne ulaze takodje i to je super za svaki PIC ekvivalentan projekat a dobijes bar u poredjenju sa 18F dve generacije iznad procesor sa skoro 10x boljim svim parametrima!
Za te pare ne vredi da se patis sa 8bit kontrolerima ...

Site about Software Defined Radio – SDR
http://yu3ma.net/
https://github.com/yu3ma
On-line LM317 kalkulator
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: DC Motoro driver sa odvojenim motion i communication mikrokontrolerom

[ Pregleda: 2383 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.