L297 Stepper Motor Kontroler - Development Modul

Uvod

L297 je novi development modul, koji se trenutno nalazi u fazi razvoja. Sam dizajn modula je modularan, pri čemu L297 integrisano kolo generiše četvorofazni upravljački signal namenjen mikrokontrolerskom upravljanju dvofaznim bipolarnim i četvorofaznim unipolarnim DC stepper motorima. S obzirom da je zilsel-invent već razvio četvorokanalni DC motor drajver za upravljanje četvorofaznim unipolarnim stepper motorima, ovde prevashodno stavljamo akcenat na iste. Shodno tome blok šema kompletnog sistema izgleda kao što je prikazano na slici 1.

Slika1. Blok šema sistema za upravljanje DC motorom baziranim na L297 kontrolerom i Serpent II DC motor drajverom.

L297 Integrisano kolo

Pre nego što krenemo sa opisom L297 integrisanog kola moramo reći da se isti može implementirati i programskim kodom. Međutim za izvršavanje programskog koda potreban vam je procesor (CPU) i procesorko vreme, što znači da bi većim delom vremena CPU bio zauzet generisanjem upravljačkih signala za upravljanje DC motorima. Tako nešto imamo kod direktne sprege mikrokontrolera i integrisanog kola kao što je ULN2803 (mada, L297 IC se takođe može direktno spregnuti sa ULN2803 integrisanim kolom, što je i bio slučaj dok sam radio na reviziji 1 L297 development modula). Kako bi se procesor oslobodio generisanja upravljačkih signala, prave se hardwarska rešenja kao što je L297 integrisano kolo, gde je zapravo elektronika ta koja generiše upravljačke signale za DC motore, dok se procesoru oslobađa vreme za izvršavanje drugih poslova. Jedina stvar koja ostaje na procesoru jeste da generiše upravljačke signale za L297 integrisano kolo, kao što su: enable, control, half/full, smer rotacije DC motora itd, ostalo sve radi hardware. 

Slika2. Blok šema L297 integrisanog kola.

Centralni deo integrisanog kola je Translator, ništa drugo nego state mašina ili ti konačni automat sa tačno osam različitih stanja, gde svako stanje generiše četvorkoanalni upravljački signal namenjen kontroli DC stepper motora. Kako svaki konačni automat ima početno stanje, tako i translator L297 integrisanog kola ima početno stanje označeno brojem 1 i nazivom HOME. Vođen Clock signalom (PWM signal koji može biti generisan VF Drajverom, zilsel-invent je razvio jedan takav drajver ali samo u prototip varijanti) i trigerovanjem istog Translator prelazi iz stanja u stanje sledećim redosledom: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 1 … E sad, izlaz iz Translatora je direktno spregnut sa OUTPUT LOGIC to jest izlaznom logikom čija je svrha da generiše upravljačke signale za DC motor: Channel A, Channel B, Channel C, Channel D itd. (pogledati blok diagram, slika 2, L297 integrisanog kola). Međutim, Translator neće prosleđivati svako stanje izlaznoj logici već samo one signale koji pripadaju modu u kojem Translator radi. Mod Translatora je određen kontrolnim signalom HALF STEP/FULL STEP. Translator se nalazi u HALF STEP modu onda kada se na isti kontrolni signal dovede logička jedinica sa mikrokontrolerskog pina, recimo sa Arduina. Pored HALF STEP postoje još dva moda Translatora koja su određena FULL STEP kontrolnim signalom kad se na isti dovede logička nula, a to su: “One-phase-on full step mode” i “Two-phase-on full step mode”. U “One-phase-on full step mode” ulazi kada se Translator nalazi u parnom stanju, u “Two-phase-on full step mode” ulazi kad se nalazi u neparnom stanju. Ukoliko želimo da se Translator nalazi u jednom od ova dva stanja moramo uraditi sledeće, to postižemo programskim kodom, potrebno je uraditi niz koraka. Preduslov, mikrokontroler ili VFdrajver ne generiše clock signal.
  1. Potrebno je restartovati Translator (RESET kontrolni signal). Ukoliko na HOME pinu, koji je open kolektor od integrisanog tranzistora, koji je spregnut sa Translatorom, vežemo LED diodu i otpornik R na red, dobićemo LED indikaciju da se Translator nalazi u početnom stanju. To automatski znači da se Translator nalazi u neparnom stanju. Ukoliko u tom trenutku na kontrolni signal HALF STEP/FULL dovedemo logičku nulu i startujemo generisanje Clock signala, Translator će raditi u “Two-phase-on full step mode” režimu.

  2. Ukoliko nam je potreban “One-phase-on full step mode” režim Translatora, potrebno je da prebacimo Translator u parno stanje. To postižemo tako što ćemo generisati samo jedan Clock signal, ne celu povorku Clock signala. Taj jedan Clock signal postavlja Translator u parno stanje, koje je u ovom slučaju stanje sa brojem 2. Zatim na HALF STEP/FULL kontrolni signal dovodimo logičku nulu i započinjemo sa generisanjem čitave povorke Clock signala koja će navesti Translator da radi u “One-phase-on full step mode” režimu. Ovaj režim rada je zapravo onaj koji je potreban za upravljanje unipolarnim DC stepper motorima.
