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

Pridružen-a: Ned 08 Nov 2009 22:20 Prispevkov: 27 Aktiv.: 0.14 Kraj: idrija
|
Objavljeno: Ned Nov 29, 2009 3:27 am Naslov sporočila: ATmega8515 in minipin |
|
|
Pozdravljeni.
Ker bi se rad naučil nekaj osnovnega programiranja, ker bi mi pri raznih projektih zelo koristilo sem se odločil v nakup nekaj začetniške opreme.
Kot je z naslova razvidno je govora o avr mikrokrmilniku ter razvojni plošči minipin.
Uporabljam:
-minipin razvojno ploščo
-mikrokontroler ATmega8515
-izdelal t.i sample programator ki komunicira preko LPT porta
-2x16 alfanumerični lcd prikazovalnik
-program Bascom Avr
-12Mhz resonator
Ker predhodnega znanja o programiranju nimam, si pomagam tudi z knjigo Bascom-teorija in praktični primeri.
Vem da je bilo okoli tega že veliko napisanega, ter sem o tem na forumu že veliko prebral, se še vedno spotoma najdejo uprašanja na katere upam da bom tu našel odgovore.
Torej vse komponente zaenkrat kažejo da delajo, ter tudi enostavnejši sample programi špilajo. Ker pa se malo bojim da bi brez potrebe kakšno komponento skuril z napačno uporabo ali napačnim priklopom raje prej vprašam.
-Trenutno se trudim priklopiti lcd na priključke minipina, ki naj bi bili namenjeni priklopu točno tega. Kot razumem so priključki na minipinu zasnovani prav za ta displaj, ga samo z vsemi 16 nogicami porineš v minipin in bi moral delati.Ker pa v prvih poskusih ni obrodilo sadov, sem začel študiranje datasheetov lcd in minipina. Kot sem ugotovil si priključki enega in drugega sploh ne odgovarjajo, oziroma so v skoraj popolnoma drugačnem zaporedju. Je to možno? izkušnje? |
|
Nazaj na vrh |
|
 |
Highlag Član


Pridružen-a: Pet 23 Jan 2004 20:42 Prispevkov: 4034 Aktiv.: 17.03 Kraj: Črnuče
|
Objavljeno: Ned Nov 29, 2009 10:48 am Naslov sporočila: |
|
|
Možno seveda je. Sam imam recimo dispelj, ki ima standardno št. pinov, le priklop za napajanje osvetlive je ravno na drugi strani kot je to običajno.
Vsekakor je potrebno pravilno povezat na vezje napajalne pine, ter kontrast, podatkovni pini niso tako problematični, saj se običajno programsko izbere na kateri izhod procesorja je kateri pin priključen.
Po mojih izkušnjah pravilno priključen LCD ob vklopu brez programa zatemni prvo vrstico. Kontranst se mora spreminjati s potenciometrom. Če se ne nekaj ni prav priključeno. _________________ If at first you don't succeed, destroy all evidence that you tried. |
|
Nazaj na vrh |
|
 |
mucek Član


 
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5529 Aktiv.: 24.06 Kraj: Domzale
|
Objavljeno: Ned Nov 29, 2009 10:49 am Naslov sporočila: |
|
|
LP!
Poglej si še tole (priročnik, ki smo ga naredili za forumski tečaj, verzija 2):
http://uploader.naspletu.org/uploads/8bd5e873fcbfc28d9d3c5e92366edc31.pdf
Sicer pa načeloma imajo tekstovni LCDji isti pinout, paziti moraš le, kako ga obrneš (da gre pin 1 na 1 in ne na 14/16). Display lahko ima 14 ali 16 pinov, 15. in 16. pin sta za osvetlitev LCDja, če jo le-ta ima.
Glede miniPin in LCDja ti ne morem povedati, nisem pa siguren, da gre display direktno gor.
LP, Grega |
|
Nazaj na vrh |
|
 |
fičfirič Član

Pridružen-a: Ned 08 Nov 2009 22:20 Prispevkov: 27 Aktiv.: 0.14 Kraj: idrija
|
Objavljeno: Ned Nov 29, 2009 12:44 pm Naslov sporočila: |
|
|
Zrihtano. Treba ga je bilo obrniti na glavo ter zamakniti za dva pina. Čeprav sta zdaj pina od lcd za osvetlitev v zraku. Bi ju lahko povezal kar na ista pina kot ima napajanje prikazovalnik?
-kot opažam se mi greje tudi zelo stabilizator napetosti na minipinu, toliko da ga nemoreš držati z prstom.Tudi po dalšem času rahlo zasmrdi... |
|
Nazaj na vrh |
|
 |
