OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 19.04.2024, 10:06

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 5 ] 
Autor Zpráva
PříspěvekNapsal: 24.11.2019, 00:23 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.06.2013, 20:26
Příspěvky: 2487
Has thanked: 115 times
Been thanked: 424 times
Experimentuju se zmíněným UARTem a zatímco vysílání znaků funguje jak víno, příjem mi nejde. Podle logického analyzátoru jdou z MAX232 data do UARTU, ale UART se tváří, že o ničem neví. Příznak došlého znaku není nastaven, v bufferu nic není.
Nepoužívám žádné HW řízení, jen posílám data - ale neprojde ani jeden znak, prostě nic.

Tak mě napadlo, jestli jsem UARTa správně inicializoval. Kdo s tím máte nějaké zkušenosti, můžete na tohle mrknout?
Kód:
1) Vymazání FIFO:
    OUT FCR,00000111    ; povolení FIFO a vymazání registrů
   
2) Nastavení rychlosti na 57600 Bd (krystal 7.3728 MHz):
    OUT LCR,10000011    ; přístup k registrům děličky
    OUT DLL,8           ; nižší byte(LSB)
    OUT DLM,0           ; vyšší byte (MSB)
    OUT LCR,00000011    ; vypnutí přístupu

Nezapomněl jsem na něco? Nemusí se napoprvé taky něco přečíst?

_________________
"Je lepší rozsvítit byť jen malou svíčku, než jen proklínat temnotu." (Konfucius)

www.zxsparrow.com


Nahoru
 Profil  
 
PříspěvekNapsal: 24.11.2019, 01:42 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Nechceš 450, ta je jednodušší :lol:

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
PříspěvekNapsal: 24.11.2019, 07:53 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.06.2013, 20:26
Příspěvky: 2487
Has thanked: 115 times
Been thanked: 424 times
Málem bych zapomněl - tady je datasheet k tomu UARTu:


Přílohy:
SC16C550B_(Rev.6).pdf [282.65 KiB]
409 krát

_________________
"Je lepší rozsvítit byť jen malou svíčku, než jen proklínat temnotu." (Konfucius)

www.zxsparrow.com
Nahoru
 Profil  
 
PříspěvekNapsal: 24.11.2019, 08:43 
Offline
Kecálek

Registrován: 07.05.2014, 12:10
Příspěvky: 197
Bydliště: Jbc
Has thanked: 0 time
Been thanked: 39 times
Jsou hodiny na signalu RCLK?
Jinak tam zadnou nesrovnalost nevidim... Snad jen zkontrolovat, zda funguje adresovani registru podle predpokladu - tj. overit ctenim, ze zapsana data jdou z registru zase vycist, ze prepnuti LCR bit7 funguje apod... (staci, kdyz bude spatny kontakt na jednom signalu, a uz to nebude fungovat korektne...)


Nahoru
 Profil  
 
PříspěvekNapsal: 24.11.2019, 20:22 
Offline
Kecálek

Registrován: 13.09.2015, 20:56
Příspěvky: 77
Bydliště: Jirny
Has thanked: 5 times
Been thanked: 17 times
Tady je segment kódu inicializace 16550 procesorem 8049: (neověřeno, ještě nemám postavený hardware).

;
; Initialise UART to 9600 8N1.
;
anl p1,#3 ; a16data=0 a17data=0 a17code=* mux=*
mov a,#$80 ; A15-A8 for data access
outl p2,a

mov a,#$00 ; Turn off interrupts
mov r0,#$01 ; in UART register 1
movx @r0,a

mov a,#$80 ; set DLAB on
mov r0,#$03 ; in UART register 3
movx @r0,a

mov a,#13 ; baud rate divisor lsb (9600)
mov r0,#$00 ; in UART register 0
movx @r0,a
mov a,#$00 ; baud rate divisor msb (9600)
mov r0,#$01 ; in UART register 1
movx @r0,a

mov a,#$c7 ; FIFO control
inc r0 ; in UART register 2
movx @r0,a

mov a,#$03 ; 8N1
inc r0 ; in UART register 3
movx @r0,a

mov a,#$0b ; set DTR, RTS, and OUT2
inc r0 ; in UART register 4
movx @r0,a

mov r0,#2 ; FIFO Control Register
mov a,#3 ; Enable FIFO and clear receive FIFO
movx @r0,a
;
; This is supposed to suppress receiving a junk character after reset,
; but does not work. Myth or recommended, it won't do any harm.
;
mov a,#5 ; read LSR
movx a,@r0

mov a,#6 ; read MSR
movx a,@r0


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 5 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 7 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat 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 přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz