 |

|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 08 30, 14:35. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » CLOCK signalo formavimas stepper draiveriui
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
Puslapis 1 iš 2 Pereiti prie 1, 2 Toliau |
|
 |
 |
CLOCK signalo formavimas stepper draiveriui |
Parašytas: 2015 01 09, 10:48 |
|
|
|
Darau valdymą žingsniniam varikliui. Pradinė koncepcija PIC18F2455 + L297 + L298. Klausimas būtų, kaip suformuoti CLOCK signalą į draiverį, čia impulsų skaičius lemia žingsnių kiekį kaip išskaičiau. Jei naudoti struktūrą
bsf PORTB, RB0
call DELAY
bcf PORTB, RB0
call DELAY
goto PRADZIA
ir dar kažkurioje vietoje skaičiuoti kiek kartų prasisuko ciklas, tai mikrovaldiklis tuo metu nieko kito negali daryti. Gal yra koks būdas, kad nusiuntei žingsnių skaičių į registrą x, ir mikrovaldiklis pumpuoja tuos impulsus bei daro kitus darbus.
Taip pat klausimas kokį CLOCK periodą naudoti bei kam reikalingas vidinis generatorius pas L297? |
|
|
|
|
 |
 |
CLOCK signalo formavimas stepper draiveriui |
Parašytas: 2015 01 09, 13:31 |
|
|
|
rezervuoji kintamuosius steps_x, wait_x, wait_steps_x;
timerio pertraukime, kuris ivyksta kas kazkiek, pvz kas 160 uSek.
Kodas: |
#define TIMER1SEED (160UL * F_CPU / 1000 - 1)
#define USPERTICK1 (F_CPU / TIMER1SEED)
int16_t steps_x = 0;
ISR(){
static int32_t wait_x = 0;
static int8_t wait_step_x = 0;
if(wait_step_x != 0){
step_x_0();
wait_step_x = 0;
}
if(wait_x <= 0){
wait_x += USPERTICK1;
if(steps_x != 0){
steps_x--; // steps_x -= dir_x;
step_x_1();
wait_step_x = 1;
}
}
// jei reikia, apdoroji ir kitas asis
}
|
|
|
|
|
|
 |
 |
CLOCK signalo formavimas stepper draiveriui |
Parašytas: 2015 01 19, 11:59 |
|
|
|
Turiu klausimą dėl maksimalaus žingsninio variklio greičio. Šiuo metu su niekuo neapkrautu varikliu išsuku ~3 apsisukimus per sekundę. Dar didinant clock dažnį variklis pradeda lėtėti ir kriokti
Variklis SY57STH41-1006A ->
http://www.integratedindia.com/pdf/soyo-0-3Nm-to-28nm.pdf
Pagal grafiką 34 puslapyje, variklis turėtų pasiekti 6800 pps, kadangi vienas apsisukimas 200 žingsnių, tai turėčiau išvystyti 34 apsisukimus per sekundę. Ar gerai skaičiuoju? Kodėl nepasiekiu tų 34? |
|
|
|
|
 |
CLOCK signalo formavimas stepper draiveriui |
Parašytas: 2015 01 19, 12:11 |
|
|
|
Draiverio maitinimo įtampa ir nustatyta srovė atitinka virš lentelės duotus parametrus (30V ir constant current 1A)? Variklį tikrai srove maitini? Žingsnio režimas kaip ir lentelėje nurodytas? |
|
|
|
|
 |
CLOCK signalo formavimas stepper draiveriui |
Parašytas: 2015 01 19, 13:24 |
|
|
|
sopkls rašo: |
Draiverio maitinimo įtampa ir nustatyta srovė atitinka virš lentelės duotus parametrus (30V ir constant current 1A)? |
Variklis prie 30 V pradeda imti mažiau srovės ir lengvai stabdomas ranka arba net nejuda. Su vienkanaliu oscilografu turbūt nieko pamatuoti nepavyks?
sopkls rašo: |
Žingsnio režimas kaip ir lentelėje nurodytas? |
Kokį režimą turi omeny? |
|
|
|
|
 |
