 |

|
|
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 12 24, 06:24. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » atmega8 ir USART
|
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
|
|
|
 |
 |
atmega8 ir USART |
Parašytas: 2011 07 10, 20:02 |
|
|
|
|
| Digix rašo: |
| tiesa jei duomenys eina isvis be sustojimo tai UART gali pamesti sinchronizacija ir priimineti nesamones, bet vistiek nesustos. |
Buna tokiu atveju, kai varai per UART'a kiek kontroleris tempia. Mano atveju prasidedavo retkarciais ties 3mbps, tai pradejau naudot po 2 start/stop bitus. Nepamenu ar 2 stop'ai ar 2 startai ten standartiskai imanomi, bet naudojant 2 bitus transceiveris speja persinchronizuot po kiekvieno baito.
Kas del USART'o, tai cia teisingai sake. Buferis visais atvejais yra pildomas kiekvienoje pertrauktyje. Jei tu programoje nespejai to buferio paskaityt, tai naujoj pertraukty ten bus uzrasomi nauji duomenys. Pvz tokios problemos nelieka LPC11xx cortex-m0 mikrovaldikliuose: baud rate'o klaidos klausima issprendzia fractional baud rate generatorius, o tuos visus greitu duomenu perdavimo klausimus issprendzia FIFO buferis and priemimo kanalo. |
|
|
|
|
|
 |
 |
atmega8 ir USART |
Parašytas: 2011 07 10, 20:13 |
|
|
|
|
kazka cia suvelei
galimas ir toks atvejis, kai main() tiek ilgai nuskaitineja duomenis is buferio, kad per ta laika ivyksta netgi neviena USART RX_CHAR pertrauktis ir pakeicia bufer_end kintamaji, o programa buna issisaugojusi senaja reiksme lokaliai arba neleistinai (logikos prasme) ta reiksme operuoja.
teisingai suprograminus dirbs ir pats leciausias cpu. |
|
|
|
|
|
 |
 |
atmega8 ir USART |
Parašytas: 2011 07 10, 20:57 |
|
|
|
|
| AlgisL rašo: |
kazka cia suvelei
galimas ir toks atvejis, kai main() tiek ilgai nuskaitineja duomenis is buferio, kad per ta laika ivyksta netgi neviena USART RX_CHAR pertrauktis ir pakeicia bufer_end kintamaji, o programa buna issisaugojusi senaja reiksme lokaliai arba neleistinai (logikos prasme) ta reiksme operuoja.
teisingai suprograminus dirbs ir pats leciausias cpu. |
Kiek ilgai galima "nuskaitinet" buferi? Atsakyk kaip nori, sekundem, ciklu skaiciais ar kokiu kitu ekvivalentu
O USART'as yra tiek letas, kad naudojant normalu kvarca nera ka ten ilgai nuskaitinet. |
|
|
|
|
|
 |
atmega8 ir USART |
Parašytas: 2011 07 10, 21:05 |
|
|
|
|
| tai cia teisingai programuojant nera ka veikt, o juk visi mes skirtingi, kiekvienas savaip programa rasom, jos ir kitaip dirba. |
|
|
|
|
|
 |
atmega8 ir USART |
Parašytas: 2011 07 10, 21:15 |
|
|
|
|
| AlgisL rašo: |
| tai cia teisingai programuojant nera ka veikt, o juk visi mes skirtingi, kiekvienas savaip programa rasom, jos ir kitaip dirba. |
Buferio nukopijavimas i registra uztrunka viena mikrovaldiklio cikla (afaik komanda "mov"), taigi tas pasakymas "nuskaitymo trukme" yra nesamone. Esme tokia, kad situ atveju klaida yra ne mikrovaldiklyje ar pertrauktyje, o pacioje programoje ir duomenu apdorojime. |
|
|
|
|
|
 |
atmega8 ir USART |
Parašytas: 2011 07 10, 21:23 |
|
|
|
|
| ir vel svaigsti, ypac apie ciklu skaiciu, tad gal isvis nesi nieko programaves? |
|
|
|
|
|
 |
atmega8 ir USART |
Parašytas: 2011 07 10, 22:08 |
|
|
|
|
| AlgisL rašo: |
| ir vel svaigsti, ypac apie ciklu skaiciu, tad gal isvis nesi nieko programaves? |
As ir tamsta kvailiu galiu ishvadint, bet ar be argumentu tas turi reiksmes?  |
|
|
|
|
|
 |
atmega8 ir USART |
Parašytas: 2011 07 10, 22:19 |
|
|
|
|
| USART data registras nera joks FIFO buferis, bet net NEREALIUOSE OMAP net jei ir yra aparatinis FIFO, tai nemanau kad yra speciali komanda kuri vienu ciklu sugeba perskaityti FIFO status registra, ji ivertinti, bei atlikti FIFO korekcijos, USART korekcijos bei pragramos kintamuju korekcijos operacijas _VIENU CIKLU_, bet matau yra pas mus sviesuoliu sugebesianciu mums "durniams" tai parodyti realiais pavyzdziais. |
|
|
|
|
|
 |
atmega8 ir USART |
Parašytas: 2011 07 10, 22:21 |
|
|
|
|
| Jei kalba dar apie tą patį eina, tai nuskaitymą iš buferio ir įrašymą į jį, daro paprogramė, kuri tuo pačiu seka kiek buferyje baitų, persipildė ar ne ir pan. |
|
|
|
|
|
 |
