rozdily v obsluze serialu 8051 vs 8052
Milan
milger@pobox.sk
Čtvrtek Červen 2 11:20:56 CEST 2005
Neviem aku mas metodiku testovania.
Ale ja by som nastavil BeakPoint /resp nieco jednoznacne, napr. rozsvietenie
LED/ priamo na vektor prerusenia od UARTu /miesto volania obsluznej rutiny/,
inicializoval UART a cakal donekonecna (while(1);). Prelozil, skontroloval
ci vygenerovany ASM robi to co chcem, napalil, spustil a potom RX pin na IO
skrtol o zem. Podla vysledku by som sa rozhodol bud vymenit IO alebo hladat
chybu v SW.
Ak vymenis IO a prerusenie sa stale neaktivuje, tak sa mozes utesit
myslienkou ze nie si jediny blbec lebo pricinu nevieme viaceri a najlepsie
bude precitat si DataSheet daneho cipu.
Milan
----- Original Message -----
From: "Prichy" <prichy@volny.cz>
To: "HW-news" <hw-list@hw.cz>
Sent: Thursday, June 02, 2005 10:57 AM
Subject: Re: rozdily v obsluze serialu 8051 vs 8052
prehazel jsem to jak to mate vy - > bohuzel nepomaha
diky za nazor
Milan napsal(a):
>Niekde to pouzivam takto:
> SCON = 0x50; //en.Rx;8-b UART variable baud rate
> TMOD = 0x21; //8-b autoreload TIMER 1, 16-b TIMER 0
> TH1 = 0xf5; //serial baudrate = 10MHz/(384*(256-TH1)) = 2367Bd
> TL0 = (unsigned char)Tcnt;
> TH0 = (unsigned char)Tcnt>>8;
> TCON = 0x50; //TIMER 0,1 run
> IEN0 = 0x92; //ser.p.INT enable, TIMER 0 INT enable
> IP0 = 0x10;
> EAL = 1; //INT enable
>
>void SERIAL_INT (void) interrupt 4
>{
> if (RI) //data received
> {
> if (fifoM<SizeFIFObuff-1) {fifoM++;}
> else {fifoM = 0;}
> BuffIn[fifoM] = SBUF;
> RI = 0;
> }
> if (TI) //data transmited
> {
> ti_en = 0;
> TI = 0;
> }
>}
>
>Timer 0 riesi nieco ine, ale inak to cele funguje. Nic ma nenapada, skus
>zmenit poradie pri inicializacii /mozno to chce naskor pustit hodiny pre
>UART a az potom povolit prerusenie/ alebo vymen obvod.
>
>Mila
>
>
>
>n
>----- Original Message -----
>From: "Prichy" <prichy@volny.cz>
>To: "HW-news" <hw-list@hw.cz>
>Sent: Thursday, June 02, 2005 8:28 AM
>Subject: rozdily v obsluze serialu 8051 vs 8052
>
>
>Zdravim.
>
>Nefunguje mi prijem od serialu na 8052.
>
> SCON = 0x50; /*inicializace serialu 9600 baud pri 11.059MHz*/
> TMOD |= 0x21; //nastaveni modu casovace 0 a 1
> TH1 = 0xFD;
> TR0 = 1; // start timer 0
> ET0 = 1; // enable timer 0 interrupt
> ES = 1; // enable serial interrupt
> PS = 0; // set serial interrupts to
>hi priority
> EA = 1; // global interrupt enable
> TR1 = 1; // start timer 1
>
>
>zde je inicializace, pouzivam casovac 1,
>pri krokovani v simulatoru (u*V*i*s*i*o*n) vse funguje
>na HW neprima nic ze serialu (asi, nemam emulator, abych
>zjistil presne co se tam deje) (REN mam nahozeny)
>Pokud ovsem nahodi TI prijme vse celkem v pohode. (TI nesmim vynulovat)
>Z toho usuzuji, ze vubec nedojde k preruseni od prijmu.
>
>v PC mam seriak nastaven na 9600 1sb. bez parity.
>
>Jsem si vedom, ze je to dotaz typu UB (uplne blby),
>ale uz se v tom tak nejak placam a tocim v uzavrenem
>kruhu,
>
>static void com_isr (void) interrupt 4 using 2
>{
>
>if (RI != 0)
> {
> RI = 0;
> buf[buf_count] = SBUF;
> if (buf[buf_count]=='\r'){ ES=0;} // zastaveni serioveho kanalu
> buf_count++;
> serial_count= 20;}
>
>}
>
>
>pro uplnost obsluha preruseni (na vysilani nepouzivam)
>
>dekuji za pripadne rady a stydim se :-)
>
>
>Prichy
>
>PS: neni to rozdilem mezi 8051 a 8052, docetl jsem se, ze
>casovac 2 muze byt pouzit ke generovani prenosove rychlosti
>ale nemusi, tak jsem vse nechal jako na 8051
>
>
>_______________________________________________
>HW-list mailing list - sponsored by www.HW.cz
>Hw-list@list.hw.cz
>http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
>
>
>__________ Informacia od NOD32 1.1014 (20050301) __________
>
>Tato sprava bola preverena antivirusovym systemom NOD32.
>http://www.eset.sk
>
>
>_______________________________________________
>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
__________ Informacia od NOD32 1.1014 (20050301) __________
Tato sprava bola preverena antivirusovym systemom NOD32.
http://www.eset.sk
Další informace o konferenci Hw-list