Pored Translatora, integrisana je i elektronika koja služi za merenje potrošnje električne struje. Za isto su predviđeni signali visoke impedanse SENS1 i SENS2 obzirom da su isti spregnuti na invertujući ulaz komparatora (mada može da bude i operacioni pojačavači, u svakom slučaju njihovi ulazni pinovi imaju visoku impedansu što znači da nikakva struja ne ulazi u komparator tj. operacioni pojačavač. Za merenje potrošnje struje ovom metodom, dovoljan je samo naponski potencijal). Ovo je klasičan način da se preko komparatora i Vref (referentnog napona) određuje potrošnja električne struje. Na SENS1 i SENS2 se zapravo na red povezuju šant otpornici koji zapravo imaju jako malu otpornost (jer otpornik ne može da remeti protok struje, zato šant otpornik i ima malu otpornost i veliku provodnost) ali se samim tim i dosta zagreva, te je po konstrukciji izgrađen za velike snage, mnogi od njih čak imaju i integrisan hladnjak, slika 3. je primer jednog šant otpornika. Recimo, može se koristiti sledeći otpornik: K40H-0,1 - keramički horizontalni 40W 5% 0,1 oma. Kako ovo zapravo izgleda prikazano je na slici 4, sprega L297 kontrolera i drajvera L298, gde su RS1 i RS2 šantovi (čak vidimo da su za iste vrednosti otpornosti 0.5, to je upravo to, mala otpornost jer šant ne može da remeti protok struje).

Slika3. Horizontalni keramički šant,
40W 5% 0,1 oma

Slika4. Sprega L297 kontrolera i drajvera L298, gde su RS1 i RS2 šantovi,
(čak vidimo da su za iste vrednosti otpornosti 0.5, to je upravo to, mala otpornost jer šant ne može da remeti protok struje).

L297 nije drajver, te shodno tome sa istim nije moguće direktno upravljati DC motorom. L297 je kontroler koji se spreže sa pojačavačem struje tj. drajverom za DC motor što je već prikazano na slici 1. Na osnovu kataloških podataka (specifikacije) vidimo sledeće: Phase output voltage (pins 4, 6, 7, 9) Test conditions: Io = 10mA VOL, Max 0.4 V, Io = 5mA VOH 3.9 V. Ovo nije dovoljno da bi se pobudio DC motor, zato je potrebno L297 povezati na drajver kakav je recimo SERPENT II Pit Viper Rattle. Ovo je dovoljno za pobuđivanje LED dioda kako bi mogli pratiti tok generisnja upravljačkih signala, što je i urađeno na prvobitnoj reviziji developerskog modula koji je razvio zilsel-invent, slika 5.

Slika5. L297 Stepper Motor Kontroler - Developer Modul designed by zilsel-invent (R).

Potpunu specifikaciju za L297 kontroler možete naći na ovom linku.

Autor: Vladimir Savić
zilsel-invent (R)

Napomena: tekst će biti preveden na engleski jezik by Nera Marković.

 


Comments

Popular posts from this blog

Electrolytic capacitors and design rules