RS232 med PIC 12C509
RS232 med PIC 12C509
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.
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.
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.
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.
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.
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.
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.
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.
- 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:
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.
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.
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.
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.