mucek Član


 
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5529 Aktiv.: 24.06 Kraj: Domzale
|
Objavljeno: Ned Nov 29, 2009 3:23 pm Naslov sporočila: |
|
|
Če si priklopil osvetlitev LCDja (in slednji nima gor že upora za omejiti tok) je to lahko vzrok pretiranega gretja napetostnega regulatorja. Brez osvetlitve nikakor ne bi smelo biti take porabe na plošči, da bi se ti ta regulator grel.
Drugače pa ja - lahko ju povežeš direktno na LCD pina VCC in GND (pina 1 in 2 če se ne motim - preveri), pa daj še kakšen uporčič vmes, če ti bo preveč toka žrlo.
LP, Grega |
|
Nazaj na vrh |
|
 |
fičfirič Član

Pridružen-a: Ned 08 Nov 2009 22:20 Prispevkov: 27 Aktiv.: 0.14 Kraj: idrija
|
Objavljeno: Ned Nov 29, 2009 6:05 pm Naslov sporočila: |
|
|
grev se mi je že ko še sploh nisem imel priklopljenega lcd-ja ali drugih bremen. Za napajanje uporabljam pa kar nek adapter/polnilec na katerem piše: 9V-800mA. Bi bilo mogoče bolje če bi napajanje potegnil kar iz računalnika. 6 oziroma 12V ?
-drugi problem nastane tudi ko hočem samo enostavno prikazati nekaj na displaju.Če napilnšem recimo "testiranje" deluje vredu, če pa napišem recimo "test" se beseda pokaže le prvo sekundo,zatem pa zaslon napolnijo razni znaki. Ene besede delujejo,druge ne... pa ni finte u šumnikih,presledkih,velike-male črke itd...
-tudi če ne uporabljam ukaza csl mi zaslon vsako sekundo malce utripne.sicer skoraj neopazno a nevem zakaj. |
|
Nazaj na vrh |
|
 |
fičfirič Član

Pridružen-a: Ned 08 Nov 2009 22:20 Prispevkov: 27 Aktiv.: 0.14 Kraj: idrija
|
Objavljeno: Pet Dec 11, 2009 11:37 pm Naslov sporočila: |
|
|
ok.problem je rešen. imam pa novo uprašanje. Se je že kdo igral z pwm-jem oziroma servomotorčki?
To naj bi se dalo sicer z ukazom " servos" oziroma " config servos" pa mi nekako ne rata.Kako bi zgledala koda da recimo generiram signal z periodo 20ms, ter dutycyclom 1.5ms ? |
|
Nazaj na vrh |
|
 |
cfrik Član


Pridružen-a: Sre 24 Jan 2007 16:15 Prispevkov: 39 Aktiv.: 0.17 Kraj: Trbovlje
|
Objavljeno: Ned Dec 13, 2009 6:38 pm Naslov sporočila: |
|
|
Če potrebuješ točno frekvenco lahko uporabiš prekinitve časovnika (primer v helpu za bascom avr), ali pa uporabiš PWM izhod samega mikrokontrolerja in mu nastaviš z deljenjem frekvence oscilatorja želeno periodo z vnosom vrednosti v OCRxy register pa določiš čas trajanja impulza Ton Dutycicle pa je določen kot D=Ton/T, kjer je T perioda signala in se izračuna T=1/f. Pri izbiri PWM izhoda mikrokontrolerja je še ena velika prednost, saj to deluje popolnoma neodvisno od ostalega dela procesorja in ne zaseda procesorjevega časa, pri prekinitvah pa mora procesor ob vsakem signalu za prekinitev končati s trenutnim delom, servisirati prekinitev, ter šele nato nadaljuje s prejšnjim delom.
LP Samo _________________ lepo je imeti poklic in hobi na istem področju vendar je časa premalo |
|
Nazaj na vrh |
|
 |
mucek Član


 
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5529 Aktiv.: 24.06 Kraj: Domzale
|
Objavljeno: Ned Dec 13, 2009 8:42 pm Naslov sporočila: |
|
|
No, če želiš samo premikati standardne modelarske servomotorčke, uporabi kodo iz Helpa, ki preverjeno deluje!
LP, Grega |
|
Nazaj na vrh |
|
 |
fičfirič Član

Pridružen-a: Ned 08 Nov 2009 22:20 Prispevkov: 27 Aktiv.: 0.14 Kraj: idrija
|
Objavljeno: Tor Dec 15, 2009 8:29 pm Naslov sporočila: |
|
|
Gre za modelarske motorčke ja. Codo z helpa sem seveda poizkusil najprej,pa ne deluje, ter tudi druge primere. So časovne dolžine mogoče odvisne tudi od takta procesorja? Preizkusil sem jih več, pa mi ne uspe.
Ne dela niti naenostavnejši program....
Koda: |
$regfile = "m8515.dat"
$crystal = 8000000
config servos = 1 , servo1=portc.0 , reload = 10
config port c.0 = output
enable interrupts
servo(1) = 150
|
"reload" kolikor zastopim definira natančnost trajanja krmilnih impulzov, ter določa interval 10us.
"servo" pa določa dolžino pulza ki je v tem primeru 1.5ms (ki je značilen za sredinski položaj motorja)
Motorček je sigurno priklopljen pravilno. |
|
Nazaj na vrh |
|
 |
