Shop OBEX P1 Docs P2 Docs Learn Events
Basic Stamp -- ShiftIn and ShiftOut — Parallax Forums

Basic Stamp -- ShiftIn and ShiftOut

ArchiverArchiver Posts: 46,084
edited 2002-08-05 13:45 in General Discussion
Hello everybody,
I have to communicate the BS II with a device using a Serial
Sincronous Protocol. The device receives and sends data using this parameters:
1) All transmissions are 8bits LSB 2) The logic level on the data lines is
changed by the transmitting device on the falling edge of the clock. This is
then read by the receiving device on the leading edge allowing time for the
signal to settle.
I think I can't do this with ShiftIn and ShiftOut because I don't
find any appropiate MODE. Perhaps, I need to use a For...Next loop (like in the
BS I), but I don't know how. Can anybody help me with this?

Thank you very much,

Ezequiel



[noparse][[/noparse]Non-text portions of this message have been removed]

Comments

  • ArchiverArchiver Posts: 46,084
    edited 2002-07-30 13:50
    In a message dated 7/30/02 08:48:54 Eastern Daylight Time, nik@i...
    writes:


    > I think I can't do this with ShiftIn and ShiftOut because I don't find
    > any appropiate MODE. Perhaps, I need to use a For...Next loop (like in the
    > BS I), but I don't know how. Can anybody help me with this?
    >

    Are you talking about the baud rate ?

    Sid


    [noparse][[/noparse]Non-text portions of this message have been removed]
  • ArchiverArchiver Posts: 46,084
    edited 2002-07-30 14:09
    When using SHIFTOUT, you should be able to set it up as follows:

    SHIFTOUT DataPin, ClockPin, LSBFIRST, [noparse][[/noparse] data, data, data, ... ]

    The data pin is setup and the clock pulse goes high and returns low while the
    data bit is in place -- this works for all devices that we know off.

    For SHIFTIN, you should be able to get it to work with this:

    SHIFTIN DataPin, ClockPin, LSBPOST, [noparse][[/noparse] data ]

    LSBPOST samples the data after the clock pulse has dropped.

    Before your resort to a code loop, perhaps you could share what device you're
    using ... there is a lot of experience in this group and perhaps someone has
    solved the issue for your particular device.

    One last thing: If the device data pin is bi-directional, you should connect
    to the Stamp using a 1K resistor so that in the even that the Stamp data pin
    and the device data pin are both outputs and of opposite state (one high, one
    low), there will be no short circuit.

    -- Jon Williams
    -- Applications Engineer, Parallax


    In a message dated 7/30/02 7:48:58 AM Central Daylight Time, nik@i...
    writes:


    > Hello everybody,
    > I have to communicate the BS II with a device using a Serial
    > Sincronous Protocol. The device receives and sends data using this
    > parameters: 1) All transmissions are 8bits LSB 2) The logic level on the
    > data lines is changed by the transmitting device on the falling edge of the
    > clock. This is then read by the receiving device on the leading edge
    > allowing time for the signal to settle.
    > I think I can't do this with ShiftIn and ShiftOut because I
    > don't find any appropiate MODE. Perhaps, I need to use a For...Next loop
    > (like in the BS I), but I don't know how. Can anybody help me with this?
    >
    > Thank you very much,
    >
    >




    [noparse][[/noparse]Non-text portions of this message have been removed]
  • ArchiverArchiver Posts: 46,084
    edited 2002-07-30 16:28
    Hello,
    Thank you very much. I have a clock pin (The Stamp sends the Clock)
    and two more pin, Data and Command. The Device sends 2 bytes via the Data
    Pin. And the Stamp sends 2 commands using the Command Pin. It's bi
    directional but using differents pins.
    Another point, I read in the device datasheet that the Data Output
    is Open Drain. Do I have to put some resistors, so the Stamp can "see" the
    1s and the 0s that the device transmit?

    Thank you very much, Jon and Sid.

    Ezequiel

    Original Message
    From: <jonwms@a...>
    To: <basicstamps@yahoogroups.com>
    Sent: Tuesday, July 30, 2002 10:09 AM
    Subject: Re: [noparse][[/noparse]basicstamps] Basic Stamp -- ShiftIn and ShiftOut


    > When using SHIFTOUT, you should be able to set it up as follows:
    >
    > SHIFTOUT DataPin, ClockPin, LSBFIRST, [noparse][[/noparse] data, data, data, ... ]
    >
    > The data pin is setup and the clock pulse goes high and returns low while
    the
    > data bit is in place -- this works for all devices that we know off.
    >
    > For SHIFTIN, you should be able to get it to work with this:
    >
    > SHIFTIN DataPin, ClockPin, LSBPOST, [noparse][[/noparse] data ]
    >
    > LSBPOST samples the data after the clock pulse has dropped.
    >
    > Before your resort to a code loop, perhaps you could share what device
    you're
    > using ... there is a lot of experience in this group and perhaps someone
    has
    > solved the issue for your particular device.
    >
    > One last thing: If the device data pin is bi-directional, you should
    connect
    > to the Stamp using a 1K resistor so that in the even that the Stamp data
    pin
    > and the device data pin are both outputs and of opposite state (one high,
    one
    > low), there will be no short circuit.
    >
    > -- Jon Williams
    > -- Applications Engineer, Parallax
    >
    >
    > In a message dated 7/30/02 7:48:58 AM Central Daylight Time,
    nik@i...
    > writes:
    >
    >
    > > Hello everybody,
    > > I have to communicate the BS II with a device using a Serial
    > > Sincronous Protocol. The device receives and sends data using this
    > > parameters: 1) All transmissions are 8bits LSB 2) The logic level on
    the
    > > data lines is changed by the transmitting device on the falling edge of
    the
    > > clock. This is then read by the receiving device on the leading edge
    > > allowing time for the signal to settle.
    > > I think I can't do this with ShiftIn and ShiftOut because I
    > > don't find any appropiate MODE. Perhaps, I need to use a For...Next loop
    > > (like in the BS I), but I don't know how. Can anybody help me with this?
    > >
    > > Thank you very much,
    > >
    > >
    >
    >
    >
    >
    > [noparse][[/noparse]Non-text portions of this message have been removed]
    >
    >
    > To UNSUBSCRIBE, just send mail to:
    > basicstamps-unsubscribe@yahoogroups.com
    > from the same email address that you subscribed. Text in the Subject and
    Body of the message will be ignored.
    >
    >
    > Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
    >
    >
    >
  • ArchiverArchiver Posts: 46,084
    edited 2002-07-30 16:56
    Yes, if it's open-drain, then you should pull that line up to Vdd (5 volts)
    through a 4.7K resistor so the Stamp can "see" transitions on it.

    BTW ... what is this mystery device?....

    -- Jon Williams
    -- Applications Engineer, Parallax


    In a message dated 7/30/02 10:30:21 AM Central Daylight Time, nik@i...
    writes:


    > Another point, I read in the device datasheet that the Data Output
    > is Open Drain. Do I have to put some resistors, so the Stamp can "see" the
    > 1s and the 0s that the device transmit?
    >




    [noparse][[/noparse]Non-text portions of this message have been removed]
  • ArchiverArchiver Posts: 46,084
    edited 2002-07-30 18:39
    Hello Jon and Stampers,
    Well, the mistery device is an "intelligent Joypad" made by Sony
    Electronic, which has 14 buttons and only 4 lines (clock, data,cmd and att),
    so it's a good keypad for most proyect where you run out of pin (a keypad of
    12 buttons will use 7 lines vs 14 buttons and 4 lines). Some days ago I
    posted a message about a Sony Controller (the Joypad of the PlayStation 1).
    As nobody replied to my message, I decided to ask a friend a book about
    digital eletronic. Using a few time diagrams (which I posted here) and the
    book, I wrote a program to interfase the Joypad using only a few
    instrucction (High, Low and Pause). But the program didn't work. Then I
    looked at the BS II manual and I saw the ShiftIn and ShiftOut instrucction.
    But the program didn't work too. I though about using PicBasic Pro and a PIC
    (because PicBasic Pro has more ShiftIn and ShiftOut modes, I think it has 8
    for each one) but I didn't work.
    Now I looked at the datasheet of the Controller and it says that there
    is a ACK (Acknowledge) pin. The signal goes low for 60uSeg and the return
    high if the command was received OK. But the program doesn't work. And I'm
    going crazy, because I really need this interfase working. The Joypad works
    with my PC (it's connected to my Parallel Port, and the dirver is programmed
    in C, but I don't undertad C), so in theory I has to work with the Stamp or
    any microcontroller.

    Anyway, thanks you and the Stampers very much for your help and time. I
    couldn't make the interfase work (now), but at least I understood how
    ShiftIn and ShiftOut work. Thank you very much, again.

    P.D.: What does it means "BTW"?

    Ezequiel
    Buenos Aires, Argentina.
  • ArchiverArchiver Posts: 46,084
    edited 2002-07-31 02:08
    Seguramente se trata del protocolo llamado I2C, usa un buscador.

    Carlos Contreras
    presidente Club Cientifico de Pe
  • ArchiverArchiver Posts: 46,084
    edited 2002-07-31 02:57
    Hola Carlos,
    Te aseguro que no es I2C, porque en los diagramas de tiempo no
    hay ninguna condicion de Start, Stop, y lo reconoceria facilmente, ya que
    utilizo mucho memorias seriales I2C.

    Ezequiel Aceto
  • ArchiverArchiver Posts: 46,084
    edited 2002-08-05 13:45
    --- Ezequiel Leonardo Aceto <nik@i...> wrote:
    > Hello Jon and Stampers,
    > Well, the mistery device is an "intelligent
    > Joypad" made by Sony
    > Electronic, which has 14 buttons and only 4 lines
    > (clock, data,cmd and att),

    Hello Ezequiel,

    It looks like you and I have something in common,
    in that we're both trying to interface a Stamp toa
    serial device with little or not data available on the
    device. In my case I literally have none. The device
    I am trying to use is a Digital Keypad used in some
    Radio Shack alarm systems. The device communicates
    over a serial bus (2-wire?), but I have yet to find
    ANY specs on this thing ANYWHERE on the internet.
    Here's where I could use a good storage
    scope...Anyway, let me know if you successfully get
    yours working, and I suspect it would be a similar
    design for N64 controllers and their memory packs.

    Chris Savage/Knight Designs


    __________________________________________________
    Do You Yahoo!?
    Yahoo! Health - Feel better, live better
    http://health.yahoo.com
Sign In or Register to comment.