Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Nastavení rychlosti komunikace u AT89Cx051 / AT89S8252

 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Ludan



Založen: Sep 17, 2004
Příspěvky: 6
Bydliště: Pardubice, CZ

PříspěvekZaslal: út leden 08 2008, 9:23    Předmět: Nastavení rychlosti komunikace u AT89Cx051 / AT89S8252 Citovat

Hezký den všem...

nastavení komunikace (standardní 9600,8,N,1) není problém, ale narazil jsem na problém nastavit u Atmelu komunikační protokol na 4800,8,E,2, tedy sudá parita a 2 stop bity.
Můžete mi někdo poradit, jak v ASM nastavím tento typ komunikace ? Už jsem prolezl kde co, mám problém s paritou (soft v PC mi ukazuje, že pořád komunikuju BEZ parity) a pak nevím, jak je to s tím stopbitem, aby tam byly 2.

Dík za každý nakopnutí.

Bye Luďan
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: út leden 08 2008, 10:54    Předmět: Citovat

Musíš nastavit komunikaci jako 9-bitovou a paritu (9.bit) si dopočítat přes acc.

2 stop-bity nasimulujuješ vložením pauzy odpovídající délce jednoho bitu mezi jednotlivý vysílaný "slova" (v podstatě ve chvíli, jamkmile ti přijde potvrzení o odeslání).

_________________
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Ludan



Založen: Sep 17, 2004
Příspěvky: 6
Bydliště: Pardubice, CZ

PříspěvekZaslal: út leden 08 2008, 22:10    Předmět: Citovat

Tak jsem to zatim sbastlil takto:
kód:

                      DSEG AT 30H

BUFFER:          DS 17                 ; buffer pro odesilana data

                      CSEG

IDENT             EQU PSW.5          ; priznak odesilani dat do PC
PARITA           EQU PSW.0          ; paritni priznak

  atd...

;    *****************************
;    ** Obsluha preruseni od SERIAL **
;    *****************************

SERIAL:          JB TI, ODESLANO  ; odeslani znaku -> skok
                      CLR RI
                      RETI
ODESLANO:     CLR TI
                      JNB IDENT, END_TX  ; po odeslani vsech znaku skok
                      MOV A, @R0            ; do ACC znak pro odeslani
                      JB PARITA, SET_PARITY  ; nastaveni/smazani bitu parity
                      CLR TB8               ; 9.odesilany bit=0
                      AJMP ODESLI_ZNAK
SET_PARITY:   SETB TB8             ; 9.odesilany bit=1
ODESLI_ZNAK:MOV SBUF, A        ; odeslani na seriovy port
                      INC R0                 ; inkrementace ukazatele na znak
                      DEC R7                ; dekrementace poctu odeslanych znaku
                      MOV A, R7            ; pocet znaku k odeslani do ACC
                      JNZ END_TX          ; ACC<>0 -> na END_TX
                      CLR IDENT           ; vsechny znaky odeslany, vymaz priznaku
END_TX:         RETI                     ; navrat z preruseni

........ inicializace je provedena takto:

                      MOV TH1, #243     ; konstanta pro casovac 1
                      MOV TH0, #HIGH HODNOTA  ; nastaveni hodnoty pro casovac 0
                      MOV TL0, #LOW HODNOTA
                      MOV TMOD, #00100001B  ; 8bitovy citac/casovac 1 s fci RELOAD a 16bitovy citac/casovac 0
                      MOV SCON, #11000000B  ; 9bitovy asynchronni prenos
                      MOV PCON, #00000000B  ; kmitocet serioveho kanalu 4800 Bd
                      SETB ET0              ; povoleni preruseni od casovace 0
                      SETB ES                ; povoleni preruseni od serioveho kanalu
                      SETB EA                ; povoleni prijmu preruseni
                      SETB TR0              ; zapnuti casovace 0
                      SETB TR1              ; zapnuti casovace 1
                     
  atd...



muzes mi please poradit, jak udelam ty 2 stopbity ?

Jinak softik uz hlasi, ze je to suda parita, takze super, zas jsem o neco chytrejsi...

Bye Ludan
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: st leden 09 2008, 10:28    Předmět: Citovat

Za

ODESLANO: CLR TI

dej čekací smyčku 0.2ms pro rychlost 4800, teprve potom pokračuj v programu. Natáhneš tím stop-bit na delší dobu a v podstatě nasimuluješ dva.

_________________
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.11 sekund