Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

RS232 i pic16f84

[es] :: Elektronika :: Mikrokontroleri :: RS232 i pic16f84

[ Pregleda: 2471 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Marko1991
N.Beograd

Član broj: 203898
Poruke: 63
*.dynamic.isp.telekom.rs.



Profil

icon RS232 i pic16f8420.07.2012. u 18:00 - pre 143 meseci
Napisao sam kod za komunikaciju izmedju PC i uC(slanje i prijem).
E sad radi samo slanje a prijem ne mogu da isprobam posto ne znam kako da u hyperterminalu otkucam nesto
pa vam saljem kod da pogledate da li je ok ono sto sam pisao i da li bi mogao da bude optimizovaniji.

Code:

void salji(char poruka[])
{
 char pom;
 unsigned short i,br;
 for(i=0;i<strlen(poruka);i++)
 {
  RB5_bit=0;     //start bit
  Delay_us(104);
  pom=poruka[i];
  br=0;
  while(br<8)
  {
    RB5_bit=pom;
    Delay_us(101);    //101us zbog pomeranja koje traje 1us, inkrementacije 0.5us i povratka na pocetak 1us.
    pom>>=1;
    br++;
  }
    RB5_bit=1;    //stop bit
    Delay_us(104);
 }
}
void main() {
       char poruka[]="Unesi broj ";
       char prijem[7];
      // char pom;
       unsigned short i;//,br;
       TRISA=0x00;
       PORTA=0x00;
       TRISB=0x04;     //Drugi pin PORTB je ulazni(RX)
       PORTB=0x24;     //Pinovi 2 i 5 su postavljeni na visok nivo(stop bit za TX i RX)
       
       //Slanje podataka(na 5. pin PORTB)
       salji(poruka);
       //Prijem  podataka(na 2. pin PORTB)
       while(1)
       {
               if(RB2_bit==0)        //Da li je stigao START bit na pin 2?
               {
                Delay_us(52);        //Jeste, saceka 52us da bit dodje do pola
                if(RB2_bit==0)       //Proveri jos jednom da li je u pitanju START bit
                {
                  for(i=0;i<strlen(prijem);i++)
                  {
                   Delay_us(104);                  //Jeste, saceka 104us da dodje na pola I bita
                   prijem[i]=RB2_bit;              //i smesti ga u niz, ponovi ovo za ostale bitove
                  }
                }
                   salji("Posalo si broj ");
                   salji(prijem);
               }
       }
}


 
Odgovor na temu

Djokata
Elektrogas
Vrbas

Član broj: 254775
Poruke: 24
*.dynamic.sbb.rs.



Profil

icon Re: RS232 i pic16f8420.07.2012. u 18:30 - pre 143 meseci
e ovo ti link za jedan programcic za rad sa serijal portom, mislim da je pregledniji od hiperterminala.
www.elektronika.ba/509/serial-port-ng-soft/
znam da nije odgovor na tvoje pitanje al moze da pomogne.
pozdrav
 
Odgovor na temu

wlada_85
Vladimir Djokovic

Član broj: 135156
Poruke: 304
*.dynamic.isp.telekom.rs.



+2 Profil

icon Re: RS232 i pic16f8421.07.2012. u 16:45 - pre 143 meseci
Hajde da se i ja prikljucim malo ovoj temi... evo da napishem kako se koristi hyperterminal, pokrenesh terminal, (recimo onaj u winu shto imash), onda mu tamo podesish ono regija, pozivni kod (manalupaj neshto), e onda posle toga mislim da idesh na new conn. tu recimo upishesh test, onda OK, onda odaberesh port... Onda podesish parametre porta, baud rate, broj bitova, parity, stop bits ... itd ... I onda kucash... Ja recimo volim da mi mikrokontroler odmah vraca informaciju koju sam otkucao, a moze i bez ovoga... A ima negde opcija da se ukljuchi EHO, odnosno da terminal odmah ispisuje ono shto kucash pa da pose josh dodatno otkuca i povratnu informaciju koju ti shalje mikrokontroler... :)

