Hallo,

ik heb onlangs het bouwpakket "mini-mega-board' uit de elektuur van mei 2006 besteld, en in elkaar gezet. Het werkt perfect. Krijg er al een programma'tje in wat ik zelf in C heb geschreven. Gaat allemaal goed, maar nu wil ik de seriele communicatie testen, want er zit immers een seriele poort op. Maar in het artikel staat nergens HOE ik dit moet testen.

Ik denk dan zelf aan hyperterminal of zo.... maar dat zit op windows XP ook niet meer op.... dus wie kan mij helpen.

bedankt.

Als je verder kijkt in google dan vind je heus wel een programma om de seriele poort af te luisteren.

Ik heb zelf geen tijd om even te zoeken voor je ben nogal moe.

Groetjes.

zit seker in winhoos XP:

start ==>bureau accecoires ==> communicatie ==> hyperterminal

anders is deze ook gratis te downloaden

Hyperterminal zit wel op winxp hoor... Start --> Alle Programmas --> Bureau accesoires --> Communicatie --? Hyperterminal

Anders kan je (voor de ontvangst) ook nog in je command prompt:

type filenaam.txt > com1
of
echo blablablablabla >com1

COMpoort instellen in command prompt:
mode com1 (geeft de huidige modes weer)

mode com1 baudrate,parity,databits,stopbits

bv: mode com1 9600,n,8,1

ja maar hyperterminal is niet echt een programma om communicatie via rs232 te krijgen volgens mij . want hij vraagt aan het begin je netnummer in je streek enzo,, dus dat is voor inbellen met je modem enzo.. dat zoek ik dus niet.. Ik moet iets hebben waarmee ik mijn seriele poort kan uitlezen , en uitsturen..

vul in bij veld "verbinding maken via " COM 1 (of 2)

voila

Ja, ik heb het uit nieuwsgierigheid ook gedaan. In het begin moet je netnummer, locatienummer enz. invullen. Nou dan vul je het gewoon in, om te doen alsof ;)

Daarna verzin je een naam voor je verbinding en dan klik je op annuleren en je krijgt daarna de instelling van je comport.

Ik zou zeggen probeer maar, gewoon proberen kan niks schaden.

En mocht het niet in je startmenu staan, dan doe je:

Start > Run > "hypertrm" > OK :)

Op 16 mei 2006 09:16:05 schreef Nordin:
Ja, ik heb het uit nieuwsgierigheid ook gedaan. In het begin moet je netnummer, locatienummer enz. invullen. Nou dan vul je het gewoon in, om te doen alsof ;)

Daarna verzin je een naam voor je verbinding en dan klik je op annuleren en je krijgt daarna de instelling van je comport.

Ik zou zeggen probeer maar, gewoon proberen kan niks schaden.

nee nee, geen netnummer invullen (wel eerst een verbingdings naam verzinnen, evt picto uitzoeken) je moet een ander type verbinding kiezen.
In dit geval je com poort (met bijbehorend nr) daarna kun je de com poort configureren, baudrate e.d.

Ik gebruik zelf Terminal hiervoor. Werkt heel makkelijk, overschakelen naar een andere baudrate met 1 muisklik.
Het is hier te vinden:
http://bray.velenje.cx/avr/terminal/

hartstikke bedankt allemaal. nu heb ik eindelijk de mogleijkheid om communicatie te maken met mijn AVR MEGA16 op mijn MiniMegaboard.

Maar na veel zoeken op internet ben ik helaas niets tegen gekomen hoe ik nu verder moet gaan. Ik bedoel.... wat voor commando's moet ik geven of wat???? heb werkelijk geen enkel idee.

Op de site van elektuur staat wel een voorbeeldprogramma voor de RS232 verbinding. die heb ik in mijn microcontroller gezet... maar nu weet ik niet wat ik verder moet doen..

??
grt. corne.

Mischien PLC-besturing...?

Kun je koffie laten zeten, lampen aan, rolluiken dicht.

Kweet niet, er zijn talloze opties..

nou misschien heb ik de vraag niet helemaal goed gesteld. maar wat ik bedoel is: Hoe kan ik mijn rs232 verbinding testen???? ik heb nu de software op mijn computer staan genaamd : Terminal. En ik heb het hex-file van de elektuur site gehaald wat de RS232 verbinding zou moeten kunnen testen. Deze file heb ik gedownload naar de microcontroller AT MEGA16.

Tot nu toe alles helemaal duidelijk. Maar nu... ik weet niet wat ik nu moet doen.. Graag een concreet antwoord..

grt. corne.

Als je de file naar de atmel kan sturen werkt de rs232 toch???

Hoe bedoel je 'rs232 testen'?

Als je de rs232 verbinding wil testen kun je de rx en de tx aan elkaar knopen, dan krijg je hetgene wat je typt meteen terug in je scherm. Dan weet je in elk geval zeker dat de verbinding goed is.

rik_j.. de file naar de atmel sturen.. gebeurt via een hele andere stekker.. zo'n 10-polige. De rs232 heeft daar niets mee te maken.

Ik wil gewoon dat ik communicatie tussen mijn atmel en de pc heb. zodat ik gegevens kan uitwisselen. vraag ik nu zulke moeilijke vragen??? bijvoorbeeld. De atmel heeft een variabele in zijn programma... en ik wil dan via mijn rs232 verbinding op de computer kunnen uitlezen wat die waarde is. of andersom, dat ik een waarde naar mijn atmel toe stuur.

grt

kan echt niemand me helpen???

