 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.61 Kraj: Kranj - struževo
|
Objavljeno: Pet Okt 22, 2010 10:08 am Naslov sporočila: |
|
|
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  |
|
Nazaj na vrh |
|
 |
spy Član


Pridružen-a: Sre 06 Sep 2006 20:43 Prispevkov: 403 Aktiv.: 1.76 Kraj: Tržič
|
Objavljeno: Pet Okt 22, 2010 3:13 pm Naslov sporočila: |
|
|
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 |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.61 Kraj: Kranj - struževo
|
Objavljeno: Pet Okt 22, 2010 10:12 pm Naslov sporočila: |
|
|
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  |
|
Nazaj na vrh |
|
 |
|
|
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
|