Nego da postavim ono shto mene zanima, jer sam pravio istu stvar... pravio sam program koji uzastopno chita odredjen broj cifara (recimo 10 cifara), ali kad mi mikrokontroler vrati informaciju o tih 10 cifara, on mi na kraju stavi josh dodatno ili razmak ili kvadratic... Gledao sam u ASCII 00000100 EOT (End of Transmission) odnosno kraj transmisije... Ja mu ne shaljem nishta za kraj transmisije, pa mi nije jasno odakle on to pokupi ??? o.O Ako bi moglo ovde objashnjenje... HVALA
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: RS232 i pic16f8421.07.2012. u 16:51 - pre 143 meseci
ako koristis 16F84 "zato sto taj imas", prodaj ga na limundu nekom papanu i kupi neki mcu koji ima hardwerski uart i nemoj da gubis vreme na gluposti.. imas pin2pin kompatiblne mcu-e sa tim arhaicnim cipom koji su 2-3 puta jeftiniji od doticnog a imaju hardwerski uart
 
Odgovor na temu

wlada_85
Vladimir Djokovic

Član broj: 135156
Poruke: 304
*.dynamic.isp.telekom.rs.



+2 Profil

icon Re: RS232 i pic16f8421.07.2012. u 16:57 - pre 143 meseci
Citat:
bogdan.kecman:
ako koristis 16F84 "zato sto taj imas", prodaj ga na limundu nekom papanu i kupi neki mcu koji ima hardwerski uart i nemoj da gubis vreme na gluposti.. imas pin2pin kompatiblne mcu-e sa tim arhaicnim cipom koji su 2-3 puta jeftiniji od doticnog a imaju hardwerski uart



Vrlo zanimljivo reshenje, ma meni nije cilj izrada nekog ozbiljnog projekta, nego sam josh malo i odradio sve vezano za 16F84, odnosno sve ono shto ima u njemu ukljuchio i video shta radi... Sad poshto sam pre neki dan kupio crknuti 16F628 onda chekam radan dan da kupim drugi, valjda necu biti opet loshe srece... Ali eto, primetih ovu stvar vezanu za RS232 pa rekoh da pitam... :)

Sad shto se kolege tiche, neka odluchi da li ce da nastavi sa F84 ili da prelazi na nesh drugo... :)
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: RS232 i pic16f8421.07.2012. u 17:07 - pre 143 meseci
'84 je preskupo parce silikona koji je pre 30 godina bio hit ali danas je samo preskupo parce silikona .. za te pare danas uzmes 32bitni mcu ..

za tvoj EOT, sta koristis kao RS232 receiver? Neki usb2serial ili imas pravi RS232? Ako koristis usb2serial oni salju podatke u "paketima" moguce da si dobio kraj tog paketa, no to ne bi trebalo da se desava, moguce da je problem do drajvera .. a moguce da saljes EOT sa mcu-a samo nisi svestan .. bez sorsa mozemo samo da se uvatimo za prsten da nam se javi :)
 
Odgovor na temu

wlada_85
Vladimir Djokovic

Član broj: 135156
Poruke: 304
*.dynamic.isp.telekom.rs.



+2 Profil

icon Re: RS232 i pic16f8421.07.2012. u 17:57 - pre 143 meseci
Aj da zanemarimo MCU, vishe me zanima rachunar... Da kazem da je to jedan rachunar ABIT kv7 plocha na njemu ima RS232 LPT... Ono shto mene zanima je (vec si mi jednim delom dao odgovor) kako izgleda informacija koju rachunar poshalje... Znachi ako se koristi usb->rs232 on hoce da pakuje da tako kazem podatke u neka zaglavlja ... A ako je direktno onda ne pakuje ??? Mislim, moguce je da je ovo na mom MCU chista sluchajnost, ali eto postavih pitanje... :)

Da sumiram, a ispravite me ako nije tachno...

RS232 on ako recimo poshaljem podatak 123, on ce za svako od ovih cifara uzeti binarnu predstavu i slace jedan po jedan i dodace start i stop bit na svaki koji shalje (ako ne definishem parity, i ostalo... ) recimo startbit 1 stopbit startbit 2 stopbit ...

A usb2serial on bi recimo to slao "startbit 1 stopbit startbit 2 stopbit" ... (gde su navodnici neko zaglavlje) ....

A usb on shalje zaglavlja ... "1" "2" ...

