Kommunicera mellan pic och pc

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Johel572
Inlägg: 53
Blev medlem: 5 juli 2006, 10:36:01
Ort: Linköping

Kommunicera mellan pic och pc

Inlägg av Johel572 »

Hej!
Jag har lite funderingar hur man smidigast kan kommunicera mellan tex en pic och pc. Jag hade tänkt bygga mig en liten fläktstyrning till datorn som styrs via en pic18. Dock kom jag på tanken att det vore fint om man kunde skicka lite värden till datorn och kanske skriva ett litet program så man kan se temperatur mm på skärmen. Problemet är att jag inte riktigt vet hur jag skall göra. Jag har fått fram lite värden från en pic på skärmen i en lab jag gjorde i skolan men dels hade man då ett färdigt lab-kort samt att jag inte kommer ihåg vad vi gjorde. Så min fråga är nu hur man kan läsa in värden till datorn, gärna med nått litet tips på hur man läser av lämplig port också?

Mvh Johan
Användarvisningsbild
chille
Inlägg: 2469
Blev medlem: 25 juni 2003, 20:54:41
Ort: Stockholm
Kontakt:

Inlägg av chille »

Välkommen till forumer! 8)

Vanligtvis finns det två portar att välja på. RS232 (com-porten) eller USB. Du verkar vara nybörjare, så jag skulle råda dig att köra RS232.

Då är det tre grejer du måste göra.

1) Skaffa ett interface som gör om TTL-signalerna från PIC:en till rätt späning så datorn kan tolka dom. MAX232 är en vanlig krets för det, den kräver endast 4st kondingar extra om jag inte minns fel nu.

2) Mecka igång någon form av UART (eller vad det kallas på PIC-språk) i PIC:en för att hantera seriell kommunikation.

3) Fixa ett datorprogram som läser av serieporten. Jag är lite osäker på hur man gör det, men det finns nog många exempel ute om du googlar på typ "c++ serial port" eller något liknande. Det är mycket möjligt att DLPortIO går att använda här.
rehnmaak
Inlägg: 2204
Blev medlem: 13 december 2005, 01:43:41

Inlägg av rehnmaak »

>>>Det är mycket möjligt att DLPortIO går att använda här.

DLPortIO använder du bara om du ska skriva och läsa direkt från hårdvaran i windows. När det gäller seriell kommunikation på PC så är det mycket bättre att använda siga av operativsystemet.

CreateFile() för att öppna porten.
GetCommState() hämta parametrar
SetCommState() sätta parametrar
ReadFile() för att läsa från porten

EDIT:
Exempel: http://msdn.microsoft.com/library/defau ... source.asp
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> en liten fläktstyrning till datorn som styrs via en pic18.

En PIC18 (vilken modell förresten ?) känns "way overkill" för detta.
Men har du den endå och du känner dig lite van att programmera den, så OK...

Som andra har sagt, häng på en MAX232 (eller ekvivalent) och kör
vanligt serie kom. Vill du ha en enkel lösning kan du använda en sådan
här : http://www.jescab.se/RSlink.htm .Om man plockar bort skruvarna
på D-sub'en så kan man sätta den direkt i COM1 eller COM2 och bara dra
en enkel sladd med UART-signarna till ditt kort med processorn.

Och som sagt, att läsa/skriva serieporten från Windows är inget hokuspokus... :-)
Användarvisningsbild
Johel572
Inlägg: 53
Blev medlem: 5 juli 2006, 10:36:01
Ort: Linköping

Inlägg av Johel572 »

Ingen dum länk, RS-link verkar ju vara rätt smidig. Jag tänker nog ändå ge mig in på att försöka bygga en egen (fast jag vet inte riktigt hur än så länge). Tack för tipset.

Det blir en PIC18F452-I/P, kör den för att jag har nyttjat den tidigare med gott resultat.
Senast redigerad av Johel572 18 juli 2006, 10:13:30, redigerad totalt 1 gång.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

452 är en 40-pinnars kapsel. Du behöver kanske 4-5 I/O pinnar...
Visst, om du redan har den, men köp inte en ny bara för det här !

Ta t.ex en i 18F1220 eller 1320 i 18-pinnars kapsel så blir allt
mycket enklare att bygga. Programmeringen är väldigt lik mellan dessa.

