characters via seriele poort naar pic verzenden

Ik zoek een programma waarmee ik via de seriele poort kan communiceren met de pic 16f876, het liefst met een split screen, eentje waar je op het ene scherm kunt typen en dat verzonden wordt en dat je op het andere scherm kunt zien wat je ontvangt of zo iets, hyperterminal van windows kan wel ontvangen maar het is mij niet gelukt om ook te zenden. Iemand een idee hoe dit wel gaat?

Ik hoop dat je wat kennis hebt van VB of C/C++ en PIC programmeren, want dit is lastig :p Misschien kun je iets met een RS232 controller. Maxim heeft er eentje, de MAX232 geloof ik.

Die max232 heb je altijd nodig als je serieel iets wil zenden of ontvangen.
Zowel zenden als ontvangen kan met hyper terminal. Als ik nu een dom vb neem: Je kan een zin intypen in hyper terminal, die naar de pic verzonden wordt. Als je op "enter" drukt (wat ook als karakter verzonden wordt), detecteerd de pic dit, en zend hetzelfde zinnetje gewoon terug. Als alles goed is ingesteld en werkt, komt dit netjes op je scherm terug.
Om wat met die seriele communicatie te experimenteren, heb ik een tijd geleden zo'n programmatje geschreven zoals hierboven. Dit was wel op een PIC16F84a. Ik weet niet hoeverre de instructieset overeen komt??

nog iets: die 16F84 heeft geen uart. Daarom moet je alles zelf programeren, kweet niet of die pic16f876 een uart heeft?? Als dit niet het geval is vond ik dit een vrij goede link: http://www.ubasics.com/adam/pic/picprog.html
Is wel assembler code, voor die 16f84, maar kan je misschien wel wat omvormen enzo... Heb ook gezien dat er hier al vrij veel topics zijn over RS232, dus miss ook ff zoeken op het forum

[Bericht gewijzigd door Zwabber op ]

Op 8 januari 2003 20:07:28 schreef wouter van der vinne:
Ik zoek een programma waarmee ik via de seriele poort kan communiceren met de pic 16f876

Dus je zoekt software voor op de pc?

hyperterminal van windows kan wel ontvangen maar het is mij niet gelukt om ook te zenden. Iemand een idee hoe dit wel gaat?

Je kunt iets versturen met die terminal door gewoon iets in te typen. Ik heb vroeger ook via de hyperterminal van windows gecommuniceerd met een Motorola µC, was wel leuk.

[Bericht gewijzigd door Bastiaan op ]

Op 8 januari 2003 20:07:28 schreef wouter van der vinne:
hyperterminal van windows kan wel ontvangen maar het is mij niet gelukt om ook te zenden.

misschien iets met de hardware handshakes?

algemene opmerking: neem steeds 1 stap, dus begin met een 'known good' programma op de PIC (en als hete even kan ook met een 'known good' op de PC). Op http://www.voti.nl/wisp628 staan 16F877 voorbeeld programma's voor seriele communicatie.

Overigens kan mijn xwisp PC software voor de wisp628 programmer ook als terminal werken, naar keuze direct op de seriele port (xwisp port com1 term) of via de wisp628 programmer.

Wouter,

Zover ik weet is het zo bij hyperterminal dat als je de Handshake op NONE zet dat iedere toets aanslag direct via de TX line wordt verzonden.

Als je dus geen kabel aan de COM poort hebt hangen dan zie je niet wat je intikt in je scherm.
Als je TX en RX (pin 2 en 3) met elkaar door verbind op je PC dan zie je direct wat je intoetst.

Je zou een testje kunnen doen door je PIC dat wat hij ontvangt ook direct weer te versturen (creeer dus een zogenaamde software loop op de serieele poort van je PIC.

Alles wat je dan intik in Hyperterminal moet dus op het scherm van Hyperterminal verschijnen.

Ander denk ik dat je naar die oude DOS Chat programmatjes moet kijken.

Die hebben die SPLIT screens waar je het over heb en communiseren direct met een COM poort of modem.

Veel Suc6

Groetjes Antonie Vonk

Op 9 januari 2003 11:05:34 schreef Antonie Vonk:

Als je dus geen kabel aan de COM poort hebt hangen dan zie je niet wat je intikt in je scherm.

Dit kan je WEL zien bij hyper terminal, je moet het alleen instellen :-)
Menu : "File" dan "properties", tabblad "settings"
Dan "Ascii setup" en dan met een vinkje aanduiden: "echo typed characters locally" Dan verschijnt alles wat je intypt rechtstreeks op het scherm. Als je dan zo een lus schrijft in je controller dat alles direct teruggestuurd wordt, zal het teken 2 keer verschijnen.

Op 8 januari 2003 21:28:05 schreef Zwabber:

nog iets: die 16F84 heeft geen uart. Daarom moet je alles zelf programeren, kweet niet of die pic16f876 een uart heeft?? Als dit niet het geval is vond ik dit een vrij goede link: http://www.ubasics.com/adam/pic/picprog.html
Is wel assembler code, voor die 16f84, maar kan je misschien wel wat omvormen enzo... Heb ook gezien dat er hier al vrij veel topics zijn over RS232, dus miss ook ff zoeken op het forum

even een vraagje: wat kun je eigelijk met een uart doen en weet misschien iemand ook hoe ik deze kan aansturen in JAL?

Op 9 januari 2003 15:31:55 schreef Wouter SSijm:
[...]
even een vraagje: wat kun je eigelijk met een uart doen en weet misschien iemand ook hoe ik deze kan aansturen in JAL?

Je moet ff googlen om info en uitleg te vinden van UART, en ik dacht dat er in de handleiding van JAL een voorbeeld stond over het gebruik ervan. Er zit iig wel een speciale headerfile van UART bij JAL(uart.h).

Als je controller een uart bezit is seriele comm.(RS232) heel simpel. 2 pinnen fungeren dan als TX en RX. Je kan dan in je controller bepaalde registers instellen.Baudrate (snelheid van data verzenden en ontvangen) bijvoorbeeld. Bij het zenden kan je dan gewoon data in een register steken dat verzonden wordt met ingestelde snelheid. Heb je geen uart, moet je zelf gaan rekenen hoelang een bit op de TX lijn mag staan, en wanneer de volgende bit erop kan... om dan zo een bepaalde baudrate te halen. Is lastig, maar werkt ook wel.

Je kan meestal ook een "uart-interrupt" laten triggeren. Telkens er een teken binnenkomt via de RS232 RX line, zal de controller een interrupt uitvoeren. En kan je zo je data analyseren.

Enfin, veel voordelen dus
suc6 verder

IK heb dat van hyperterminal al geprobeerd (tekens lokaal echoen, maar dat werkte niet), dus maar ff beantwoord progje schrijven.
Wouter

Bestaan er ook PIC's met 2 UARTS, maar we hebben slechts max 6 I/O-pinnen nodig..

Waarom kom je met zo'n vraag in een topic dat meer dan een jaar oud is ?
:-(