atmega8 ir USART |
Parašytas: 2011 07 10, 22:25 |
|
|
|
|
| AlgisL rašo: |
| USART data registras nera joks FIFO buferis, bet net NEREALIUOSE OMAP net jei ir yra aparatinis FIFO, tai nemanau kad yra speciali komanda kuri vienu ciklu sugeba perskaityti FIFO status registra, ji ivertinti, bei atlikti FIFO korekcijos, USART korekcijos bei pragramos kintamuju korekcijos operacijas _VIENU CIKLU_, bet matau yra pas mus sviesuoliu sugebesianciu mums "durniams" tai parodyti realiais pavyzdziais. |
Nu matai, nedaeina tau kad kalbama apie jau paruostus duomenis buferyje Tiek to, nera ka toliau diskutuot. |
|
|
|
|
|
 |
atmega8 ir USART |
Parašytas: 2011 07 10, 22:38 |
|
|
|
|
| tai tau nedaeina, kad buferi (FIFO) galima apdorot taip kad viskas veiktu ir taip kad kazkas strigtu ir niekaip nesugebi pateikti jokio pavyzdzio, kur vienintelio cpu takto metu atliekamos operacijos su FIFO buferiu ir programos kintamaisiais. |
|
|
|
|
|
 |
 |
atmega8 ir USART |
Parašytas: 2011 07 10, 22:56 |
|
|
|
|
| AlgisL rašo: |
| tai tau nedaeina, kad buferi (FIFO) galima apdorot taip kad viskas veiktu ir taip kad kazkas strigtu ir niekaip nesugebi pateikti jokio pavyzdzio, kur vienintelio cpu takto metu atliekamos operacijos su FIFO buferiu ir programos kintamaisiais. |
Siulau baigt rukyt ta, nuo ko pats svaigsti ir atsimerkus blaiviom akim paziuret i ATmega8 datasheeta. Is to klausimai:
1. Remiantis 129psl. paaiskink, kur ten ATmega8 turi FIFO?
2. Remiantis 141psl. paaiskink, kada suveikia USART RX pertrauktis?
3. Ar zinai kuo skiriasi FIFO ir FILO?
Siaip cia man aiskint nereikia, tiesiog kazkas galbut ateityje paskaitys tavo postus ir prades galvot tokias pacias nesamones kaip tu. |
|
|
|
|
|
 |
 |
atmega8 ir USART |
Parašytas: 2011 07 10, 23:08 |
|
|
|
|
tai vat taves ir klausiu, kuris cia prosas turi aparatini fifo apdorojima ir dar per viena cpu takta?
o visa kita manes nejaudina, cia jau pacio problemos.
bandymas pudrinti smegenis, kad ta atminties lastele, kuri yra usart data registras ir yra "1 masininio zodzio talpumo aparatinis FIFO" manes netenkina, nes vistiek jo apdorojimui reikia dar kaip minimum usart statusa patikrint ir betkokiu atveju praleis ar atlikt dar viena komanda, tad apie 1 cpu takta vistiek nuskiedei kaip turi but. |
|
|
|
|
|
 |
 |
atmega8 ir USART |
Parašytas: 2011 07 10, 23:20 |
|
|
|
|
| AlgisL rašo: |
| tai vat taves ir klausiu, kuris cia prosas turi aparatini fifo apdorojima ir dar per viena cpu takta? |
Aj tiek pasakojai apie FIFO, o dabar klausi? As visuomet pagelbeju neigaliesiems. Akliems siulau padidinamu stiklu paskaityti mano pirma posta antram puslapyje.
| AlgisL rašo: |
| bandymas pudrinti smegenis, kad ta atminties lastele, kuri yra usart data registras ir yra "1 masininio zodzio talpumo aparatinis FIFO" manes netenkina, nes vistiek jo apdorojimui reikia dar kaip minimum usart statusa patikrint ir betkokiu atveju praleis ar atlikt dar viena komanda, tad apie 1 cpu takta vistiek nuskiedei kaip turi but. |
Nieks smegenu nepudrina, tik matau tau dar laaabai daug zoles ap... kol suprasi, kaip veikia tokiu procesoriu peripheralsai. Pradziai velgi siulau ziuret i strukturine schema, kol daeis. Kad lengviau protas pasviesetu paaiskinu:
1. ATmega8 USART'o priemimo metu raso i tam tikra temporary registra bito perstumimo rezimu. T.y. priimamas bitas, perstumiamas i kaire arba i desine (priklausomai nuo parenkamo endian'o), tol kol uzsipildo 8 bitu registras. Tada daromi visi tikrinimai, lygiagretus duomenu permetimas i kitus registrus ir t.t.
2. Issiaiskink kas yra FIFO ir kaip jis veikia, nes tu visiskai nesupranti nei FIFO, nei FILO reiksmiu, o juolabiau kaip jie veikia. Sitos vietos neaiskinsiu, nes net wikipedia ta puikiai paaiskina.
3. Jei butum skaites ATmega8 datasheeta, tai butum rades Interrupts skyriuje interrupta USART RXC, kas reiskia receive complete, kai duomenys jau po visu tikrinimu, korekciju ir kitos fygnios padedami i buferi nuskaitymui.
Trumpai tariant pasirodei koks protingas, buk geras sau - nesidaryk gedos. |
|
Paskutinį kartą redagavo Socrates, 2011 07 10, 23:39. Redaguota 2 kartus(ų) |
|
|
|
 |
 |
atmega8 ir USART |
Parašytas: 2011 07 11, 07:26 |
|
|
|
|
O kam "äklam" tas tavo FILO/LIFO? nuo kada komunikacijos buferiai organizuojami STACK principu? na nebent pas rusus, kad ir begiai per mika platesni butu ir simbolius atvirkstine tvarka isiminetikaip sovinius is kalasho deklo  |
|
|
|
|
|
|
 |
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 |
 |
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 |
 |
Must have farming mods
Farming simulator modhub,
Best farming simulator mods |
|

|
 |