cfrik Član


Pridružen-a: Sre 24 Jan 2007 16:15 Prispevkov: 39 Aktiv.: 0.17 Kraj: Trbovlje
|
Objavljeno: Tor Dec 15, 2009 9:10 pm Naslov sporočila: |
|
|
Sedaj ne morem pogledati helpa, vendar kakor si napisal si zamešal mikro in milisekunde. če imaš periodo 10us ne moreš imeti impulz dolg 1,5 ms. Zato poskusi definirati periodo 10ms.
LP Samo _________________ lepo je imeti poklic in hobi na istem področju vendar je časa premalo |
|
Nazaj na vrh |
|
 |
fičfirič Član

Pridružen-a: Ned 08 Nov 2009 22:20 Prispevkov: 27 Aktiv.: 0.14 Kraj: idrija
|
Objavljeno: Tor Dec 15, 2009 10:42 pm Naslov sporočila: |
|
|
če je pulz 50x na sekundo je torej perioda dolga 20ms, pulz pa 1.5ms.
Ampak če citiram članek iz revije:
Citiram: |
Frekvenca ponavlanja impulzov je tipično 50Hz, impulz trajanja (okoli) 1500us, pa postavi motor v sredinjski položaj. Opcija "Reload = 10" definira natančnost koraka, s katerim nastavljamo trajanje krmilnih impulzov. 10 je priporočena vrednost in določa interval 10us. Za generiranje krmilnih impulzov Timer0, kar pomeni, da Timerja0 ne moremo uporabljati za druge namene. |
Dejanski primer uporabljen v članku:
Koda: |
Dim Servo_pol As Byte
Config Servos = 1 , Servo1=PortC.0 , Reload = 10
Config PortC.0 = Output
Enable Interrupts
Servo(1) = 150 'sredinski položaj |
Indikacijska lučka sicer utripa, a je prižgana dosti dlje kot je ugasnjena. Na servomotorju se ne zgodi nič. Uporabljam točno isto opremo, ter mikrokontroler kot v članku.
Kaj lahko izbran takt uC upliva na dejansko dolžino periode ter pulza? |
|
Nazaj na vrh |
|
 |
Vlado Član

Pridružen-a: Sre 03 Mar 2004 21:35 Prispevkov: 563 Aktiv.: 2.38 Kraj: Ljubljana
|
Objavljeno: Tor Dec 15, 2009 10:48 pm Naslov sporočila: |
|
|
Kako pa imaš nastavljene Fuse bite?
Če se prav spomnim M8515 deluje tovarniško z internim oscilatorjem!
Za test daj eno ledico da ti utripa s sekundnim intervalom in boš videl ali ti M8515 deluje s takotm ki si ga nastavil ali pa z notranjo uro.
Vlado |
|
Nazaj na vrh |
|
 |
fičfirič Član

Pridružen-a: Ned 08 Nov 2009 22:20 Prispevkov: 27 Aktiv.: 0.14 Kraj: idrija
|
Objavljeno: Sre Dec 16, 2009 12:19 am Naslov sporočila: |
|
|
aha sem že bližje ugotovil sem namreč da imajo uporabljene žičke slab stik, oziroma kaže kot da imajo ogromno upornost. Uporabljene so bile žičke ki jih kupiš za vtikanje v protobord (nič jasno).Tako da zdaj se vsaj nekaj dogaja....čeprav še nič uporabnega (motorček trza, ali ga zabija v skrajno lego).
Sem pa ugotovil da uporabljena frekvenca upliva tudi na to funkcijo. Če frekvenco razpolovim, upočasni tudi utripanje.
Ne razumem čisto te odvisnosti frekvence od hitrosti programa. Pr kaki hitrosti potem naprimer ukaz WAIT 1, resnično traja 1 sekundo? |
|
Nazaj na vrh |
|
 |
jurem Član


Pridružen-a: Tor 02 Dec 2003 15:53 Prispevkov: 408 Aktiv.: 1.72 Kraj: Ljubljana
|
Objavljeno: Sre Dec 16, 2009 12:54 am Naslov sporočila: |
|
|
fičfirič je napisal/a: |
Sem pa ugotovil da uporabljena frekvenca upliva tudi na to funkcijo. Če frekvenco razpolovim, upočasni tudi utripanje.
Ne razumem čisto te odvisnosti frekvence od hitrosti programa. Pr kaki hitrosti potem naprimer ukaz WAIT 1, resnično traja 1 sekundo? |
Drži! Zato je treba z ukazom $crystal definirati frekvenco oscilatorja, da bo program pravilno preračunal delovanje. Wait 1 zelo redko traja resnično 1 sekundo! Za 1 sekundni takt bo potrebno uporabiti timer. Če si bil na tečaju, je to program 7.
Lp
Jure |
|
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: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|