SW UART18xxx - vysledek

Marek Pavlu pavlu@hwg.cz
Neděle Srpen 14 02:29:48 CEST 2005


Zdravim,

Me by stacil i zminovany 2xUART, ale v nejakem prihodnem PICu.
Jenze 2xUART maji az prilis vykonne verze, zbytecne moc drahe, zbytecne moc
nozicek, zbytecne moc pameti:).
Takovy 18F1220 kdyby mel UARTy 2, tak mam hnedle do site postavene na
linkove vrstve RS485 jednoduchou a mirne inteligentni Gate mezi nody:).
Asi skoncim v tomto smeru u eZ8:).



S pozdravem,
		Marek Pavlu

// -----Original Message-----
// From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On
// Behalf Of Pavel Kořenský
// Sent: Saturday, August 13, 2005 7:10 PM
// To: 'HW-news'
// Subject: RE: SW UART18xxx - vysledek
// 
// 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
// >
// 
// _______________________________________________
// 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-6, 13/08/2005
Testovano: 14.8.2005 2:17:55
avast! (c) copyright 2000-2003 ALWIL Software.
http://www.avast.com







Další informace o konferenci Hw-list