RS232 med PIC 12C509

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
tops
Inlägg: 93
Blev medlem: 13 januari 2004, 08:46:51
Ort: Sollentuna

RS232 med PIC 12C509

Inlägg av tops »

Hej.
Letar efter exempelkod i C för att skriva en subrutin för kommunikation med mellan en PIC 12c509 och datorns serieport. Har hittat lite för tex 16f877, men denna har vad jag förstått ett inbyggt protokoll för rs 232.
Hur gör man för att sätta upp en fungerande konfiguration med 12c509?
Jag har PIC C kompilatorn.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Du måste lösa dessa med inline assambler för att få till timingen korrekt ELLER om det finns någon SW-rutin i din C-kompilator.
Användarvisningsbild
Jeppsson
EF Sponsor
Inlägg: 810
Blev medlem: 3 oktober 2005, 18:00:43
Ort: Karlskrona

Inlägg av Jeppsson »

Annars om du inte känner för att leka Assembler så finns det "Software UART Library" i MikroC...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Vad är anledningen till att du använder just 12C509 ?
Alltså en OTP modell ?
Allt skulle bli så mycket enklare för dig om du använde en modernare
8-pinnars PIC. 12F675, 629 eler 683 beroende på vad du behöver...

> Har hittat lite för tex 16f877, men denna har vad jag förstått ett inbyggt protokoll för rs 232.

Den har inbyggd *hårdvara* for asynkron seriel kommunikation (USART).
*Ingen* PIC (som jag känner till) har hårdvara för RS232.
Användarvisningsbild
tops
Inlägg: 93
Blev medlem: 13 januari 2004, 08:46:51
Ort: Sollentuna

Inlägg av tops »

Hej.
Tack för era svar, jag är rätt grön på området, så därfur har jag inte full koll.
Precis som du säger har inte f877 hårdvara för rs 232 utan det var usart jag syftade på. Anledningen till 509 var att det var den som jag hade liggande hemma och det var en liten krets. Men jag skall kika på dem du nämde, kanske lämpar sig bättre.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Problemet med "C" kretsar är att de är jättejobbiga att utveckla med,
eftersom man bara kan programmera dom *en* gång. Sedan får
man ta en ny. Gäller alla "C" modeller. "F" kretserna har flash-minne
som kan programmeras om minst 100.000 gånger (gäller 12F629/675/693,
varierar lite, se databladen).

> Men jag skall kika på dem du nämde, kanske lämpar sig bättre.

Jag nämnde just de enbart för att de har lika många pinnar.
Seriekommunikationen blir betydligt enkelare om du kan välja en
med lite fler pinnar men som har hårdvaru-USART. T.ex 16F688, 14-pinnar
och fullt modern på alla sätt.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Inte för att det är supersvårt att skriva mjukvaru serielänkar, men har man inte oscilloscop så är det lite svårare. 12f675/629 är bra småkretsar och lite modernare än de 10F2xx som jag ofta använder. 10F i SOT-23 är verkligen en liten söt krets som ändå kan göra förvånandsvärt mycket. Byggde en PWM-krets med stöd för ett treknappsanvändarinterface med en sådan i Fredags faktist. 10F har en del irriterande begränsningar som att man inte kan välja destination på många instruktioner, inte kan välja WPU individuellt för de olika pinnarna och så, men det är begränsningar som går att leva med.

12F6XX är enklare att programmera och har också mer minne, AD och annat godis - tyvärr saknar den UART. PIC16F628A är en bra krets annars, lite större tyvärr.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

10F har i princip samma begränsningar (arkitekturmässigt) som alla
andra "base-level" PICs, d.v.s de med 12-bitars programord. Men
dom valde väl den arkitekturen för att kunna klämma in den i SOT-
kapseln... :-)

Även den här nämnda 509'an har 12-bitars arkitekturen, om jag inte tar fel.
Bör undvikas (om det går och om det finns alternativ).

628A är OK, men har 18 pinnar och större kapsel än den 688 som jag föreslog.
688'an har också "nanowatt" arkitekturen med 8 Mhz 1% intosc m.m.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

;)

Antar att jag missat 688án. Som det ser ut använder jag nästan alltid små (6-8 pinnars) eller 28-44 pinnars. Sist jag körde med midsize så var det 628A som gällde.
Skriv svar