Elektronika.lt
 2025 m. gegužės 22 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

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 05 22, 20:56. 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
 
  
Puslapis 13
Pereiti prie 1, 2, 3  Toliau
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 atmega8 ir USART
PranešimasParašytas: 2011 07 08, 19:50 Pranešti apie taisyklių pažeidimą Atsakyti su citata
ReM
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Tokia situacija.

Sukasi begalinis ciklas, sastoviai skaitomi duomenys iš USART ir pagal tuos duomenis programa vykdo tam tikrus veiksmus. Kokius čia visai neesminis dalykas. Priimti duomenys papuola į buferį. Jei yra bent vienas nuskaitytas baitas, programa prasisuka vieną ciklą. Toks nuskaitymo būdas geras, viskas veikia, tačiau kartais, dėl nesuprantamų priežasčių, programa sustoja. Sustojimas reiškia, kad duomenų nėra, laukia kol atsiras. Kodėl duomenų nėra, negaliu suprast. Priežastys gali būti įvairios, sakykim dėl kokių tai priežasčių pastrigo tas duomenų buferis. Esmė tame, kad jei duomenys neteisingi, tačiau kažkas visgi nuskaitoma, programa skaitys, kol pasirodys teisingi duomenys. Patys duomenys tikrai nedingsta, t.y. iki atmegos tikrai ateina.
Šiuo atveju, svarbiausias dalykas, kad programa nesustotų. T.y. duomenų priėmimas labai svarbus. Tačiau nėra labai svarbu, jei dalis duomenų pradings. Galima prarast 20-50 baitų, bet reikia skaityt toliau.
Kaip padaryt taip, kad jei tik kažkurį laiką duomenų nebuvo gauta, imtis kažkokių priemonių atgaivint procesą. Pvz. išvalyt visą buferį, kažkaip resetint USART, arba dar kažkaip išsisukt iš tokios situacijos.
Gal kas turit idėjų, kaip protingiau organizuot tokį procesą?
 atmega8 ir USART
PranešimasParašytas: 2011 07 08, 21:21 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Master_Of_King
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Gal eitu tai padaryti su watchdog taimeriu jei neklystu jis po kiek laiko restartuoja mikroschema ir tarkim kas kazkiek laika nunulinam taimeri ir mikroschema nepersikrauna, o jei blogai kas blogai tada taimeris nenusinulins ir po tam tikra laika mikroschema nusiresetins. (Jei taip supratau watchdog principa Rolling Eyes )
 atmega8 ir USART
PranešimasParašytas: 2011 07 08, 22:20 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
rysio klaidas reikia apdoroti, bei rupintis sinchronizacija.
 atmega8 ir USART
PranešimasParašytas: 2011 07 08, 22:36 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
kiek daznai ta problema ivyksta?

ir kur garantija kad sutojama butent toje vietoje?

Jei kokio nors baito nprieme tai turetu pratesti darba kai priims sekanti jei tau sustoja visam laikui tai turbut procesorius pakimba
 atmega8 ir USART
PranešimasParašytas: 2011 07 08, 23:44 Pranešti apie taisyklių pažeidimą Atsakyti su citata
ReM
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Problema atsiranda labai retai. Todėl nustatyti kame reikalas sunku.
Baitai priiminėjami USART pertraukime į buferį. Aš tik žiūriu ar yra koks baitas buferyje, jei yra imu jį lauk ir važiuoju toliau. Jei nėra, programa stovi ir laukia kol atsiras. Bet šiuo atveju sustojimų neturėtų būt, nes duomenys eina pastoviai.
Resetint mega8 nesinorėtų, tai sukels trumpą, bet labai nepageidaujamą sutrikimą.
Iš tikro neįsivaizduoju kaip nustatyti kurioje vietoje sutrikimas, nes galima bandyt neribotą laiką ir taip ir nepamatyt šios problemos. Todėl klaida programoje labai mažai tikėtina. Tuo labiau, kad programa labai paprasta. Bet kartais be jokių pastebimų priežasčių ima ir pasireiškia.
Bandžiau kibt prie maitinimo, kad gal kokie trukdžiai praeina, bet be teigiamų rezultatų...
 atmega8 ir USART
PranešimasParašytas: 2011 07 08, 23:51 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Ba1tuks
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Manau tada vienintelė logiška minti pakeisti tą atmegą į naują Wink
 atmega8 ir USART
PranešimasParašytas: 2011 07 09, 00:50 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
ReM rašo:
Bet šiuo atveju sustojimų neturėtų būt, nes duomenys eina pastoviai.


ka reiski zodis "sustojimu" ?

tai tau trumpam sustoja ar visam laikui toliaus ignoruoja visus ateinancius duomenis.

jey antrasis varisntas akivazdu kad atmega pakibo.o duomenu priemimas ar perdavimas cia ni prie ko
 atmega8 ir USART
PranešimasParašytas: 2011 07 09, 05:15 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
ar tik ne trukdziu problema? ar tinkamai suformaves iejimo/isejimo schemotechnika bei zemiu moksla? gal gauna koki siuksliu impulsa (tame tarpe ir per maitinima) ir sminga?
 atmega8 ir USART