Op 22 mei 2006 11:31:06 schreef Cornee:
...
Ik wil gewoon dat ik communicatie tussen mijn atmel en de pc heb. zodat ik gegevens kan uitwisselen. vraag ik nu zulke moeilijke vragen??? bijvoorbeeld. De atmel heeft een variabele in zijn programma... en ik wil dan via mijn rs232 verbinding op de computer kunnen uitlezen wat die waarde is. of andersom, dat ik een waarde naar mijn atmel toe stuur.
...

RS232 heeft geen vaste commando's waarmee je variabelen in je controller kan gaan uitlezen.

Je zult zelf in je controller moeten een routine schrijven die bij het ontvangen van een commando, de gewenste waarde van je variabele terugstuurt.

De structuur van je programma in je controller hangt dan weer af van de taal die je gebruikt en eventuele beschikbare bibliotheken.

Je kan dus niet zomaar een *.hex in je controller laden en hopen dat een variabele teruggestuurd wordt.

nee dat snap ik ook wel.. ik verwacht echt niet dat ik zomaar een waarde terug krijg van mijn microcontroller... dat moet ik natuurlijk zelf schrijven.. maar er zit een standaard uart programma bij... mijn vraag is dus.. wat kan ik met dat uart programma?????? ik weet dat het voor de RS232 verbinding is.. maar hoe gebruik ik het????
ik zal voor de duidelijkheid de source code er maar bijvoegen misschien heb je er wat aan

/* Eingaben über ein Hyperterminal werden als ECHO zurückgesendet oder auf dem LCD ausgegeben
*
* 03/2005 Florian Schaeffer
*/

#include <avr/signal.h>
#include <avr/interrupt.h>

#define UART_BAUD_RATE 9600
#define UART_BAUD_CALC(UART_BAUD_RATE,F_CPU) ((F_CPU)/((UART_BAUD_RATE)*16l)-1)

#define RBUFFLEN 40 //Pufferlänge für seriellen Empfang

volatile unsigned char rbuff[RBUFFLEN]; // Ringpuffer
volatile uint8_t rbuffpos, // Position, die als nächstes gelesen werden muß im Ringpuffer
rbuffcnt, // Anzahl zu lesender Zeichen im Puffer
udr_data; // Daten aus dem UART (volatile, damit nicht wegoptimiert wird vom Präprozessor)

// Interruptroutine, die Zeichen aus dem UART sofort ausliest, wenn empfangen
SIGNAL (SIG_UART_RECV)
{
udr_data= UDR; //Byte auf jeden Fall abholen, sonst Endlosinterrupt

if(rbuffcnt < RBUFFLEN) // keinen Zeichen in einem vollen Ringpuffer überschreiben
rbuff[(rbuffpos+rbuffcnt++) % RBUFFLEN] = udr_data; // welche Position? Gelesene Zeichenpos + Anzahl Zeichen MODULO Pufferlänge
// (von 0 wieder anfangen, wenn Ende erreicht)
}

// Nächstes zu lesendes Zeichen aus Ringpuffer zurückgeben
unsigned char ser_getc (void)
{
unsigned char c;

while(!rbuffcnt); // Warte bis ein Zeichen vorhanden ist

cli(); // Interruptbehandlung kurz aussetzen. Ab jetzt muß es schnell gehen (wenig Befehle), damit Zeichen, die
// ab jetzt eintreffen nicht verloren gehen.
rbuffcnt--; // anschl. ein Zeichen weniger zum ausgeben
c = rbuff [rbuffpos++]; // Zeichen holen, was nach dem bereits gelesenen liegt
if (rbuffpos >= RBUFFLEN) rbuffpos = 0; // wenn hinterstes Zeichen (rechts im Puffer) gelesen wurde, dann wieder vorne anfangen

sei(); // Interruptbehandlung wieder aktivieren

return (c); // Zeichen zurückgeben
}

// Ein Zeichen senden
void uart_putc(unsigned char c)
{
while(!(UCSRA & (1 << UDRE))); // warte, bis UDR bereit

UDR = c; // sende Zeichen
}

// Einen String senden
void uart_puts (char *s)
{
while (*s)
{ // so lange *s != NULL
uart_putc(*s);
s++;
}
}

// USART initialisieren
void uart_ini ()
{
sei(); // Interruptbehandlung aktivieren

UCSRB |= (1 << TXEN); // UART TX (senden) einschalten
UCSRB |= (1 << RXEN ); // UART RX (empfangen) einschalten
UCSRB |= (1 << RXCIE); // Interruptauslösung für eingehende Daten aktivieren
UCSRC |= (1<<URSEL)|(3<<UCSZ0); // Asynchron, 8N1
UBRRH=(uint8_t)(UART_BAUD_CALC(UART_BAUD_RATE,F_CPU)>>8); // Baudrate wählen
UBRRL=(uint8_t)UART_BAUD_CALC(UART_BAUD_RATE,F_CPU);
}

Op 22 mei 2006 18:21:34 schreef Cornee:
...
/* Eingaben über ein Hyperterminal werden als ECHO zurückgesendet oder auf dem LCD ausgegeben
...

Als je in hyperterminal een letter intypt, wordt die meteen teruggezonden door je controller.

Normaal staat de locale echo van hyperterminal af. Dus als je een letter intypt in hyperterminal wordt die enkel verzonden en komt ze niet op het scherm. Als er communicatie is met je controller, zou je getypte letter op het scherm moeten komen.

hartelijk dank pol.. dan ga ik dat nu testen..
Hier kan ik wat mee.. Bedankt allemaal