9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Shane Morris <edgecomberts@gmail.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] "gpio device" for Plan 9
Date: Tue, 31 Dec 2013 09:38:01 +1100	[thread overview]
Message-ID: <CANZw+5ezfgVsWzyOnXA+YOXimCWbp+tPUG0VYTG1tECbQHQ1BQ@mail.gmail.com> (raw)
In-Reply-To: <CAJSxfm+EDvabUwNzf3knMCv0FQ2+Mo=Mw5P9_zJgaaHjRmH+ig@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4548 bytes --]

This is pretty cool! Good work!

I have a question - what would the maximum ISR rate be for a rising edge of
a square wave sampled on one of the GPIO pins? At the link:

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=72&t=33113

Its quoted to be 10,000 events per second using a standard ISR. Of course,
thats under Linux. It also says it can be 100,000 events per second using a
modified ISR, but I only need to sample the rising edge of a 10kHz square
wave.

Lastly, I hope this email is seen by the list - "When it is all mouth, and
no ears, its known as an 'alligator'..."


On Mon, Dec 30, 2013 at 6:32 PM, Skip Tavakkolian <
skip.tavakkolian@gmail.com> wrote:

> nice. i guess i'll need to get a Pi T-Cobbler and try it.
>
>
>
> On Sun, Dec 29, 2013 at 2:04 PM, Krystian Lewandowski <
> krystian.lew@gmail.com> wrote:
>
>> Good evening,
>> i’d like to share with you some Raspberry Pi related work done for Plan 9
>> BCM port.
>>
>> Using slightly modified (unmodified in most cases) uartmini.c GPIO
>> functions i implemented #G/gpio device:
>> Structure is as follows:
>> #G/gpio/
>>         /bcm/ ...
>>         /board/ ...
>>         /wpi/ ...
>>         /OK
>>
>> - bcm uses board revision specific pin numbering
>> - board uses human readable pin addressing (board revision agnostic)
>> - wpi uses wiringPi pin assignment (board revision agnostic)
>> - OK pin can be used to switch on/off OK LED on the board
>>
>> Each directory above contains files that are mapped to pins.
>> Maybe it is an overkill, i don’t know.
>>
>> I used this page as reference for pin assignments:
>> https://projects.drogon.net/raspberry-pi/wiringpi/pins/
>>
>> % du -a
>> 0       ./bcm/0
>> 0       ./bcm/1
>> 0       ./bcm/4
>> 0       ./bcm/7
>> 0       ./bcm/8
>> 0       ./bcm/9
>> 0       ./bcm/10
>> 0       ./bcm/11
>> 0       ./bcm/14
>> 0       ./bcm/15
>> 0       ./bcm/16
>> 0       ./bcm/17
>> 0       ./bcm/18
>> 0       ./bcm/21
>> 0       ./bcm/22
>> 0       ./bcm/23
>> 0       ./bcm/24
>> 0       ./bcm/25
>> 0       ./bcm
>> 0       ./board/SDA
>> 0       ./board/SCL
>> 0       ./board/GPIO7
>> 0       ./board/CE1
>> 0       ./board/CE0
>> 0       ./board/MISO
>> 0       ./board/MOSI
>> 0       ./board/SCLK
>> 0       ./board/TxD
>> 0       ./board/RxD
>> 0       ./board/GPIO0
>> 0       ./board/GPIO1
>> 0       ./board/GPIO2
>> 0       ./board/GPIO3
>> 0       ./board/GPIO4
>> 0       ./board/GPIO5
>> 0       ./board/GPIO6
>> 0       ./board
>> 0       ./wpi/8
>> 0       ./wpi/9
>> 0       ./wpi/7
>> 0       ./wpi/11
>> 0       ./wpi/10
>> 0       ./wpi/13
>> 0       ./wpi/12
>> 0       ./wpi/14
>> 0       ./wpi/15
>> 0       ./wpi/16
>> 0       ./wpi/0
>> 0       ./wpi/1
>> 0       ./wpi/2
>> 0       ./wpi/3
>> 0       ./wpi/4
>> 0       ./wpi/5
>> 0       ./wpi/6
>> 0       ./wpi
>> 0       ./OK
>> 0       .
>>
>> Reference:
>> - mount gpio:
>>         % bind -a '#G’ /dev
>> - read pin state:
>>         % cat /dev/gpio/board/GPIO0
>> - write pin state:
>>         % echo 1 > /dev/gpio/board/GPIO0
>>         % echo 0 > /dev/gpio/board/GPIO0
>> - select pin function:
>>         % echo func out > /dev/gpio/board/GPIO0
>> (possible functions are: "in", "out", "f5", "f4", "f0", "f1", "f2", "f3”)
>> - select pin pull state:
>>         % echo pull up > /dev/gpio/board/GPIO0
>> (possible pull states are: "off", "down", "up”)
>>
>> This is completely untested. I’m still waiting for cables and breadboard,
>> i don’t want to play with pins until i’ll have it. Though OK pin (LED)
>> seems to behave.
>> Maybe something in this implementation is wrong or has no sense at all?
>> If anyone would like to try to play with it, here is the commit (also
>> includes /dev/cputemp i sent to this list some time ago). I don’t want to
>> send the patch yet.
>>
>> https://github.com/elewarr/plan9-bcm/commit/18f1c470d1e16a63a55761094f723c2bd91b576d
>> Please remember it is not tested - use it at your own risk.
>>
>> Other things:
>> 1. OK LED is also used by emmc.c (search for okay(int))
>> 2. devgpio.c keeps its own version of some GPIO related functions(gpio
>> in/out, function selection, pull up/down state) defined in uartmini.c - it
>> should probably be removed from uartmini.c but because i can’t test serial
>> console connection i didn’t touch it
>> 3. Is #G/gpio scheme OK (unreserved, correct)?
>> 4. Events are not supported
>>
>> Greetings,
>> Krystian
>>
>
>

[-- Attachment #2: Type: text/html, Size: 5793 bytes --]

  reply	other threads:[~2013-12-30 22:38 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-29 22:04 Krystian Lewandowski
2013-12-29 22:34 ` erik quanstrom
2013-12-30  7:32 ` Skip Tavakkolian
2013-12-30 22:38   ` Shane Morris [this message]
     [not found] ` <35A33F66-EF03-4659-ABA1-F25082DBFE41@gmail.com>
2013-12-31 17:46   ` Krystian Lewandowski
2013-12-31 19:18     ` erik quanstrom
2013-12-31 19:37       ` Shane Morris
2013-12-31 19:48         ` Skip Tavakkolian
2013-12-31 19:50         ` erik quanstrom
2013-12-31 20:45           ` Shane Morris
2013-12-31 22:03             ` erik quanstrom
2013-12-31 22:17               ` Shane Morris
2013-12-31 22:52                 ` erik quanstrom
2013-12-31 22:57           ` Krystian Lewandowski
2013-12-31 23:16             ` Shane Morris
2013-12-31 23:35               ` Shane Morris
2014-01-01  0:04               ` Krystian Lewandowski
2014-01-01  0:12                 ` Shane Morris
2014-01-01  1:12     ` Matthew Veety
2014-01-01 11:38     ` Richard Miller
2014-01-01 22:16     ` erik quanstrom
2014-02-28 23:30       ` Krystian Lewandowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CANZw+5ezfgVsWzyOnXA+YOXimCWbp+tPUG0VYTG1tECbQHQ1BQ@mail.gmail.com \
    --to=edgecomberts@gmail.com \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).