PranešimasParašytas: 2011 07 09, 10:38 Pranešti apie taisyklių pažeidimą Atsakyti su citata
ReM
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Taip, trukdžio varianto atmesti negaliu. Bet kaip įsitikint? Man realiausias variantas atrodo, kad kažkodėl "paspringsta" USART, pvz. dėl kokio trukdžio duomenyse. Šiaip mega dar generuoja tam tikrą PWM signalą, jis nedingsta, veikia kaip veikęs...
mega8 į naują keist bandžiau, tas pats.
Ką reiškia sustojimas. Paprastas dalykas. Nuskaitymo iš buferio procedūra tokia, kad jei buferyje nėra nė vieno baito ji sustos ir lauks kol atsiras. Jei nuskaitymas yra kažkokiame cikle, tai visas ciklas sustos. Čia standartinė codevisionavr procedūra. Beje išbandyta daugybę kartų, ji tikrai veikia šiaip jau normaliai.
Jei kyla klausimas kodėl sustoja, tai irgi galima paaiškint. Juk jei eina kažkokios duomenų sekos, kurias reikia skaityt iš eilės, tai pramesti negalima nė vieno baito. Aišku yra situacijų, kada reikia kaip tik atvirkščiai, jei duomenų nėra, varom toliau, pažiūrėsim ar atsirado sekančiame nuskaityme.
O problema tame, kad sustoja visai, t.y. rezultatas tas pats, kaip ir tuo atveju, jei buferyje nėra duomenų. Nors patys duomenys eina visą laiką...
 atmega8 ir USART
PranešimasParašytas: 2011 07 09, 11:40 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
USART negali paspringti, gali ivykti tiktais rysios arba aptarnavimo klaidos.
pvz uC gaves nepilna simboli nustato klaidos veliaveles, pranesimo apie priemima aisku negeneruoja, nes nera del ko ji generuot, tu pvz netikrini ir neisvalai klaidos bei priemimo registro, tad priemus sekanti baita vel klaida.
kitas variantas - netiksli sinchronizacija, kuria butu galima spresti ivedus papildomus stop bitus ar pauzes siunciant i uC, o isvedant is mC tik korektisku pauziu tereikia.
visi signalu ivadai patartina daryti bent per keletos kOm varzas, isvedimo bent per keliu simtu Om, mases laidai nuo iejimu, isejimu, kvarco ar taktionio generatoriaus, uC maitinimo (yra skaitmenines ir analogines dalies atskirai) susieitu viename taske zvaigzdes principu (isskyrus atveji kai tinkamai suprojektuoji isejimo ir iejimo kaskadu papildomus maitinimus).
 atmega8 ir USART
PranešimasParašytas: 2011 07 09, 13:41 Pranešti apie taisyklių pažeidimą Atsakyti su citata
ReM
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Per kiek laiko sincronizuojasi priėmimas po klaidos? Mano pastebėjimais prameta keletą baitų. Bet gal ir blogesnių situacijų būna?
Perdavimo protokolo pakeisti aš negaliu. Ne mano kūrybos įrenginys perdavinėja duomenis.
Perdavimo greitis didelis - 115200. Kvarcas "teisingas". Be to, perdavimas vyksta iš 3,3 V matinamo įrenginio. Pas mane 5V. Reiškia signalo lygiai neatitinka 5V TTL. Bet kiek bandžiau šiaip niekada dėl to klaidų nepastebėjau. Gal visgi čia priežastis?..
 atmega8 ir USART
PranešimasParašytas: 2011 07 09, 14:12 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Tomax
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Aš tokiu atveju įtampų lygių konvertavimui esu naudojęs tokią mikrę http://www.fairchildsemi.com/ds/74/74LCX125.pdf
Bet kaip AlgisL ir minėjo- labai svarbi gera schemotechnika. Net per ilgi maitinimo laidai gali įtakot veikimą. Turėjau bėdų, kad RX pinas iš niekur nieko visai nustodavo veikt. Atjungus maitinimą, po poros valandų vėl viskas čiki..
 atmega8 ir USART
PranešimasParašytas: 2011 07 09, 14:29 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
apdorok interuptus tiek priemimo, tiek klaidos. gaves klaida numesk klaidos bitus ir nuskaityk baita is priemimo registro bei atzymek viesame kintamajame klaidos statusa, jei programos logika reikalauja dar ir buferi isvalyk, o main cikle tinkamai reaguok.

tiesa, gali modifikuoti schema taip:
iejime i mase det 3,3..3,6V stabilitrona, paskui 1..10kOm varza i 5V ir tada i RX, gali dar nuosekliai imest kokia varzike, dar ir koki 100pF konderiuka lygiagreciai stabilitronui.
TX isejime 200Om..2kOm varza i tavo irengini ir i mase per 3,3..3,6V stabilitrona, konderis lygiaigreciai stabilitronui kokiu 100pF irgi gali pataisyti situacija.
 atmega8 ir USART
PranešimasParašytas: 2011 07 09, 16:31 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
ReM rašo:

O problema tame, kad sustoja visai, t.y. rezultatas tas pats, kaip ir tuo atveju, jei buferyje nėra duomenų. Nors patys duomenys eina visą laiką...

tai tokiu atveju ieskok klaidos savo programoje, UART hardwaras sustoti negali jam visai niekas nerupi ka gauna.

gal tavo buferis persipildo ir ka nors sugadina?


tiesa jei duomenys eina isvis be sustojimo tai UART gali pamesti sinchronizacija ir priimineti nesamones, bet vistiek nesustos.
 atmega8 ir USART
PranešimasParašytas: 2011 07 09, 22:52 Pranešti apie taisyklių pažeidimą Atsakyti su citata
ReM
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Ačiū už patarimus, bandysiu aiškintis...
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie 1, 2, 3  Toliau
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

„Mokslo sriuba“

www.matuok.lt - Interneto spartos matavimo sistema

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

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
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps 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
Football Training Kit
Football Training Equipment, Football Skills, Football Training
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Script hook v, Openiv, Menyoo
gta5mod.net
„MokslasPlius“ – mokslui skirtų svetainių portalas
www.mokslasplius.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
LTV.LT – lietuviškų tinklalapių vitrina
www.ltv.lt/technologijos/
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama