ts-7000
[Top] [All Lists]

Re: [ts-7000] Re: ts-7260

To:
Subject: Re: [ts-7000] Re: ts-7260
From: "Dalibor Farny" <>
Date: Fri, 11 Feb 2011 18:23:10 +0100
When you change the direction of some pin to output and send there 0, what
voltage you can measure on the pin? Is there 0 V? I suppose the pull-up
resistor is pulling up the voltage only when there is log 1 on the pin?

I connect the led directly to the DIO_1 pin and thru the resistor to the
ground. Is this correct? The LED is still lighting :-(

pin DIO_1          LED     3k resistor          GND
==========| -------->|----------===---------- |=====



I tried:
/sys/class/gpio# echo 8 > export
/sys/class/gpio# echo out > gpio8/direction
/sys/class/gpio# echo 0 > gpio8/value
/sys/class/gpio# cat gpio8/value
1

Also this:
int fd = open("/dev/mem", O_RDWR|O_SYNC);

    start = mmap(0, getpagesize(), PROT_READ|PROT_WRITE, MAP_SHARED, fd,
0x80840000);
    PBDR = (unsigned int *)(start + 0x04);     // port b
    PBDDR = (unsigned int *)(start + 0x14);    // port b direction register

    *PBDDR = 0xff;                              // output



       *PBDR = 0xff;
       sleep(1);
       *PBDR = 0x00;
       sleep(1);


    close(fd);
    return 0;


I expected 0 and 1 output on the DIO_1, but the led is still lighting..


What am I doing wrong?

Dalibor




> Answer: This code does work on my system.
>
> --- In  "Clark" <> wrote:
>>
>> Let's see if we can't focus this discussion a little better.  Is this
>> the same deal I face attempting to access GPIO?  Joel said I need to use
>> a read-modify-write instruction, yet the TS sample code 'button.c'
>> shows the naive approach of using simple assignment in C.  Thus the
>> question to me is does this sample code work?  Why not?
>>
>> / filename button.c
>> // connect a button to DIO pin 1 and ground
>> // blinks green and red led on the ts-7200 when button is pressed
>> //
>> // compile arm-linux-gcc -o button button.c
>> //
>>
>> #include<unistd.h>
>> #include<sys/types.h>
>> #include<sys/mman.h>
>> #include<stdio.h>
>> #include<fcntl.h>
>> #include<string.h>
>>
>> int main(int argc, char **argv)
>> {
>>    volatile unsigned int *PEDR, *PEDDR, *PBDR, *PBDDR, *GPIOBDB;
>>    int i;
>>    unsigned char state;
>>    unsigned char *start;
>>    int fd = open("/dev/mem", O_RDWR|O_SYNC);
>>
>>    start = mmap(0, getpagesize(), PROT_READ|PROT_WRITE, MAP_SHARED, fd,
>> 0x80840000);
>>    PBDR = (unsigned int *)(start + 0x04);     // port b
>>    PBDDR = (unsigned int *)(start + 0x14);    // port b direction
>> register
>>    PEDR = (unsigned int *)(start + 0x20);     // port e data
>>    PEDDR = (unsigned int *)(start + 0x24);    // port e direction
>> register
>>    GPIOBDB = (unsigned int *)(start + 0xC4);  // debounce on port b
>>
>>    *PBDDR = 0xf0;                          // upper nibble output, lower 
>> nibble input
>>    *PEDDR = 0xff;                             // all output (just 2
>> bits)
>>    *GPIOBDB = 0x01;                        // enable debounce on bit 0
>>
>>    state = *PBDR;                             // read initial state
>>    while (state & 0x01) {                     // wait until button goes
>> low
>>       state = *PBDR;                          // remember bit 0 is
>> pulled up with 4.7k ohm
>>    }
>>
>>
>>    // blink 5 times, sleep 1 second so it's visible
>>    for (i = 0; i < 5; i++) {
>>       *PEDR = 0xff;
>>       sleep(1);
>>       *PEDR = 0x00;
>>       sleep(1);
>>    }
>>    close(fd);
>>    return 0;
>> }
>>
>>
>> --- In  dalibor@ wrote:
>> >
>> > > can someone confirm the DIO pins work on the ts-7260 using the
>> provided
>> > > scripts ?
>> > >
>> > >
>> >
>> > Hello,
>> > probably the same problem,
>> >
>> > I am not able to control DIO pins from user space. Tried C code via
>> > registers, peekpoke, GPIO kernel modules, but nothing worked. The pins
>> are
>> > still high (log 1). LED connected to the pin is still lighting.
>> >
>> > The only thing I managed is to read the pins, when I connect it to
>> ground,
>> > I can read log 0, log 1 when disconnected.
>> >
>> > Thanks in advance for any tips..
>> >
>> > Dalibor
>> >
>>
>
>
>




------------------------------------

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