| Auteur | Bericht |
|---|
winit_a
Lid geworden: 16 november 2003 Posts: 17
| 15 feb 2004 5:42 How to Create UART met software (niet gebruikt SBUF) over 8051 | | |
|
| How to Create UART Met software? Mijn project Gebruikt 3 UART (normaal hebben 1 UART met hardware P3.0 en P3.1)
8051 MCU@11.0592MHz How to Create UART gebruikt P1 naar P2 of interface RS-232 |
|
| Terug naar boven | |
 |
pisoiu
Lid geworden: 31 december 2002 Posts: 723 Geholpen: 24 Locatie: Roemenië
| 15 feb 2004 11:58 Re: How to Create UART met software (niet gebruikt SBUF) over 8051 | | |
|
| Hoi, Mijn advies: het is verdomd moeilijk. U moet dit doen met behulp van interrupts, maar 8051 is een relatief traag controller, de prestatie blijft onder 1mips op 11,0592 MHz klok voor klassieke 8051 versies (1instruction cyclus = 12 klok cyclus). Meer dan een seriële poort geïmplementeerd in software zal eten bijna alle processor tijd, vooral als je wilt gaan tot 115200bps met de havens, of als u wilt implementeren van alle mogelijke parameters (6/7/8 databits selecteble, 1 / 2 stopbits, pariteit oneven / zelfs / merk / ruimte / geen, flow control selecteerbaar xon-xoff/hard/none). Mijn sugestion is het gebruik van een gemodificeerde architectuur 8051 van cipres, of gebruik te maken van een microcontroller scenix (www.ubicom.com). Voor scenix controller ik kan code voor 8 uarts tegelijk. Dit als u een software-implementatie. Als Yau willen hardware, kunt u gebruik maken van max3100 (Maxim).
Beste, |
|
| Terug naar boven | |
 |
Google AdSense

| 15 feb 2004 11:58 advertenties | | |
|
|
|
|
| Terug naar boven | |
 |
Ajay
Lid geworden: 29 februari 2004 Posts: 31
| 01 maart 2004 0:10 Re: How to Create UART met software (niet gebruikt SBUF) over 8051 | | |
|
| Je kunt maken een UART (in aanvulling op het gebruik van de SBUF) door middel van een timer en schrijven zeer snel code te draaien beetje. Aan de inkomende kant (RXD), moet u een interrupt pin. Wanneer de onderbreking komt, begin je timers en lees de pin-status in voeren, draaien en het maken van uw inkomende bytes. Werkt goed tot 9600 Baud (ik heb gebruikt).
Echter, twee meer op hetzelfde moment? Vergeet het maar. Zelfs als u twee speciale timers, interrupt routines zo groot dat je mist bits.
Als u op zoek bent voor langzaam UARTs (1200 Baud of minder), dan wordt deze techniek werkt voor maximaal 2 UART's. Houd er rekening mee dat u zal geven alle drie timers (een gebruikt voor baudrate gen voor SBUF, een voor poort 1 en een voor de haven 2 timing), alsmede de interrupts.
Dus, beter ontwerp is het gebruik van een ARM chip met twee UART's (Ik heb 2 extra UARTs op 19200 Baud met een ARM) of gebruik de Rabbit-controller of een dergelijke zaak.
Ajay |
|
| Terug naar boven | |
 |
beuch
Lid geworden: 06 juni 2001 Posts: 65 Locatie: Frankrijk
| 03 maart 2004 14:45 Re: How to Create UART met software (niet gebruikt SBUF) over 8051 | | |
|
| Hoi,
eens kijken naar de bijgevoegde bestand van Philips web AN.
AN446
dag
|
|
| Terug naar boven | |
 |
crazytnt
Lid geworden: 02 februari 2004 Posten: 8
| 03 maart 2004 17:43 Re: How to Create UART met software (niet gebruikt SBUF) over 8051 | | |
|
| Het is erg moeilijk. Wijzen op het gebruik van hardware. |
|
| Terug naar boven | |
 |
J_expoler2
Lid geworden: 10 mei 2003 Posts: 179 Geholpen: 19
| 03 maart 2004 18:00 Re: How to Create UART met software (niet gebruikt SBUF) over 8051 | | |
|
| Hoi Ik heb een idee UART maar u gegevens slechts met behulp van de timer 0 bits T232 als TxD MOV TMOD, # 22h MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ; ; ; ; functie stuurt gegevens: CLR T232; START-BIT SETB TR0 MOV R7, # 8
TX_LOOP: RRC A JNB TF0, $ MOV T232, C CLR TF0 DJNZ R7, TX_LOOP JNB TF0, $ SETB T232; stopbit CLR TF0 JNB TF0, $ RET zij misschien helpen u BR. |
|
| Terug naar boven | |
 |
fireplus
Lid geworden: 31 oktober 2003 Posts: 195 Geholpen: 5
| 04 maart 2004 3:29 Re: How to Create UART met software (niet gebruikt SBUF) over 8051 | | |
|
| Probeer dat
[hr: 5c6e3c7296] Brand in de Wire: SM2:
|
|
| Terug naar boven | |
 |
Ajay
Lid geworden: 29 februari 2004 Posts: 31
| 08 maart 2004 12:28 Re: How to Create UART met software (niet gebruikt SBUF) over 8051 | | |
|
| | J_expoler2 schreef: | Hoi Ik heb een idee UART maar u gegevens slechts met behulp van de timer 0 bits T232 als TxD MOV TMOD, # 22h MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ; ; ; ; functie stuurt gegevens: CLR T232; START-BIT SETB TR0 MOV R7, # 8
TX_LOOP: RRC A JNB TF0, $ MOV T232, C CLR TF0 DJNZ R7, TX_LOOP JNB TF0, $ SETB T232; stopbit CLR TF0 JNB TF0,$ RET zij misschien helpen u BR. |
Dat is alleen goed voor het doorgeven. Probleem komt wanneer u probeert te ontvangen zijn. Ten eerste, deze methode zal nooit werken voor full duplex operatie, tenzij u twee VERSCHILLENDE timers.
Bovendien is voor het ontvangen, moet u gebruik maken van een hardware-interrupt die precies start de timer op het juiste moment en zal dan helpen verschuiving van de gegevens. Nogmaals, deze methode is alleen goed als een half duplex communicatie.
Een andere complexiteit komt voort uit het feit dat de interrupt routines geworden lang en zal problemen veroorzaken bij de ontbrekende stukjes. Houd er rekening mee dat de fout zal accumuleren gedurende een periode van tijd!
De beste manier is gebruik te maken van een chip die meer seriële poorten (ARM, uPSD uit ST enz.)
Ajay |
|
| Terug naar boven | |
 |