CLOCK signalo formavimas stepper draiveriui |
Parašytas: 2015 01 19, 13:47 |
|
|
|
Pasidomėk steperių valdymu, kodėl reikia aukštesnės įtampos didesniam greičiui, ir kodėl būtent srovė varikliui paduodama. Jei pas tave didinant įtampą krenta srovė ir sukimo momentas, gal osciliatoriaus dažnis varikliui netinkamas.
Režimas half step, l297 trim režimais dirba, ten pasirinkti galima, full step, half step ir wawe jei neklystu. |
|
|
|
|
 |
 |
CLOCK signalo formavimas stepper draiveriui |
Parašytas: 2015 01 19, 19:03 |
|
|
|
sopkls rašo: |
Pasidomėk steperių valdymu, kodėl reikia aukštesnės įtampos didesniam greičiui, ir kodėl būtent srovė varikliui paduodama. Jei pas tave didinant įtampą krenta srovė ir sukimo momentas, gal osciliatoriaus dažnis varikliui netinkamas.
Režimas half step, l297 trim režimais dirba, ten pasirinkti galima, full step, half step ir wawe jei neklystu. |
Pagal kokius kriterijus parenkamas čioperio generatoriaus dažnis?
Datašyte nelabai suprantu kaip persijungia režimai "NORMAL DRIVE MODE" ir "WAWE DRIVE MODE", kas per transleitorius minimas 5-6 psl
http://www.st.com/web/en/resource/technical/document/datasheet/CD00000063.pdf |
|
|
|
|
 |
 |
CLOCK signalo formavimas stepper draiveriui |
Parašytas: 2015 01 20, 14:11 |
|
|
|
Tavo steperio greitis duotas half step režime, o jis yra kai half-full step pine aukštas lygis, tai tie kiti tau kaip ir neturėtų rūpėti. Bet esmė su kitais režimais ta, kad pasirenkami jie priklausomai nuo to kuris transliatoriaus žingsnis yra tuo metu kai half-full perjungiamas į low. Kaip matei tai half step turi aštuonis transliatoriaus žingsnius ciklui, kai fazės paduodamos tai į abi variklio apvijas, tai į vieną, užtai ir vadinasi pusžingsnio , kiti režimai kai abi fazės dirba pastoviai, tik keičiasi poliarumas, arba po vieną fazę. Full-wawe režimas pasirenkamas pagal tai, lyginis ar nelyginis transliatoriaus yra žingsnis yra half-full pino perėjimo iš high į low metu. Pirmą žingsnį rodo aktyvus home išėjimas.
O dėl čioperio dažnio jau primiršęs, rusiškai kiek pamenu supranti, tai www.rcdesign.ru paskaityk cnc temoje, ten nemažai geros informacijos. |
|
|
|
|
 |
 |
CLOCK signalo formavimas stepper draiveriui |
Parašytas: 2015 01 28, 17:45 |
|
|
|
AlgisL rašo: |
rezervuoji kintamuosius steps_x, wait_x, wait_steps_x;
timerio pertraukime, kuris ivyksta kas kazkiek, pvz kas 160 uSek.
Kodas: |
#define TIMER1SEED (160UL * F_CPU / 1000 - 1)
#define USPERTICK1 (F_CPU / TIMER1SEED)
int16_t steps_x = 0;
ISR(){
static int32_t wait_x = 0;
static int8_t wait_step_x = 0;
if(wait_step_x != 0){
step_x_0();
wait_step_x = 0;
}
if(wait_x <= 0){
wait_x += USPERTICK1;
if(steps_x != 0){
steps_x--; // steps_x -= dir_x;
step_x_1();
wait_step_x = 1;
}
}
// jei reikia, apdoroji ir kitas asis
}
|
|
Aš žinoma šitos kalbos nemoku, bet pats algoritmas biesina.
Dabar žingsninis variklis po sliekinės pavaros padaro apsisukimą per 12 sekundžių, o clock impulsais tai atitinka 770 mks high level ir 2,5 mks low level signalas. Taigi, jei taimeriui reikės kas 770 mks varinėti į interuptą, tai susijauks duomenų priėmimas per EUSART (irgi interuptas). EUSART priiminėja DMX512 paketus. Šitame pakete gali būti perduodama iki 512 baitų informacijos, o pauzė tarp baitų yra nenormuota. Vieni pultai visus baitus varo iš eilės, po STOP bito iškart eina START bitas, kiti tarp jų dar įterpia pauzę. Tai kažkada taimeris nušoks į interuptą ir aš įtariu pamesiu paketo gabalą arba gausis, kad mikrovaldiklis vietoj laukiamo kokio 213 baito paims 214 informaciją.
Man labiau patiktų kažkas tokio, kaip ECCP modulis PWM režime, nusiuntei skaičių ir užmiršai jį, ir teužima 1 taktą. |
|
|
|
|
 |
 |
