ATTINY 13A /ATMEGA 8 a aplikace UARTU

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
franta22
Příspěvky: 110
Registrován: 26 lis 2013, 01:00

ATTINY 13A /ATMEGA 8 a aplikace UARTU

#1 Příspěvek od franta22 »

Zdravím všrchny.
Potřebuji rutinu v assembleru pro nastaveni procesoru ATTINY 13A na praci s UARTEM -eventuelně pro ATMEGU 8.
.....
1. požadavek 9600Bd ,data bit 8 , parita none , stop bit 1 s internim oscilátorem
....
2. požadavek 19200Bd ,data bit 8 , parita none , stop bit 1 s internim oscilátorem
....
3. požadavek 9600Bd ,data bit 8 , parita none , stop bit 1 s krystalem
HODNOTA KRYSTALU =?
.....
4. požadavek 19200Bd ,data bit 8 , parita none , stop bit 1 s krystalem
HODNOTA KRYSTALU =?
....
Taky mi není jasné na jakých vývodech bude Rx a Tx ???
....
Pokud to ATTINY13 neumí tak evidentně to umí ATMEGA8.
a stejnej dotaz by platil pro ATMEGU 8
...
Děkuji moc za radu .

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#2 Příspěvek od FHonza »

ATTiny13 nemá UART ani krystal. Docela srozumitelný popis k USART/UART nalezneš tady. A rozhodně koukni do datasheetu

Uživatelský avatar
franta22
Příspěvky: 110
Registrován: 26 lis 2013, 01:00

#3 Příspěvek od franta22 »

pravda ATTINY UART ani krystal nemá ale je to řešitelné
1. procesor analyzuje rychlost UARTU od mastru
2.následně odešle READY do mastru.
3.podprogram pro Rx a Tx je jen věc napsání assemblerické rutiny
..................
Mělo by to fungovati i pro pidi procesory za předpokladu stability interniho
oscilátoru. Pro nižši rychlosti přenosu . :Ale pro programátory píšicí program ve vyššim jazyce to je asi špaňalská řeč .
Nedám dopustit na assembler :D :idea: :arrow: :idea: a zpět

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#4 Příspěvek od FHonza »

Tvému dotazu absolutně nerozumím, nejdřív píšeš o nastavení.
Potřebuji rutinu v assembleru pro nastaveni
V další části pak chceš UART řešit softwarově. V tom případě nechápu proč se ptáš na jakých pinech bude Rx a Tx
Taky mi není jasné na jakých vývodech bude Rx a Tx ???
V případě čistě softwarové emulaci si je přeci můžeš nastavit na který pin chceš.
1. procesor analyzuje rychlost UARTU od mastru
Protože nemluvíš "špaňalskou řečí" a na assembler nedáš dopustit, tak jistě pro tebe nebude problém napsat v "assemlerické rutině" rekonstrukci hodin s dolní propustí i s interním oscilátorem, který má nestabilitu udávanou výrobcem kolem 2% vlivem teploty a kolísání napájecího napětí.
Pro jednu konkrétní přenosovou rychlost je čistě softwarových řešení na internetu poměrně dost.
2.následně odešle READY do mastru.
Doteď sem nevěděl, že se v asynchronním režimu posílá nějaké "READY" ve fyzické vrstvě.

Uživatelský avatar
franta22
Příspěvky: 110
Registrován: 26 lis 2013, 01:00

#5 Příspěvek od franta22 »

Nejsem profesionální diskutér ...chtěl jsem poradit .
Hodiny s internim oscilatorem dovedu napsat .Přiřazení pinu pro RX a TX
je ,mi jasné . Napsanej podprogram pro konkrétní rychlost UARTU bych tedy velmi uvítal ...pokud možno v assembleru .
Jeho napsání jsem vzdal ...
Podařilo se mi napsat Opakovací rutinu z Rx na Tx pro libovolnou rychlost
UARTU ale změřt rychlost mastru se mi nedaři a taky napsaní dalšiho programu pro přijem a odeslání stále nemám .
....................................
Pokud tedy rutina v assembleru pro AVR UART s interním oscilátorem a pro předem danou rychlost přenosu - existuje velmi rád ji použiji
...................................
Na netu jsem ji stále nenašel .
Děkuji za minulý přispěvek a i za budoucí radu .

Uživatelský avatar
franta22
Příspěvky: 110
Registrován: 26 lis 2013, 01:00

#6 Příspěvek od franta22 »

Už mi to snad došlo :assynchronní přenos 8 dat , 1 stop a 1 start
1. zvolím si přenosovou rychlost např . 600Bd ... z toho plyne
doba start pulsu 1,666msec.......
2. Dalších osm datových pulsů zabere 1,666 x 8 = 13,3msec...
za tuto dobu přesunu v času +0,8333/D0/ + 1,666msec/D1/......./D7/ hodnoty z pinu Rx do registru přijímače.
3. Vyslani na pin Tx s časovkou 1,666ms by neměl bejt problém s interním oscilátorem ........
větši rychlosti UARTU potom obdobně ....
...............................................................
Poslední dotaz rychlost v Bd určuje počet pulsů za 1 sec ???

Uživatelský avatar
frpr666
Příspěvky: 1051
Registrován: 28 pro 2009, 01:00

#7 Příspěvek od frpr666 »

Samozřejmě attiny13A je super čip, ale nemá hardwarový UART.
Přidej pár kč navíc a kup atmega8 nebo atmega8a. Ušetříš hodiny ladění kódu v asm.
Tuhle jsem viděl, že kompletní arduino pro mini (čip, krystal, stabilizátor) lze koupit za $2.

Uživatelský avatar
franta22
Příspěvky: 110
Registrován: 26 lis 2013, 01:00

#8 Příspěvek od franta22 »

Máš pravdu ATTINY 13 je nejvýkonnějši procecesor co se rozměrů a ceny týká = MÁ NEJLEPŠI POMĚR VÝKONU / CENĚ ´+ ROZMĚRŮM ..
uart PRO INTERNÍ OSCILÁTOR MI UŽ FUNGUJE TAM I ZPĚT AKORÁT SE DEFINUJE RYCHLOST MOJÍM ORIGINÁLNÍM ZPŮSOBEM PRO int.osc.
..............
fachá pro 600 ...9600 Bd ...Tx I 3X VÝŠE !!!
..............
Dalši klony ATMEGA8 , ATMEGA 324 a 624 a ATTINY 26 mám objednané a i v šuplíku ...čekají až na ně dojde řada ..
.............
Pro skutečné aplikace je ale jedno jakou řadu AVR nebo MCS51 použiješ
spíše není jedno za jak dlouho odladíš perfektní SW ...
PROTO JE TREBA STALE STUDOVAT ASSEMBLER A NENECHAT SE OPIT
KOMERCIALIZACÍ V PODOBĚ BALIKŮ SW A BALIKŮ KITŮ
............
a OBČAS VSTOUPIT NA BASTLIRNU :idea: :arrow: :idea: A :?: :?: :?:

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“