www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

ARM7 nxp -> Cortex-M3 st
Pojdi na stran Prejšnja  1, 2, 3
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.61
Kraj: Kranj - struževo

PrispevekObjavljeno: Pet Okt 22, 2010 10:08 am    Naslov sporočila:   Odgovori s citatom

Rešeno je hardversko (knjižnica samo nastavi izbrani timer). Uporabiš lahko katerikoli timer. Glej user manual. Jaz sem TIM1 namenoma izpustil, ker je bolj kompleksen.
Vse, kar je potrebno nastaviti je:
- timer konfiguriraš brez prescalerja (0)
- Auto reload register na max (0xFFFF) (ali kolikor pač rabiš)
- v kontrolni register izbereš flanke in način proženja ter externi clock na encoder interface.

Za hall senzorje (komutacijo) je namenjen en drug način timerja. Encoder mode je za inkrementalni enkoder.

Jitter na eni flanki pravilno prebavi brez vseh težav.

Softverski algoritem za branje enkoderja ti bo vzel ogromno procesorskega časa, sploh če nimaš ravno počasnih vhodnih signalov (tako na palec od 1kHz naprej).
Timerjev je v čipu toliko, da se splača enega uporabit za odčitavanje senzorjev.

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
spy
Član
Član



Pridružen-a: Sre 06 Sep 2006 20:43
Prispevkov: 403
Aktiv.: 1.76
Kraj: Tržič

PrispevekObjavljeno: Pet Okt 22, 2010 3:13 pm    Naslov sporočila:   Odgovori s citatom

Ja, ja, govoriva o inkrementalnem enkoderju - 2 hall-a, 90 stopinj zamaknjena na osi za branje števila vrtljajev (pozicije). Komutacijska vezava za BLDC je nekaj drugega.

Naravo trenutnega vezja imam pač tako, da ni moč brati hall-a s timerjem. Pri naslednji reviziji bi to lahko popravil, zato me zanima praksa hardversko rešenega štetja.

Trenutno sem moral rešiti to programsko. Prvi način (največkrat opisan na inetu) sem delal z branjem flanke prvega hall-a in nato določitev smeri preko drugega. Na čase je prišlo do branja v napačno smer, če se je vrtenje spremenil ravno ob flanki. Nisem prepričan, če to tudi spada pod "jitter". Drugi način je bil Edwards-ov algorithm, ki je že vključeval neke XORje, pa je bila napaka ista. Šele implementacija Sommer-jevega algoritma je rešila problem (R.Sommer/Logitech corp.). Rutina porabi 1us vključno z "debounce"-ingom. V Cju sicer le nekaj vrstic. Glede na max. vhodno frekvenco 250Hz je to za moj primer več kot dovolj.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.61
Kraj: Kranj - struževo

PrispevekObjavljeno: Pet Okt 22, 2010 10:12 pm    Naslov sporočila:   Odgovori s citatom

Za 4 impulze na obrat in 250 Hz je res softversko več kot dovolj.
Problem se pojavi, kot si opisal, na eni flanki, ki lahko zaradi šuma preklaplja z mnogo višjo frekvenco. Tu pa je lahko softverska rešitev problem.

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3
Stran 3 od 3

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 6 dni


Powered by phpBB © 2001, 2005 phpBB Group