(mada sad mi palo napamet da ovaj terminal koji koristim ima svashta mozda i on iz nekog razloga na kraju generishe EOT) moram pogledati podeshavanja... U svakom sluchaju HVALA ...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: RS232 i pic16f8421.07.2012. u 19:21 - pre 143 meseci
bajt se salje uvek isto, start bit, data bitovi, parity bit, stop bit, to je HW layer i on uvek izgleda identicno. SW layer je druga prica i posto CDC profil za usb radi malo drugacije od "pravog" seriskog porta on propusta pakete a ne bajtove tako da zavisno od toga kako saljes podatke on ce ih pakovati u razlicite pakete. Sada, zavisno od drajvera i same implementacije cdc protokola ti mozes da dobijes EOT ili ne. Mogu da ti kazem npr da FTDI usb2serial NE salje EOT. Dalje postoji varijanta sa razlicitim terminal programima koji "simuliraju" EOT te ako pri citanju sa seriskog porta procitaju manje nego sto je bafer oni dodaju EOT.. to sam vidjao na nekim njindoze klijentima, na linuxu toga nema... Odakle se kod tebe javlja EOT mogu samo da pretpostavim ali
- ili ga salje sam MCU (ako imas sors koji salje podatke pogledaj)
- ili ga generise usb drajver
- ili ga generise tvoj terminal program

Sigurno se "ne generise sam od sebe" :)
 
Odgovor na temu

Marko1991
N.Beograd

Član broj: 203898
Poruke: 63
*.dynamic.isp.telekom.rs.



Profil

icon Re: RS232 i pic16f8421.07.2012. u 21:17 - pre 143 meseci
Podesio sam sve, cak sam i eho stavio ali i dalje to ne stize do uC, ali poruka uredno stigne iz uC na PC. Koristim bas r232 na rs232(imam easypic6 i iz rs232 porta ploce kablom povezem rs232 na PC).
A za 84 sam se odlucio posto sam cuo da je dobar za biginera, od prilike sam naucio da radim sve sa njim, ostalo je jos rs232, alfanumericki displej, upis i citanje iz njegove memorije i tajmer i onda prelazim na 16f887.
Da li uvidjate neku gresku u delu koda za slanje sa PC-a na uC?
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: RS232 i pic16f8421.07.2012. u 21:27 - pre 143 meseci
Citat:
Marko1991:
Podesio sam sve, cak sam i eho stavio ali i dalje to ne stize do uC, ali poruka uredno stigne iz uC na PC. Koristim bas r232 na rs232(imam easypic6 i iz rs232 porta ploce kablom povezem rs232 na PC).

znaci da ti software na pic-u ne valja

Citat:
Marko1991:
A za 84 sam se odlucio posto sam cuo da je dobar za biginera,

pogresna preporuka ljudi koji su pre 30 godina izgubili dodir sa vremenom... vrlo zaostao preskup mikrokontroler


Citat:
ostalo je jos rs232, alfanumericki displej, upis i citanje iz njegove memorije i tajmer i onda prelazim na 16f887.
Da li uvidjate neku gresku u delu koda za slanje sa PC-a na uC?


to sto ces sa njim da radis rs232 je gubljenje vremena posto svaki normalan mcu ima hardwerski uart port tako da celo to maltretiranje koje pravis tu nema nikakve potrebe. Nasetujes uart i ubacis bajt u port i on ga posalje, os interapt kad mu je prazan bafer, kad je stigo bajt .. sta oces, sve radi "samo od sebe" .. nemoj da gubis vreme sa zastarelom tehnologijom nista korisno neces nauciti, ima mnogo korisnijih stvari na koje mozes da potrosis vreme.... za kod na uc-u, ja necu da ga gledam (ne zelim ni ja da gubim vreme sa beskorisnim kodom, ako ima neko zaludan neka gleda).. zabodi taj 887 u taj easypic a taj '84 baci kroz prozor, to je korisnije nego da gubis vreme sa njim (ili ga prodaj nekom papanu pa neka on gubi vreme, kao sto ag je tebi neko uvalio)
 
Odgovor na temu

wlada_85
Vladimir Djokovic

Član broj: 135156
Poruke: 304
*.dynamic.isp.telekom.rs.



+2 Profil

icon Re: RS232 i pic16f8421.07.2012. u 22:37 - pre 143 meseci
Evo da ti pomognem malo...

Shta ti odredjuje start bit ??? Znachi shta ti odredjuje sam trenutak kad on treba da broji????
Drugo, za koji BAUDRATE si podesio prijem ?? Taj baudrate morash da podesish na terminalu... :) Terminal ako se ne varam moze da se prilagodi podatku koji prima, ali podatak koji ti shaljesh mora imati onaj baudrate koji si podeshavao u tim petljama...



