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