SW UART18xxx - vysledek

Pavel Kořenský pavel.korensky@dator3.cz
Sobota Srpen 13 19:09:31 CEST 2005


No, já jsem kdysi na jednu takovou blbost používal brouk z GM. Tuším, že
označení je SCC2698 a je to 8x UART v pouzdře PLCC84.

Zdraví PavelK

> -----Original Message-----
> From: hw-list-bounces@list.hw.cz 
> [mailto:hw-list-bounces@list.hw.cz] On Behalf Of Marek Pavlu
> Sent: Saturday, August 13, 2005 6:05 PM
> To: 'HW-news'
> Subject: RE: SW UART18xxx - vysledek
> 
> 
> Zdravim,
> 
> Pak chapu, UARTu neni nikdy dost:).
> Docela mne stve, ze se nedela neco jako 16F628 nebo 18F1220 s 
> 2xUART:(.
> 
> 
> S pozdravem,
> 		Marek Pavlu
> 
> // -----Original Message-----
> // From: hw-list-bounces@list.hw.cz 
> [mailto:hw-list-bounces@list.hw.cz] On // Behalf Of Michal HW 
> // Sent: Friday, August 12, 2005 10:20 AM // To: HW-news // 
> Subject: Re: SW UART18xxx - vysledek // 
> // Ten pic uz ma 2x HW UART...
> // Chtelo by to tak 4x...
> // Michal
> // ----- Original Message -----
> // From: "Marek Pavlu" <pavlu@hwg.cz>
> // To: "'HW-news'" <hw-list@list.hw.cz>
> // Sent: Friday, August 12, 2005 1:19 AM
> // Subject: RE: SW UART18xxx - vysledek
> // 
> // 
> // Zdravim,
> // 
> // Jen trosku rypalska otazka.
> // Co je cilem projektu?
> // Ja bych se s tim, pokud neni VAZNY duvod vubec nepral.
> // Nebo toho budete delay milionovou serii, ze se Vam to 
> vyplati? // Radsi tam vrazit PIC s HW UART. // 
> // 
> // S pozdravem,
> // Marek Pavlu
> // 
> // // -----Original Message-----
> // // From: hw-list-bounces@list.hw.cz 
> [mailto:hw-list-bounces@list.hw.cz]
> // On
> // // Behalf Of Michal HW
> // // Sent: Thursday, August 11, 2005 10:55 AM
> // // To: HW-News
> // // Subject: SW UART18xxx - vysledek
> // //
> // // Jak jsem jiz psal pokousim se optimalizovat SW UART.  
> 1200Bd, 20MHz. // Bezi // // v // // preruseni, nezavisle na 
> hlavnim programu. Jedno preruseni trva kolem // 30 // // 
> cyklu to je zatizeni procesoru 7%. Samotny prijem bere 
> 14-16cyklu. // Pocet // // cyklu jsem moc nesnizil, ale mam 
> vyreseno i 3x vzorkovani vstupnich // dat. // // Chci snizit 
> pocet cyklu, kvuli vyssi rychlost.Nepriklad na 9600Bd SW // 
> UART // // bere 62% vykonu. // // (Odladeno pouze v MPLABU) 
> // // // // Cas_RD1  res 1 ;pro seriový vstup // // RD1_Faze 
> res 1 ;START/data/STOP // // RD1_Buf  res 1 ;Právě přijímaný 
> BYT // // // // RD1_Data res 1 ;Tady se ukláda přijmutý BYT 
> // // RD1_Bity res 1 ;Vzorkování bitů // // 
> ;*********************************************************
> // // Navrat_ISR macro
> // //
> // //  incf RD1_Faze,F ;Dalsi fáze
> // //
> // //  dcfsnz Cas_TD,F
> // //  bra Vysilej
> // //
> // //  movff PCLATH_Temp,PCLATH
> // //  retfie FAST
> // //
> // //  endm
> // // ;---------------------------------------------------------
> // // Vysli_Navrat_Zvys macro
> // //
> // //  incf TD_Faze,F
> // //  movff PCLATH_Temp,PCLATH
> // //  retfie FAST
> // //
> // //  endm
> // // ;*********************************************************
> // // ;*********************************************************
> // // Reset_Page code
> // //  nop
> // //  bcf INTCON,GIE
> // //       goto    Start
> // // ;*********************************************************
> // // ;Přerušení jen CCP1
> // // ;Po 520 cyklech a tedy 1200/8 (20M/ CPU(4)/ TMR1(520))
> // //
> // //
> // // ISR_Code code 0x16
> // //  movff PCLATH,PCLATH_Temp
> // //
> // //  bcf PIR1,CCP1IF
> // //
> // //  clrf PCLATH
> // //  rlncf RD1_Faze,W
> // //  addwf PCL
> // //
> // // ;Start
> // //  bra Cekej_Start
> // //  bra Prijmi_Bit_Ini
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Kontrola_Start
> // //  bra Byt_Ini
> // //
> // // ;Bit0
> // //  bra Konec_Prijmu
> // //  bra Prijmi_Bit_Ini
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Zapis_B0
> // //  bra Konec_Prijmu
> // //
> // // ;Bit1
> // //  bra Konec_Prijmu
> // //  bra Prijmi_Bit_Ini
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Zapis_B1
> // //  bra Konec_Prijmu
> // //
> // // ;Bit2
> // //  bra Konec_Prijmu
> // //  bra Prijmi_Bit_Ini
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Zapis_B2
> // //  bra Konec_Prijmu
> // //
> // // ;Bit3
> // //  bra Konec_Prijmu
> // //  bra Prijmi_Bit_Ini
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Zapis_B3
> // //  bra Konec_Prijmu
> // //
> // // ;Bit4
> // //  bra Konec_Prijmu
> // //  bra Prijmi_Bit_Ini
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Zapis_B4
> // //  bra Konec_Prijmu
> // //
> // // ;Bit5
> // //  bra Konec_Prijmu
> // //  bra Prijmi_Bit_Ini
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Zapis_B5
> // //  bra Konec_Prijmu
> // //
> // // ;Bit6
> // //  bra Konec_Prijmu
> // //  bra Prijmi_Bit_Ini
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Zapis_B6
> // //  bra Konec_Prijmu
> // //
> // // ;Bit7
> // //  bra Konec_Prijmu
> // //  bra Prijmi_Bit_Ini
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Zapis_B7
> // //  bra Konec_Prijmu
> // //
> // // ;STOP
> // //  bra Konec_Prijmu
> // //  bra Prijmi_Bit_Ini
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Prijmi_Bit
> // //  bra Kontrola_Stop
> // //  bra Zapis_Byte
> // // ;---------------------------------------------------------
> // // Prijmi_Bit_Ini
> // //  clrf RD1_Bity
> // //
> // //  Navrat_ISR ;Macro
> // // ;---------------------------------------------------------
> // // Prijmi_Bit
> // //  btfsc Data_In
> // //  incf RD1_Bity,F ;3x se pocita vstupni hodnota
> // //
> // //  Navrat_ISR ;Macro
> // // ;---------------------------------------------------------
> // // Byt_Ini
> // //  clrf RD1_Buf
> // //
> // //  Navrat_ISR ;Macro
> // // ;*********************************************************
> // // ;Spouštění vysilání
> // // ;vloženo do příjmu kvůli PCLATH
> // //
> // // Vysilej bsf Cas_TD,3 ;8
> // //
> // //  rlncf TD_Faze,W
> // //  addwf PCL
> // //
> // //  bra Vysli_Cekej ;0
> // //  bra Vysli_B0 ;2
> // //  bra Vysli_B1 ;3
> // //  bra Vysli_B2 ;4
> // //  bra Vysli_B3 ;5
> // //  bra Vysli_B4 ;6
> // //  bra Vysli_B5 ;7
> // //  bra Vysli_B6 ;8
> // //  bra Vysli_B7 ;9
> // //  bra Vysli_Stop ;10
> // //  bra Vysli_Navrat_Ini ;11
> // //  bra Vysli_Navrat_Ini ;12
> // //  bra Vysli_Navrat_Ini ;13
> // //  bra Vysli_Navrat_Ini ;14
> // //  bra Vysli_Navrat_Ini ;15
> // // ;*********************************************************
> // // Konec_Prijmu
> // //  Navrat_ISR
> // // ;---------------------------------------------------------
> // // ;Cekame na START bit
> // //
> // // Cekej_Start
> // //  btfss Data_In ;Výsledek vzorkování
> // //  incf RD1_Faze,F
> // //
> // //  dcfsnz Cas_TD,F
> // //  bra Vysilej
> // //  movff PCLATH_Temp,PCLATH
> // //  retfie FAST
> // // ;---------------------------------------------------------
> // // Kontrola_Start
> // //  btfsc RD1_Bity,1 ;Výsledek vzorkování
> // //  setf RD1_Faze
> // //
> // //  Navrat_ISR
> // // 
> ;---------------------------------------------------------------------
> // // Zapis_B0
> // //  btfsc RD1_Bity,1 ;Výsledek vzorkování
> // //  bsf RD1_Buf,0
> // //  Navrat_ISR
> // // 
> ;---------------------------------------------------------------------
> // // Zapis_B1
> // //  btfsc RD1_Bity,1 ;Výsledek vzorkování
> // //  bsf RD1_Buf,1
> // //  Navrat_ISR
> // // 
> ;---------------------------------------------------------------------
> // // Zapis_B2
> // //  btfsc RD1_Bity,2 ;Výsledek vzorkování
> // //  bsf RD1_Buf,2
> // //  Navrat_ISR
> // // 
> ;---------------------------------------------------------------------
> // // Zapis_B3
> // //  btfsc RD1_Bity,3 ;Výsledek vzorkování
> // //  bsf RD1_Buf,3
> // //  Navrat_ISR
> // // 
> ;---------------------------------------------------------------------
> // // Zapis_B4
> // //  btfsc RD1_Bity,4 ;Výsledek vzorkování
> // //  bsf RD1_Buf,4
> // //  Navrat_ISR
> // // 
> ;---------------------------------------------------------------------
> // // Zapis_B5
> // //  btfsc RD1_Bity,5 ;Výsledek vzorkování
> // //  bsf RD1_Buf,5
> // //  Navrat_ISR
> // // 
> ;---------------------------------------------------------------------
> // // Zapis_B6
> // //  btfsc RD1_Bity,6 ;Výsledek vzorkování
> // //  bsf RD1_Buf,6
> // //  Navrat_ISR
> // // 
> ;---------------------------------------------------------------------
> // // Zapis_B7
> // //  btfsc RD1_Bity,7 ;Výsledek vzorkování
> // //  bsf RD1_Buf,7
> // //  Navrat_ISR
> // // ;---------------------------------------------------------
> // // Kontrola_Stop
> // //  btfss RD1_Bity,1 ;Výsledek vzorkování
> // //  setf RD1_Faze
> // //
> // //  Navrat_ISR
> // // ;---------------------------------------------------------
> // // Zapis_Byte
> // //  bcf Time_Out_Rx1 ;Přijat byt
> // //  movlw K_CAS_BYT
> // //  movwf Rx1_Cas_B
> // //
> // //  movff RD1_Buf,RD1_Data
> // //  bsf RD1_F
> // //
> // //  clrf RD1_Faze
> // //
> // //  dcfsnz Cas_TD,F
> // //  bra Vysilej
> // //  movff PCLATH_Temp,PCLATH
> // //  retfie FAST
> // // ;*********************************************************
> // // ;Vysilani dat
> // // ;---------------------------------------------------------
> // // ;Nemá co vysílat, jsou nové data?
> // // ;(Nová data z TD_Buf přesunout do TD_Shift)
> // //
> // // Vysli_Cekej
> // //  movff PCLATH_Temp,PCLATH
> // //  btfsc TD_F
> // //  retfie FAST
> // //
> // //  bsf TD_F ;Prazdný Bufer
> // //  bcf TD_Klid ;Vysiláme
> // //  movff TD_Buf,TD_Shift
> // //
> // // ;START bit
> // //  bcf Data_Out
> // //  Vysli_Navrat_Zvys
> // // 
> ;---------------------------------------------------------------------
> // // ;Datové bity
> // //
> // // Vysli_B0
> // //  btfss TD_Shift,2
> // //  bcf Data_Out
> // //  btfsc TD_Shift,2
> // //  bsf Data_Out
> // //
> // //  Vysli_Navrat_Zvys
> // //
> // // Vysli_B1
> // //  btfss TD_Shift,2
> // //  bcf Data_Out
> // //  btfsc TD_Shift,2
> // //  bsf Data_Out
> // //
> // //  Vysli_Navrat_Zvys
> // //
> // // Vysli_B2
> // //  btfss TD_Shift,2
> // //  bcf Data_Out
> // //  btfsc TD_Shift,2
> // //  bsf Data_Out
> // //
> // //  Vysli_Navrat_Zvys
> // //
> // // Vysli_B3
> // //  btfss TD_Shift,3
> // //  bcf Data_Out
> // //  btfsc TD_Shift,3
> // //  bsf Data_Out
> // //
> // //  Vysli_Navrat_Zvys
> // //
> // // Vysli_B4
> // //  btfss TD_Shift,4
> // //  bcf Data_Out
> // //  btfsc TD_Shift,4
> // //  bsf Data_Out
> // //
> // //  Vysli_Navrat_Zvys
> // //
> // // Vysli_B5
> // //  btfss TD_Shift,5
> // //  bcf Data_Out
> // //  btfsc TD_Shift,5
> // //  bsf Data_Out
> // //
> // //  Vysli_Navrat_Zvys
> // //
> // // Vysli_B6
> // //  btfss TD_Shift,6
> // //  bcf Data_Out
> // //  btfsc TD_Shift,6
> // //  bsf Data_Out
> // //
> // //  Vysli_Navrat_Zvys
> // //
> // // Vysli_B7
> // //  btfss TD_Shift,7
> // //  bcf Data_Out
> // //  btfsc TD_Shift,7
> // //  bsf Data_Out
> // //
> // //  Vysli_Navrat_Zvys
> // // 
> ;---------------------------------------------------------------------
> // // ;Nové data se testují pouze na začátku vysílací rutiny, 
> // // ;takže pro zjištění konce vysílání se musí zkusit oba 
> bity TD_F a // TD_Klid // // // // Vysli_Stop // //  bsf 
> Data_Out ;Stop bit // //  bsf TD_Klid ;Nevysílá se // // // 
> // ; bra Vysli_Navrat_Ini // // 
> ;---------------------------------------------------------
> // // ;Navrat z ISR
> // //
> // // Vysli_Navrat_Ini
> // //  clrf TD_Faze
> // //
> // // Vysli_Navrat
> // //  movff PCLATH_Temp,PCLATH
> // //  retfie FAST
> // // ;*********************************************************
> // //
> // // _______________________________________________
> // // HW-list mailing list  -  sponsored by www.HW.cz
> // // Hw-list@list.hw.cz
> // // http://list.hw.cz/mailman/listinfo/hw-list
> // ---
> // avast! Antivirus: Odchozi zprava cista.
> // Virova databaze (VPS): 0532-3, 10/08/2005
> // Testovano: 11.8.2005 20:18:03
> // avast! (c) copyright 2000-2003 ALWIL Software.
> // http://www.avast.com
> // 
> // 
> // 
> // 
> // _______________________________________________
> // HW-list mailing list  -  sponsored by www.HW.cz
> // Hw-list@list.hw.cz
> // http://list.hw.cz/mailman/listinfo/hw-list
> // 
> // _______________________________________________
> // HW-list mailing list  -  sponsored by www.HW.cz
> // Hw-list@list.hw.cz
> // http://list.hw.cz/mailman/listinfo/hw-list
> ---
> avast! Antivirus: Odchozi zprava cista.
> Virova databaze (VPS): 0532-5, 12/08/2005
> Testovano: 13.8.2005 2:19:41
> avast! (c) copyright 2000-2003 ALWIL Software. http://www.avast.com
> 
> 
> 
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz 
> Hw-list@list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list
> 




Další informace o konferenci Hw-list