koliko ovako na oko vidim program solidno je napisan, ali ne znam ja da li ta delay petlja radi poso ??? ja sam pisao petlju i brojao taktove... I za sad radi samo shto i nekako generishe EOT... :)

Predhodni program koji sam pisao je lepo radio ali je primao samo jednu cifru a sad sam napravio da moze da primi 10 cifara od jednom .... Pa sam onda pomislo da mozda to pakuje .. Ali izgleda da mi neka petlja malo poremecena (otkucam 9 cifara 123456789 i kad stavim eneter, on mi vrati 10 cifara sa tim shto je zadnja EOT a to nije radio dok je bio podeshen da prima samo jednu cifru... Ma ko ce ga znati shta se deshava, tako da necu u to da ulazim...) ... Sem ako nije terminal neshto pobrljavio...

drugo, recimo, ako si ti stavio petlju koja odlaze 50ms npr... i ako ti je takt 1ms a ti posle te petlje od 1m stavish 5 naredbi koje se izvrshavaju po 2ms onda je tebi ukupno kashnjenje 60ms a to nece odgovarati baudu koji si prorachunavao...

preporuchujem ti da prvo nacrtash rs232 signal, a onda lepo da napishesh petlju koja ce da ti chita podatke na ulazu, cela petlja mora da se zavrshi zavreme trajanja jednog bita... (ovo u debager pa polako koliko vremena treba), a onda kad to natrimujesh, onda ako chitash 10 bitova po 50ms ukupno vreme za to ti je 500ms ...

kako da ti josh uprostim, ako recimo bit krene sad, to sad morash da detektijesh, recimo interaptom ...

Onda od tog sad mora da prode odredjeni broj mikrosekundi, (zavisi od baudrate) koji ce te dovesti na polovinu signala ili tako negde gde cesh da proverish da li je to stvarno to ...

E onda posle se pomerash za vreme trajanja jednog bita, ali pazi u to vreme moraju da ti budu urachunate sve instrukcije... jer ako recimo se neka instrukcija izvrshava 5us, a recimo vreme izmedju dva bita je 20us onda od provere do provere maltene ne mozesh da izvrshish tu instrukciju od 5us ... :)


UH...

evo ti HEX ovoga shto sam ja zadnje radio, pa probaj... fora je da on za ulaz ima RB0, za izlaz RA0 ... a ostali rb bitovi kao neshto trepere u glavnom programu ... Sve u svemu kad poshaljesh 10 bitova on treba da ti vrati tih 10 bitova... :)
Prikačeni fajlovi
 
Odgovor na temu

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4543

ICQ: 8713400
Sajt: www.justfuckinggoogleit.c..


+530 Profil

icon Re: RS232 i pic16f8421.07.2012. u 23:18 - pre 143 meseci
@Marko1991: Auuuu F84 dobar za beginner-a
Sledeći put operi uši i zatraži da ti se ponovi informacija o tome koji je PIC-onja dobar za početnika.
Npr. 16F887 je samo 10 dindži skuplji od 16F84A, a ima ašaša više fleša, EEPROM-a, hardvera u sebi nego F84, za koji ti je Bogdan lepo napisao šta je (preskupo parče silicijuma).

@wlada_85: Maneš se mlaćenja prazne slame sa brojanjem instrukcija i iskoristiš HW U(S)ART na nekom novijem kontroleru. Manje ima da te boli glava. A taj EOT koji ti se javlja je posledica tvog programa u PIC-onji, nema veze sa terminalskom aplikacijom na računaru.
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
 
Odgovor na temu

wlada_85
Vladimir Djokovic

Član broj: 135156
Poruke: 304
*.dynamic.isp.telekom.rs.



+2 Profil

icon Re: RS232 i pic16f8421.07.2012. u 23:22 - pre 143 meseci
Citat:
ZAS011:
@Marko1991: Auuuu F84 dobar za beginner-a
Sledeći put operi uši i zatraži da ti se ponovi informacija o tome koji je PIC-onja dobar za početnika.
Npr. 16F887 je samo 10 dindži skuplji od 16F84A, a ima ašaša više fleša, EEPROM-a, hardvera u sebi nego F84, za koji ti je Bogdan lepo napisao šta je (preskupo parče silicijuma).