> Jag tänker nog ändå ge mig in på att försöka bygga en egen (fast jag vet inte riktigt hur än så länge).

Jag har lösa MAX232 med kondingar om du är intresserad.
RS-linken är mest tänkt för snabba uppkopplingar på labbplattor...
Användarvisningsbild
Johel572
Inlägg: 53
Blev medlem: 5 juli 2006, 10:36:01
Ort: Linköping

Inlägg av Johel572 »

Förtillfället äger jag ingen programerings enhet men jag skall införskaffa en så snart det blir lön. Alltså drar inte bygget igån förens om ett par veckor. ajgg kanske skall förtydliga mig lite också. Själva fläktstyrningen har jag ganska bra koll på hur jag skall lösa (tror jag iallafall :) ) men sen dök det upp en tanke på att göra ett program som man kan se vad som händer på datorskärmen. Bekymret är att jag inte vet ett skvatt om uart eller vad det nu heter. Jag skulle uppskatta en liten genomgång om hur man skall bete sig för att bara läsa värden från en (i det här fallet) pic18 till en PC (och eventuellt skriva värden också) kontinuerligt. Observera på att jag är helt novis på hur detta skulle tänkas gå till. Tack för att tips jag fått hitils (även om jag inte riktigt förstår allt).

Johan
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Förtillfället äger jag ingen programerings enhet...

http://www.jescab.se/Wisp628.html
(Jo, det är jag som säljer den... :-) )

> Bekymret är att jag inte vet ett skvatt om uart eller vad det nu heter.

Konstigt, du skrev i ett tidigare inlägg :

> Det blir en PIC18F452-I/P, kör den för att jag har nyttjat den tidigare med gott resultat.

OK, men då måste du ha läst databladet och kan knappast ha missat
att det finns en USART... Vad menar du igentligen !?

> hur man skall bete sig för att bara läsa värden från en pic18 till en PC...

1. Koppla upp hårdvaran som behövs.
2. Skriv tecken till "Send" delen av USART i PIC'en (databladet har detaljerna)
3. Läs tecken från COMx-porten på PC'n (www.microsoft.com har detaljerna...)

> (och eventuellt skriva värden också)

Då kör du bara åt andra hållet, skriv till COMx porten och läs från
"Receive" delen av USART'en...

För detaljer får du vara tydligare om vad som är problem.
Användarvisningsbild
Johel572
Inlägg: 53
Blev medlem: 5 juli 2006, 10:36:01
Ort: Linköping

Inlägg av Johel572 »

Hm, jag trodde att man behövde någon extra typ av hårdvara för att nyttja usart men såg nu (igår) att det finns inbygt i pic:en, känner mig så där lite små dum :).

Om jag nu har förstått det rätt så behöver jag utöver en (i mitt fall) pic18 i princip en max232 samt 4 st 1,0uF kondensatorer som skall (rätta mig om jag har fel) anpassar signalnivåerna till COM-portens dito. Efter det så blir det hela ett mjukvaruproblem. Är jag med i matchen då?

Johan
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Inlägg av PHermansson »

Själv skulle jag valt en annan variant, nämligen PIC med USB. Visst är USB generellt krångligt, men det är enkelt att koppla upp kretsen och programmeringen enkel med hjälp av den exempelkod Microchip bjussar på.
Programmeringen är dessutom smidig, har man en gång lagt in bootloadern kan man uppgradera programmet via USB-anslutningen.
Lite svensk info - http://wiki.gudinna.com/503
Wiki, bra som startpunkt - http://pic18fusb.online.fr/wiki/wikka.p ... a=WikiHome
Mer bra info - http://www.create.ucsb.edu/~dano/CUI/
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Är jag med i matchen då?

Absolut!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

PHermansson> Själv skulle jag valt en annan variant, nämligen PIC med USB....

Mycket möjligt, men det är knappast något att rekomendera för en
PIC-nybörjare !!

Innan man har hunnit *läsa* dokumentationen för USB-kopplingen,
har man sannolikt en RS232 lösning igång flera gånger om...

Så kör RS232 !

(Länkarna var dock bra, *om* man tänker börja titta på USB...)
Skriv svar