CLOCK signalo formavimas stepper draiveriui |
Parašytas: 2015 01 28, 19:45 |
|
|
|
PIC turi du prioritetus, tad High-priority nustatyk USART, o Low-priority timeriui ir nieko tu neprarasi.
Gali dar timer nustatyti STEP periodui, o PWM duty nustatyti toki, kad jo pilnai uztektu STEP signalo suformavimui, o pertraukime tikrini STEP skaitliuka ir pasiekus 0 - stabdai timeri.
Jei reikia itin didelio STEP periodo, teks kaskodinti timerius. |
|
|
|
|
 |
CLOCK signalo formavimas stepper draiveriui |
Parašytas: 2015 01 28, 20:40 |
|
|
|
AlgisL rašo: |
PIC turi du prioritetus, tad High-priority nustatyk USART, o Low-priority timeriui ir nieko tu neprarasi. |
Bandžiau kažkada pažaisti su interuptų priority pas PIC18F14K22, tai nepavyko. High interupto vektorius 0x0008, low - 0x0018. Tai va jei įdedu komandą call high interupto kode, kompiliuojant keikiasi kompiliatorius, tiksliai nepamenu, kažką kad išėjau iš tų rėžių 8-18 ar panašiai. O dešimtyje eilučių suprantama nieko nuveikti negalima. |
|
|
|
|
 |
 |
CLOCK signalo formavimas stepper draiveriui |
Parašytas: 2015 01 28, 21:27 |
|
|
|
Kad neisejo, nereiskia, kad neveikia.
Visu pirma 0008h ir 0018h adresuose talpinamos ne proceduros o jump'ai i jas.
Prioritetu naudojimas ijungiamas RCON.IPEN=1
USART Receive interrupt High priority IPR1.RCIP=1
USART Transmit interrupt galima Low priority IPR1.TXIP=0
Timer0 Overflow Low priority INTCON2.TMR0IP=0
Atatinkamai pasirupini PIE/PIR registrais
Interrupts enable/disable INTCON.GIE=1 arba 0 |
|
|
|
|
 |
CLOCK signalo formavimas stepper draiveriui |
Parašytas: 2015 01 29, 14:26 |
|
|
|
AlgisL rašo: |
Visu pirma 0008h ir 0018h adresuose talpinamos ne proceduros o jump'ai i jas. |
Taip išėjo, kad mūsų kolegijoje nemokė įžangos, kaip smagu ir gera programuoti, mes iškarto perėjome prie kovinių veiksmų. Tai va, kas toji procedūra ir kas turima omeny jumpas, call, goto ar kita komanda? |
|
|
|
|
 |
CLOCK signalo formavimas stepper draiveriui |
Parašytas: 2015 01 29, 16:09 |
|
|
|
andriusa rašo: |
AlgisL rašo: |
Visu pirma 0008h ir 0018h adresuose talpinamos ne proceduros o jump'ai i jas. |
Taip išėjo, kad mūsų kolegijoje nemokė įžangos, kaip smagu ir gera programuoti, mes iškarto perėjome prie kovinių veiksmų. Tai va, kas toji procedūra ir kas turima omeny jumpas, call, goto ar kita komanda? |
jumpas siuo atveju yra GOTO atitikmuo ir assembleriu uz rasoma
JUMP address (or label)
procedura - tai savarankiska dalis programos. Ji gali buti su parametrais ir grazinti rezultata ( patampa funkcija ) |
|
|
|
|
|
 |
Google paieška forume |
|
 |
Naujos temos forume |
|
 |
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
 |
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
 |
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
 |
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
 |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
 |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
 |
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
 |
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
 |
Fun football drills
Football Training Equipment,
Defending drills football,
Kids football training kit |
|

|
 |