@wlada_85: Maneš se mlaćenja prazne slame sa brojanjem instrukcija i iskoristiš HW U(S)ART na nekom novijem kontroleru. Manje ima da te boli glava. A taj EOT koji ti se javlja je posledica tvog programa u PIC-onji, nema veze sa terminalskom aplikacijom na računaru.



To mi je stavka od ponedeljka samo da dodjem do ispravnog chipa... Jer u temi pored ove sam napisao da sam kupio neispravan chip ... :)
 
Odgovor na temu

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4543

ICQ: 8713400
Sajt: www.justfuckinggoogleit.c..


+530 Profil

icon Re: RS232 i pic16f8421.07.2012. u 23:30 - pre 143 meseci
Jedino što nisinapisao GDE si kupio 'neispravan' kontroler. Ako je *undo ili *indo ondak, šta da ti kažem,... Ako je u radnji, lepo vratiš i tražiš da ti zamene za novi.
Meni se još ni jednom nije dogodilo da upazarim neispravan kontroler, a kupovao sm ih na stotine do sada.
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
 
Odgovor na temu

wlada_85
Vladimir Djokovic

Član broj: 135156
Poruke: 304
*.dynamic.isp.telekom.rs.



+2 Profil

icon Re: RS232 i pic16f8422.07.2012. u 00:01 - pre 143 meseci
ne bih da reklamiram .. U radnji sam kupio ... :)
 
Odgovor na temu

Marko1991
N.Beograd

Član broj: 203898
Poruke: 63
*.dynamic.isp.telekom.rs.



Profil

icon Re: RS232 i pic16f8422.07.2012. u 01:41 - pre 143 meseci
Aj mucicu se jos malo sa ovim pa cu preci na 887. Kad sam poceo da se interesujem za kontrolere rekli su mi 84 za pocetak ali ako nadjem jos bolji je PIC16F628, u fazonu isti je kao 84 ali ima vise funkcionalnosti. Ali ja sam nasao samo 84 i kupio poslednja 2 komada u toj radnji za 1300rsd, a 887 sam dobio za dz uz easypic6. Isto su mi rekli za pocetak da radim asembler al me je smorio pa sam presao na C, posto ga sve jedno ucim na visoj pa su mi poznate naredbe i sintaksa. Vama hvala u svakom slucaju za ulozen trud. Ako imate jos koji savet za dalje ucenje samo pisite.
 
Odgovor na temu

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4543

ICQ: 8713400
Sajt: www.justfuckinggoogleit.c..


+530 Profil

icon Re: RS232 i pic16f8422.07.2012. u 02:27 - pre 143 meseci
Eto, vidiš, uz razvojni sistem si dobio 887, a bacio si silne pare na 84
Već 628A za razliku od 84 ima interni oscilator koji radi na 4 MHz, 887 interni koji možeš da podešavaš u rasponu od 32 kHz do 8 Mhz, ima USART, SPI, I2C, ..... a ti počeo da se zlopatiš sa 84.
Bilo je to interesantno pre 20-ak godina, sada je situacija mnogo drugačija.
Ono štoćeš inače morati da radiš je čitanje datasheet-ova da bi mogao uspešno da konfigurišeš kontroler prema svojim potrebama.
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
95.180.61.*

Sajt: mysql.rs


+2377 Profil

icon Re: RS232 i pic16f8422.07.2012. u 05:10 - pre 143 meseci
cek ba ti imas easypic .. da li si probao taj neispravan 628A da stavis u easypic6? On ima svoj programator koji je ok i sigurno radi.
 
Odgovor na temu

wlada_85
Vladimir Djokovic

Član broj: 135156
Poruke: 304
*.dynamic.isp.telekom.rs.



+2 Profil

icon Re: RS232 i pic16f8422.07.2012. u 07:55 - pre 143 meseci
Citat:
bogdan.kecman:
cek ba ti imas easypic .. da li si probao taj neispravan 628A da stavis u easypic6? On ima svoj programator koji je ok i sigurno radi.


Ja imam problem sa neispravnim kontrolerom ... ;) Nemam izija.. :D
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: RS232 i pic16f8422.07.2012. u 09:26 - pre 143 meseci
ah sorry, nespavanje uzima danak
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: RS232 i pic16f84

[ Pregleda: 2471 | Odgovora: 19 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.