ts-7000
[Top] [All Lists]

[ts-7000] Re: RS-485 Coding Documentation Needed WRT TS-7260 or buddies

To:
Subject: [ts-7000] Re: RS-485 Coding Documentation Needed WRT TS-7260 or buddies
From: "marcolamonato" <>
Date: Mon, 04 Feb 2008 07:37:45 -0000
--- In  "sholling3" <> wrote:
>
> Hi,
> 
> I'm trying to dig up the low-level C/C++ code (C# or Java would be 
> helpful, too) to interface with the TS-7260 RS-485 port (we have 
> requested full-duplex).  So far, I have not found much 
documentation on 
> the subject, and very little sample code.  Any suggestions on where 
to 
> start would be helpful. We're using TS-LINUX. Our objective is 
driving 
> a controller board.
> 
> Thanks,
> 
> Steve
>


Steve,

I tried to send you an email, but after a few days I got it back from 
my server with a "delivery issue report", therefore let me post some 
code here:

/* Code to setup your RS-485 port 
************************************/

#define BAUDRATE_485 B115200

/* Variables */
int fd_485;
struct termios oldtio_485, newtio_485;
volatile unsigned long *rs485, *rs485_ck, *format;

        
/* RS-485 */    
/* File descriptor opening */
fd_485 = open("/dev/ttyAM1", O_RDWR | O_NOCTTY);
if (fd_485 < 0) {
                printf("Error opening ttyAM1 port\n");
                return -1;
                }
printf("Opening ttyAM1 port done\n");
        
        
/* Termios structure opening */
tcgetattr(fd_485, &oldtio_485);
bzero(&newtio_485, sizeof(newtio_485));
        
/* Memory assignments */
rs485    = (unsigned long *)mmap(0,4,PROT_READ|PROT_WRITE,
                                                
        MAP_SHARED,fd_mem,0x22C00000);
rs485_ck = (unsigned long *)mmap(0,4,PROT_READ,
                                                
        MAP_SHARED,fd_mem,0x22400000);
format   = (unsigned char *)mmap(0,4,PROT_READ|PROT_WRITE,
                                                
        MAP_SHARED,fd_mem,0x23000000);
                                                                
/* RS-485 activation (0x01 = full duplex, 0x04-0x07 = half duplex) */
*rs485  = 0x00000007;
*format = 0x00000001;

/* Setting termios serial port parameters */
newtio_485.c_cflag     = BAUDRATE_485 | CS8 | CLOCAL | CREAD | PARENB;
newtio_485.c_iflag     = IGNPAR | IGNBRK;
newtio_485.c_oflag     = OPOST;
newtio_485.c_lflag     = 0;
newtio_485.c_cc[VTIME] = 1;             /* max wait time from first 
byte, in 0.1s units */
newtio_485.c_cc[VMIN]  = 11;    /* max bytes to wait for */
                                
/* Flushing data on buffer */
tcflush(fd_485, TCIFLUSH);
        
/* Writing parameters */
tcsetattr(fd_485,TCSANOW,&newtio_485);
        
/* RS-485 PLD full-duplex enable */
mcr = AUTO485HD;
ioctl(fd_485, TIOC_SBCS485, &mcr);      
                
printf("RS-485 configuration done\n");
        




/* Code to send bytes through RS-485 
************************************/

/* use this function where you need it */
/* fd_485 is the file descriptor, buf_out_485 is the buffer with you 
data, num_bytes is its length */
write(fd_485, buf_out_485, num_bytes);


Ciao,
Marco



 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/ts-7000/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/ts-7000/join
    (Yahoo! ID required)

<*> To change settings via email:
     
    

<*> To unsubscribe from this group, send an email to:
    

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU