any raspberry pi people here?...

Lasse Langwadt Christensen wrote:
> skrev Don:

<snip>

Did you overlooked the iic part of my original followup up there? ^^^
My RPi Apps use nanosleep to react to and time external Inter-Integrated
Circuit signals. ...

OK, maybe you\'re supposed to say i2c instead of iic.

you are generating signals, not reacting and measuring. That easy you just burn cycles while waiting
and iic will work just fine with milli second timing ...

How is nanosleep going to help if you want to time when and for how long and

You need to generate and interpret signals with nano second timing to
use i2c. Here\'s a power-on code snippet from my App:

/* Initialize when power supply conditions are not met: */
nSleep (15000000L); /* Wait 15 ms, 15000000 ns */
iicWrite(0x00); /* RS=Instruction; RW=Write; */
nSleep (40L); /* Wait 40 ns */
iicWrite(0x34); /* E; DB5=Function Set; DB4=8-bit */
nSleep (230L); /* Wait 230 ns */

Danke,

--
Don, KB7RPU, https://www.qsl.net/kb7rpu
There was a young lady named Bright Whose speed was far faster than light;
She set out one day In a relative way And returned on the previous night.
 
tirsdag den 19. juli 2022 kl. 03.01.14 UTC+2 skrev Don:
Lasse Langwadt Christensen wrote:
skrev Don:
snip
Did you overlooked the iic part of my original followup up there? ^^^
My RPi Apps use nanosleep to react to and time external Inter-Integrated
Circuit signals. ...

OK, maybe you\'re supposed to say i2c instead of iic.

you are generating signals, not reacting and measuring. That easy you just burn cycles while waiting
and iic will work just fine with milli second timing ...

How is nanosleep going to help if you want to time when and for how long and
You need to generate and interpret signals with nano second timing to
use i2c. Here\'s a power-on code snippet from my App:

/* Initialize when power supply conditions are not met: */
nSleep (15000000L); /* Wait 15 ms, 15000000 ns */
iicWrite(0x00); /* RS=Instruction; RW=Write; */
nSleep (40L); /* Wait 40 ns */
iicWrite(0x34); /* E; DB5=Function Set; DB4=8-bit */
nSleep (230L); /* Wait 230 ns */

it doesn\'t time the input from an external event...

and if you changed 40ns to 10ms I suspect it wouldn\'t change a thing
 
On 7/18/2022 6:01 PM, Don wrote:
Lasse Langwadt Christensen wrote:
skrev Don:

snip

Did you overlooked the iic part of my original followup up there? ^^^
My RPi Apps use nanosleep to react to and time external Inter-Integrated
Circuit signals. ...

OK, maybe you\'re supposed to say i2c instead of iic.

you are generating signals, not reacting and measuring. That easy you just burn cycles while waiting
and iic will work just fine with milli second timing ...

How is nanosleep going to help if you want to time when and for how long and

You need to generate and interpret signals with nano second timing to
use i2c. Here\'s a power-on code snippet from my App:

/* Initialize when power supply conditions are not met: */
nSleep (15000000L); /* Wait 15 ms, 15000000 ns */
iicWrite(0x00); /* RS=Instruction; RW=Write; */
nSleep (40L); /* Wait 40 ns */
iicWrite(0x34); /* E; DB5=Function Set; DB4=8-bit */
nSleep (230L); /* Wait 230 ns */

I\'m not sure you can rely on that giving you \"nanosecond resolution\".
I can specify delays in nanoseconds, but the \"clock\" that is *bound*
to the timer of my choosing determines the ACTUAL resolution;
nanosecond() just ensures AT LEAST the specified amount of time
(expressed in units of nanoseconds) has elapsed before the ftn
returns.

(I.e., if the underlying clock runs at 10Hz, then you\'ll just have a delay
that is a multiple of 100ms)
 
Lasse Langwadt Christensen wrote:
skrev Don:
Lasse Langwadt Christensen wrote:
skrev Don:

snip

Did you overlooked the iic part of my original followup up there? ^^^
My RPi Apps use nanosleep to react to and time external Inter-Integrated
Circuit signals. ...

OK, maybe you\'re supposed to say i2c instead of iic.

you are generating signals, not reacting and measuring. That easy you just burn cycles while waiting
and iic will work just fine with milli second timing ...

How is nanosleep going to help if you want to time when and for how long and
You need to generate and interpret signals with nano second timing to
use i2c. Here\'s a power-on code snippet from my App:

/* Initialize when power supply conditions are not met: */
nSleep (15000000L); /* Wait 15 ms, 15000000 ns */
iicWrite(0x00); /* RS=Instruction; RW=Write; */
nSleep (40L); /* Wait 40 ns */
iicWrite(0x34); /* E; DB5=Function Set; DB4=8-bit */
nSleep (230L); /* Wait 230 ns */

it doesn\'t time the input from an external event...

and if you changed 40ns to 10ms I suspect it wouldn\'t change a thing

The timing diagram says something different...

Danke,

--
Don, KB7RPU, https://www.qsl.net/kb7rpu
There was a young lady named Bright Whose speed was far faster than light;
She set out one day In a relative way And returned on the previous night.
 
On 7/18/2022 4:45 PM, John Larkin wrote:
On Mon, 18 Jul 2022 12:36:41 -0700 (PDT), Lasse Langwadt Christensen
langwadt@fonz.dk> wrote:

mandag den 18. juli 2022 kl. 21.13.15 UTC+2 skrev John Larkin:
The pi doesn\'t seem to have any general counter/timer hardware, like
ARMs usually do. I\'ve seen vague references to using the GPU to do
timings.


which version of pi?

May as well go with 4B.


I\'d like to measure frequencies and timestamp some edges, in the 1 us
sort of domain, several channels. I guess we could hang a small FPGA
off to the side if pi can\'t do it.

using a pi I assume you\'ll be running some kind of linux I don\'t see how you
could do 1us timing in linux


Of course I need hardware to do microsecond timings. The c programs
would pick up the numbers from the hardware.


maybe look at this: https://beagleboard.org/black
it uses an SoC that has two extra risc cpus with access to everything on the chip
for realtime tasks

chapter 4
https://www.ti.com/lit/ug/spruh73q/spruh73q.pdf


Do pi\'s have crystal oscillators? I guess we could add one too.

a PI has everything it needs, just add power (and an SC card*)

4B seems to have a 19.2 MHz crystal, but it doesn\'t look like it
accessable to an external gadget, like an FPGA. I can add a VCXO.

The ARM chip almost surely has a high-resolution timer onboard, the
stock Linux kernel in e.g. mainstream distros like Ubuntu isn\'t
configured for hard realtime operation but Linux can be:

<https://bristot.me/demystifying-the-real-time-linux-latency/>

<https://rt.wiki.kernel.org/index.php/Frequently_Asked_Questions#What_is_real-time.3F>

\"Average latencies of a few uS are possible on single-CPU systems\"

If you need to measure sub uS accurately Linux is probably the wrong tool.
 
On 7/18/2022 9:37 PM, bitrex wrote:
On 7/18/2022 4:45 PM, John Larkin wrote:
On Mon, 18 Jul 2022 12:36:41 -0700 (PDT), Lasse Langwadt Christensen
langwadt@fonz.dk> wrote:

mandag den 18. juli 2022 kl. 21.13.15 UTC+2 skrev John Larkin:
The pi doesn\'t seem to have any general counter/timer hardware, like
ARMs usually do. I\'ve seen vague references to using the GPU to do
timings.


which version of pi?

May as well go with 4B.


I\'d like to measure frequencies and timestamp some edges, in the 1 us
sort of domain, several channels. I guess we could hang a small FPGA
off to the side if pi can\'t do it.

using a pi I assume you\'ll be running some kind of linux I don\'t see
how you
could do 1us timing in linux


Of course I need hardware to do microsecond timings. The c programs
would pick up the numbers from the hardware.


maybe look at this: https://beagleboard.org/black
it uses an SoC that has two extra risc cpus with access to everything
on the chip
for realtime tasks

chapter 4
https://www.ti.com/lit/ug/spruh73q/spruh73q.pdf


Do pi\'s have crystal oscillators? I guess we could add one too.

a PI has everything it needs, just add power (and an SC card*)

4B seems to have a 19.2 MHz crystal, but it doesn\'t look like it
accessable to an external gadget, like an FPGA. I can add a VCXO.

The ARM chip almost surely has a high-resolution timer onboard, the
stock Linux kernel in e.g. mainstream distros like Ubuntu isn\'t
configured for hard realtime operation but Linux can be:

https://bristot.me/demystifying-the-real-time-linux-latency/

https://rt.wiki.kernel.org/index.php/Frequently_Asked_Questions#What_is_real-time.3F


\"Average latencies of a few uS are possible on single-CPU systems\"

If you need to measure sub uS accurately Linux is probably the wrong tool.

Sub 10s-of-uS, rather
 
On 7/18/2022 5:37 PM, John Larkin wrote:
On Tue, 19 Jul 2022 00:04:14 +0300, Dimiter_Popoff <dp@tgi-sci.com
wrote:

On 7/18/2022 23:55, John Larkin wrote:
On Mon, 18 Jul 2022 22:23:21 +0300, Dimiter_Popoff <dp@tgi-sci.com
wrote:

On 7/18/2022 22:13, John Larkin wrote:


The pi doesn\'t seem to have any general counter/timer hardware, like
ARMs usually do. I\'ve seen vague references to using the GPU to do
timings.

I\'d like to measure frequencies and timestamp some edges, in the 1 us
sort of domain, several channels. I guess we could hang a small FPGA
off to the side if pi can\'t do it.

Do pi\'s have crystal oscillators? I guess we could add one too.




Are you serious about using yet another aliexpress toy for some
real design?

https://en.wikipedia.org/wiki/Raspberry_Pi
Not exactly a toy. But it would save us using up our stock of FPGAs
and ARM chips, and I know a guy who would like to do the programming.
He\'s a retired Fellow of United Technologies (Collins) who really
likes to code.

Oh I know it is fairly complex and it is widely used in consumer
stuff, people watch videos on it etc.
I just don\'t see that sort of thing in the kind of products you
seem to be doing. But then if it is the easiest way to do things
and you find it stable enough why not.

It seems to be pretty serious, from Broadcom, and it\'s hard to get
ARMs and ZYNQs these days. It\'s even hard to get opamps.




Other than the obvious question above, does not ARM have some
sort of timebase register as part of the core? This might be
usable to some extent, depending on how much jitter you can
tolerate.

The ARM in the pi seems to have none of the usual counter/timer stuff,
so we\'d have to do that externally, in a small FPGA probably. We might
have three frequency counters and maybe six edge time stampers in a
FIFO or something. Pretty simple.

Some torque sensors make tricky timing waveforms.


I was talking of something like the PPC timebase register, it is
a free running 64 bit counter. If they have something like that
you could timestamp events using some IRQ, the jitter you would
get would depend mostly on the IRQ latency then.
But I am really no ARM person.

We could have a free-running 32-bit counter at some MHz. Every rise or
fall on any of the three inputs, we\'d latch the counter and poke it
into the FIFO with an ID tag. Then let the c code figure it all out.

The SoC has multiple CPU cores, there have been some experiments running
Linux on some of the cores,
and doing realtime stuff on another \"bare metal\":

<https://forums.raspberrypi.com/viewtopic.php?t=245561>
 
On Tue, 19 Jul 2022 02:26:33 +0300, Dimiter_Popoff <dp@tgi-sci.com>
wrote:

On 7/19/2022 0:37, John Larkin wrote:
On Tue, 19 Jul 2022 00:04:14 +0300, Dimiter_Popoff <dp@tgi-sci.com
wrote:

On 7/18/2022 23:55, John Larkin wrote:
On Mon, 18 Jul 2022 22:23:21 +0300, Dimiter_Popoff <dp@tgi-sci.com
wrote:

On 7/18/2022 22:13, John Larkin wrote:


The pi doesn\'t seem to have any general counter/timer hardware, like
ARMs usually do. I\'ve seen vague references to using the GPU to do
timings.

I\'d like to measure frequencies and timestamp some edges, in the 1 us
sort of domain, several channels. I guess we could hang a small FPGA
off to the side if pi can\'t do it.

Do pi\'s have crystal oscillators? I guess we could add one too.




Are you serious about using yet another aliexpress toy for some
real design?

https://en.wikipedia.org/wiki/Raspberry_Pi
Not exactly a toy. But it would save us using up our stock of FPGAs
and ARM chips, and I know a guy who would like to do the programming.
He\'s a retired Fellow of United Technologies (Collins) who really
likes to code.

Oh I know it is fairly complex and it is widely used in consumer
stuff, people watch videos on it etc.
I just don\'t see that sort of thing in the kind of products you
seem to be doing. But then if it is the easiest way to do things
and you find it stable enough why not.

It seems to be pretty serious, from Broadcom, and it\'s hard to get
ARMs and ZYNQs these days. It\'s even hard to get opamps.




Other than the obvious question above, does not ARM have some
sort of timebase register as part of the core? This might be
usable to some extent, depending on how much jitter you can
tolerate.

The ARM in the pi seems to have none of the usual counter/timer stuff,
so we\'d have to do that externally, in a small FPGA probably. We might
have three frequency counters and maybe six edge time stampers in a
FIFO or something. Pretty simple.

Some torque sensors make tricky timing waveforms.


I was talking of something like the PPC timebase register, it is
a free running 64 bit counter. If they have something like that
you could timestamp events using some IRQ, the jitter you would
get would depend mostly on the IRQ latency then.
But I am really no ARM person.

We could have a free-running 32-bit counter at some MHz. Every rise or
fall on any of the three inputs, we\'d latch the counter and poke it
into the FIFO with an ID tag. Then let the c code figure it all out.

Imagine a shaft with a bunch of gear teeth on each end, each with a
magnetic pickup. Spin it and both pickups make about the same pulse
train. But torque twists the shaft and the pickup phases change. We
can get RPM and torque from the two signals. The F35 fan is driven
with a shaft at something crazy like 30K horsepower, and it twists a
lot.

Sometimes there is one missing tooth, as a rotation index. Or more
complex stuff. The signal conditioning gets interesting.

True sadism would be to just digitize the sensor waveforms.



Sounds like you are making some testing setup for someone
(surely you won\'t put a Rpi on a real F35?!)

No, I don\'t want to make anything that flies. The paperwork multiplies
the engineering time by 5x at least. But our stuff is used to test
things on the ground.




, so if it works for you
why not. Just make sure the counter you put is wide enough, that\'s
easy to underestimate... [Side story: on a 64 bit power architecture
processor there is that standard 64 bit free running timebase,
same like on 32 bit cores, where in order to read it you read the
upper longword, then the lower, then the upper again and compare
the two uppers you got; if not matching, do it again. Now on
a 64 bit machine you would expect a simple read into a 64 bit
general purpose register to be the normal way - which was the
idea, only the errata sheet says \"don\'t do it, do it the old
way\" :) ].

We\'d be OK timestamping a 32-bit, 1 MHz or so counter. An FPGA could
snapshot times coherently.
 
On Mon, 18 Jul 2022 14:05:27 -0700 (PDT), John Walliker
<jrwalliker@gmail.com> wrote:

On Monday, 18 July 2022 at 21:30:01 UTC+1, lang...@fonz.dk wrote:
mandag den 18. juli 2022 kl. 22.18.25 UTC+2 skrev Don:
Lasse Langwadt Christensen wrote:
John Larkin:
The pi doesn\'t seem to have any general counter/timer hardware, like
ARMs usually do. I\'ve seen vague references to using the GPU to do
timings.


which version of pi?

I\'d like to measure frequencies and timestamp some edges, in the 1 us
sort of domain, several channels. I guess we could hang a small FPGA
off to the side if pi can\'t do it.

using a pi I assume you\'ll be running some kind of linux I don\'t see how you
could do 1us timing in linux
My RPi2B is loaded with BSD 14 and its nanosleep() function provides 1ns
resolution for my iic interface.
sure as long as your code is running and not interrupted you can busy wait with
nanosec resolution up to few ms

try reacting on a signal to measure it\'s frequency or timestamp it ....

The RasPi 4 is a very nice machine. The CM4 even more so if only you could buy one
at the moment. The CM4 has a PCI-e interface which gives lots of possibilities.
The Beaglebone Black is also good, but it has less RAM than
the Raspi 4 and only has a 100Mbit/s ethernet port whereas the PI 4 has 1Gbit/s.
The extra processors do allow time critical software to be written though.

There are add-on modules with real time clock chips for the Pi and the BBB.

Alternatively, look at the RasPi pico board or the RP2040 microcontroller which it
uses. Both of these have the big advantage that they can be bought in large quantities
at the moment. The RP2040 has multiple programmable state machines which
allow very complex i/o operations with precise timing. There are also multiple
counter-timer modules. It is a two-core ARM M0+.
Finally, don\'t forget the XMOS devices, many of which support USB and/or ethernet
together with deterministic timing and multiple cores.
John

We use a Zynq for serious projects, dual ARM and a heap of FPGA, but
they are hard to get so I\'m conserving them for big stuff. This little
tach thing will be dinky.
 
On 7/18/2022 6:37 PM, bitrex wrote:
\"Average latencies of a few uS are possible on single-CPU systems\"

If you need to measure sub uS accurately Linux is probably the wrong tool.

The trick to (inexpensive) measuring times/intervals is to use
the hardware event to trigger (or capture) something that the
software can *later* get around to reading.

E.g., let it start a (hardware) timer and let the software (IRQ)
read the \"current time\" as well as the time on the triggered timer
and use the two to determine the system time at which the trigger
event occurred.

(Of course, the two timers must be accessed in a single critical
region but you can additionally fudge the math based on the work
required to compute the difference)

There was an era when counter/timers were truly appreciated
(e.g., the 9513) as nearly universal peripherals (timing,
analog-digital-analog conversion, etc.).

Nowadays, timers are becoming less clever (less real estate).
 
On a sunny day (Mon, 18 Jul 2022 12:13:05 -0700) it happened John Larkin
<jlarkin@highland_atwork_technology.com> wrote in
<gobbdhpb39nfocgdnqd87vn8kkoc1vgtl6@4ax.com>:

The pi doesn\'t seem to have any general counter/timer hardware, like
ARMs usually do. I\'ve seen vague references to using the GPU to do
timings.

I\'d like to measure frequencies and timestamp some edges, in the 1 us
sort of domain, several channels. I guess we could hang a small FPGA
off to the side if pi can\'t do it.

Do pi\'s have crystal oscillators?

dunno, did not see any crystal..

> I guess we could add one too.

In this project I use an old raspberry as signal generator.
http://panteltje.com/panteltje/newsflex/download.html#freq_pi

Look at freq_pi.c
it contains part of
BCM2835-ARM-Peripherals.pdf
page 105
6.3 General Purpose GPIO Clocks

That is for an old Pi, have not looked up the Pi4 yet (have 2, one with 4 GB and one with 8 GB RAM)
Somebody did an FM radio modulator with the old PI.

Raspberry Pies are also difficult to get these days.
I use the 8 GB for web browsing,

Just been biking in the heatwave here, code orange well only 31 C,
wintercoat and hat on.. its cooler on the bike (airflow) than standing still in the sun!
 
On Tue, 19 Jul 2022 10:51:13 GMT, Jan Panteltje
<pNaonStpealmtje@yahoo.com> wrote:

On a sunny day (Mon, 18 Jul 2022 12:13:05 -0700) it happened John Larkin
jlarkin@highland_atwork_technology.com> wrote in
gobbdhpb39nfocgdnqd87vn8kkoc1vgtl6@4ax.com>:



The pi doesn\'t seem to have any general counter/timer hardware, like
ARMs usually do. I\'ve seen vague references to using the GPU to do
timings.

I\'d like to measure frequencies and timestamp some edges, in the 1 us
sort of domain, several channels. I guess we could hang a small FPGA
off to the side if pi can\'t do it.

Do pi\'s have crystal oscillators?

dunno, did not see any crystal..

I guess we could add one too.

In this project I use an old raspberry as signal generator.
http://panteltje.com/panteltje/newsflex/download.html#freq_pi

Look at freq_pi.c
it contains part of
BCM2835-ARM-Peripherals.pdf
page 105
6.3 General Purpose GPIO Clocks

That is for an old Pi, have not looked up the Pi4 yet (have 2, one with 4 GB and one with 8 GB RAM)
Somebody did an FM radio modulator with the old PI.

Raspberry Pies are also difficult to get these days.
I use the 8 GB for web browsing,

Just been biking in the heatwave here, code orange well only 31 C,
wintercoat and hat on.. its cooler on the bike (airflow) than standing still in the sun!

It\'s been cold and foggy here. Mo looks cute in a parka.

It\'s 52F here right now. The heater is running.
 
jlarkin@highlandsniptechnology.com wrote:
On Mon, 18 Jul 2022 14:05:27 -0700 (PDT), John Walliker
jrwalliker@gmail.com> wrote:

On Monday, 18 July 2022 at 21:30:01 UTC+1, lang...@fonz.dk wrote:
mandag den 18. juli 2022 kl. 22.18.25 UTC+2 skrev Don:
Lasse Langwadt Christensen wrote:
John Larkin:
The pi doesn\'t seem to have any general counter/timer hardware, like
ARMs usually do. I\'ve seen vague references to using the GPU to do
timings.


which version of pi?

I\'d like to measure frequencies and timestamp some edges, in the 1 us
sort of domain, several channels. I guess we could hang a small FPGA
off to the side if pi can\'t do it.

using a pi I assume you\'ll be running some kind of linux I don\'t see how you
could do 1us timing in linux
My RPi2B is loaded with BSD 14 and its nanosleep() function provides 1ns
resolution for my iic interface.
sure as long as your code is running and not interrupted you can busy wait with
nanosec resolution up to few ms

try reacting on a signal to measure it\'s frequency or timestamp it ....

The RasPi 4 is a very nice machine. The CM4 even more so if only you could buy one
at the moment. The CM4 has a PCI-e interface which gives lots of possibilities.
The Beaglebone Black is also good, but it has less RAM than
the Raspi 4 and only has a 100Mbit/s ethernet port whereas the PI 4 has 1Gbit/s.
The extra processors do allow time critical software to be written though.

There are add-on modules with real time clock chips for the Pi and the BBB.

Alternatively, look at the RasPi pico board or the RP2040 microcontroller which it
uses. Both of these have the big advantage that they can be bought in large quantities
at the moment. The RP2040 has multiple programmable state machines which
allow very complex i/o operations with precise timing. There are also multiple
counter-timer modules. It is a two-core ARM M0+.
Finally, don\'t forget the XMOS devices, many of which support USB and/or ethernet
together with deterministic timing and multiple cores.
John

We use a Zynq for serious projects, dual ARM and a heap of FPGA, but
they are hard to get so I\'m conserving them for big stuff. This little
tach thing will be dinky.

Well, you probably have a lot of MC68332s still in stock. They\'re
pretty nice for timing stuff, if you don\'t mind using external memory. ;)

Cheers

Phil Hobbs

(Whose first embedded design used a 68332, but never got built)

--
Dr Philip C D Hobbs
Principal Consultant
ElectroOptical Innovations LLC / Hobbs ElectroOptics
Optics, Electro-optics, Photonics, Analog Electronics
Briarcliff Manor NY 10510

http://electrooptical.net
http://hobbs-eo.com
 
On Tue, 19 Jul 2022 09:10:41 -0400, Phil Hobbs
<pcdhSpamMeSenseless@electrooptical.net> wrote:

jlarkin@highlandsniptechnology.com wrote:
On Mon, 18 Jul 2022 14:05:27 -0700 (PDT), John Walliker
jrwalliker@gmail.com> wrote:

On Monday, 18 July 2022 at 21:30:01 UTC+1, lang...@fonz.dk wrote:
mandag den 18. juli 2022 kl. 22.18.25 UTC+2 skrev Don:
Lasse Langwadt Christensen wrote:
John Larkin:
The pi doesn\'t seem to have any general counter/timer hardware, like
ARMs usually do. I\'ve seen vague references to using the GPU to do
timings.


which version of pi?

I\'d like to measure frequencies and timestamp some edges, in the 1 us
sort of domain, several channels. I guess we could hang a small FPGA
off to the side if pi can\'t do it.

using a pi I assume you\'ll be running some kind of linux I don\'t see how you
could do 1us timing in linux
My RPi2B is loaded with BSD 14 and its nanosleep() function provides 1ns
resolution for my iic interface.
sure as long as your code is running and not interrupted you can busy wait with
nanosec resolution up to few ms

try reacting on a signal to measure it\'s frequency or timestamp it ....

The RasPi 4 is a very nice machine. The CM4 even more so if only you could buy one
at the moment. The CM4 has a PCI-e interface which gives lots of possibilities.
The Beaglebone Black is also good, but it has less RAM than
the Raspi 4 and only has a 100Mbit/s ethernet port whereas the PI 4 has 1Gbit/s.
The extra processors do allow time critical software to be written though.

There are add-on modules with real time clock chips for the Pi and the BBB.

Alternatively, look at the RasPi pico board or the RP2040 microcontroller which it
uses. Both of these have the big advantage that they can be bought in large quantities
at the moment. The RP2040 has multiple programmable state machines which
allow very complex i/o operations with precise timing. There are also multiple
counter-timer modules. It is a two-core ARM M0+.
Finally, don\'t forget the XMOS devices, many of which support USB and/or ethernet
together with deterministic timing and multiple cores.
John

We use a Zynq for serious projects, dual ARM and a heap of FPGA, but
they are hard to get so I\'m conserving them for big stuff. This little
tach thing will be dinky.


Well, you probably have a lot of MC68332s still in stock. They\'re
pretty nice for timing stuff, if you don\'t mind using external memory. ;)

Cheers

Phil Hobbs

(Whose first embedded design used a 68332, but never got built)

68332 has been around for decades and is still available. It\'s a
wonderful chip. It has 16 TPU timer channels that could do what I
want. But it\'s big and expensive, and doesn\'t have USB or ethernet.

The architecture and instruction set are beautiful. It was a joy to
program. We\'ve used about 16,000 of them so far.
 
On a sunny day (Tue, 19 Jul 2022 04:48:52 -0700) it happened
jlarkin@highlandsniptechnology.com wrote in
<066ddh5rrsupne4iqvks5gjj8ge1qhefe6@4ax.com>:

On Tue, 19 Jul 2022 10:51:13 GMT, Jan Panteltje
pNaonStpealmtje@yahoo.com> wrote:

On a sunny day (Mon, 18 Jul 2022 12:13:05 -0700) it happened John Larkin
jlarkin@highland_atwork_technology.com> wrote in
gobbdhpb39nfocgdnqd87vn8kkoc1vgtl6@4ax.com>:



The pi doesn\'t seem to have any general counter/timer hardware, like
ARMs usually do. I\'ve seen vague references to using the GPU to do
timings.

I\'d like to measure frequencies and timestamp some edges, in the 1 us
sort of domain, several channels. I guess we could hang a small FPGA
off to the side if pi can\'t do it.

Do pi\'s have crystal oscillators?

dunno, did not see any crystal..

I guess we could add one too.

In this project I use an old raspberry as signal generator.
http://panteltje.com/panteltje/newsflex/download.html#freq_pi

Look at freq_pi.c
it contains part of
BCM2835-ARM-Peripherals.pdf
page 105
6.3 General Purpose GPIO Clocks

That is for an old Pi, have not looked up the Pi4 yet (have 2, one with 4 GB and one with 8 GB RAM)
Somebody did an FM radio modulator with the old PI.

Raspberry Pies are also difficult to get these days.
I use the 8 GB for web browsing,

Just been biking in the heatwave here, code orange well only 31 C,
wintercoat and hat on.. its cooler on the bike (airflow) than standing still in the sun!


It\'s been cold and foggy here. Mo looks cute in a parka.

It\'s 52F here right now. The heater is running.

Now its 36 on my outside garden thermometer in the shadow,
but sure some heat comes from the fence it is hanging from.
Inside way above 30 this afternoon, no aircos here.

UK seems to be in alarm mode because highest temperature ever measured in London?
Somebody here pointed me to that Arabian clothing like what those sheiks have :)
Not a bad idea perhaps if it stays this way.
 
On Tue, 19 Jul 2022 15:07:32 GMT, Jan Panteltje
<pNaonStpealmtje@yahoo.com> wrote:

On a sunny day (Tue, 19 Jul 2022 04:48:52 -0700) it happened
jlarkin@highlandsniptechnology.com wrote in
066ddh5rrsupne4iqvks5gjj8ge1qhefe6@4ax.com>:

On Tue, 19 Jul 2022 10:51:13 GMT, Jan Panteltje
pNaonStpealmtje@yahoo.com> wrote:

On a sunny day (Mon, 18 Jul 2022 12:13:05 -0700) it happened John Larkin
jlarkin@highland_atwork_technology.com> wrote in
gobbdhpb39nfocgdnqd87vn8kkoc1vgtl6@4ax.com>:



The pi doesn\'t seem to have any general counter/timer hardware, like
ARMs usually do. I\'ve seen vague references to using the GPU to do
timings.

I\'d like to measure frequencies and timestamp some edges, in the 1 us
sort of domain, several channels. I guess we could hang a small FPGA
off to the side if pi can\'t do it.

Do pi\'s have crystal oscillators?

dunno, did not see any crystal..

I guess we could add one too.

In this project I use an old raspberry as signal generator.
http://panteltje.com/panteltje/newsflex/download.html#freq_pi

Look at freq_pi.c
it contains part of
BCM2835-ARM-Peripherals.pdf
page 105
6.3 General Purpose GPIO Clocks

That is for an old Pi, have not looked up the Pi4 yet (have 2, one with 4 GB and one with 8 GB RAM)
Somebody did an FM radio modulator with the old PI.

Raspberry Pies are also difficult to get these days.
I use the 8 GB for web browsing,

Just been biking in the heatwave here, code orange well only 31 C,
wintercoat and hat on.. its cooler on the bike (airflow) than standing still in the sun!


It\'s been cold and foggy here. Mo looks cute in a parka.

It\'s 52F here right now. The heater is running.

Now its 36 on my outside garden thermometer in the shadow,
but sure some heat comes from the fence it is hanging from.
Inside way above 30 this afternoon, no aircos here.

UK seems to be in alarm mode because highest temperature ever measured in London?
Somebody here pointed me to that Arabian clothing like what those sheiks have :)
Not a bad idea perhaps if it stays this way.

It\'s been raining anchovies here.
 
tirsdag den 19. juli 2022 kl. 17.04.13 UTC+2 skrev jla...@highlandsniptechnology.com:
On Tue, 19 Jul 2022 09:10:41 -0400, Phil Hobbs
pcdhSpamM...@electrooptical.net> wrote:

jla...@highlandsniptechnology.com wrote:
On Mon, 18 Jul 2022 14:05:27 -0700 (PDT), John Walliker
jrwal...@gmail.com> wrote:

On Monday, 18 July 2022 at 21:30:01 UTC+1, lang...@fonz.dk wrote:
mandag den 18. juli 2022 kl. 22.18.25 UTC+2 skrev Don:
Lasse Langwadt Christensen wrote:
John Larkin:
The pi doesn\'t seem to have any general counter/timer hardware, like
ARMs usually do. I\'ve seen vague references to using the GPU to do
timings.


which version of pi?

I\'d like to measure frequencies and timestamp some edges, in the 1 us
sort of domain, several channels. I guess we could hang a small FPGA
off to the side if pi can\'t do it.

using a pi I assume you\'ll be running some kind of linux I don\'t see how you
could do 1us timing in linux
My RPi2B is loaded with BSD 14 and its nanosleep() function provides 1ns
resolution for my iic interface.
sure as long as your code is running and not interrupted you can busy wait with
nanosec resolution up to few ms

try reacting on a signal to measure it\'s frequency or timestamp it ....

The RasPi 4 is a very nice machine. The CM4 even more so if only you could buy one
at the moment. The CM4 has a PCI-e interface which gives lots of possibilities.
The Beaglebone Black is also good, but it has less RAM than
the Raspi 4 and only has a 100Mbit/s ethernet port whereas the PI 4 has 1Gbit/s.
The extra processors do allow time critical software to be written though.

There are add-on modules with real time clock chips for the Pi and the BBB.

Alternatively, look at the RasPi pico board or the RP2040 microcontroller which it
uses. Both of these have the big advantage that they can be bought in large quantities
at the moment. The RP2040 has multiple programmable state machines which
allow very complex i/o operations with precise timing. There are also multiple
counter-timer modules. It is a two-core ARM M0+.
Finally, don\'t forget the XMOS devices, many of which support USB and/or ethernet
together with deterministic timing and multiple cores.
John

We use a Zynq for serious projects, dual ARM and a heap of FPGA, but
they are hard to get so I\'m conserving them for big stuff. This little
tach thing will be dinky.


Well, you probably have a lot of MC68332s still in stock. They\'re
pretty nice for timing stuff, if you don\'t mind using external memory. ;)

Cheers

Phil Hobbs

(Whose first embedded design used a 68332, but never got built)
68332 has been around for decades and is still available. It\'s a
wonderful chip. It has 16 TPU timer channels that could do what I
want. But it\'s big and expensive, and doesn\'t have USB or ethernet.

if USB will do almost any MCU with USB will do

https://www.digikey.dk/da/products/detail/raspberry-pi/SC0914-13/14306010
https://www.digikey.dk/da/products/detail/winbond-electronics/W25Q16JVSNIQ/6193768

plenty in stock

or if feeling lazy, https://www.waveshare.com/product/raspberry-pi-pico.htm?sku=19310
 
On Tuesday, 19 July 2022 at 17:08:53 UTC+1, lang...@fonz.dk wrote:
tirsdag den 19. juli 2022 kl. 17.04.13 UTC+2 skrev jla...@highlandsniptechnology.com:
On Tue, 19 Jul 2022 09:10:41 -0400, Phil Hobbs
pcdhSpamM...@electrooptical.net> wrote:

jla...@highlandsniptechnology.com wrote:
On Mon, 18 Jul 2022 14:05:27 -0700 (PDT), John Walliker
jrwal...@gmail.com> wrote:

On Monday, 18 July 2022 at 21:30:01 UTC+1, lang...@fonz.dk wrote:
mandag den 18. juli 2022 kl. 22.18.25 UTC+2 skrev Don:
Lasse Langwadt Christensen wrote:
John Larkin:
The pi doesn\'t seem to have any general counter/timer hardware, like
ARMs usually do. I\'ve seen vague references to using the GPU to do
timings.


which version of pi?

I\'d like to measure frequencies and timestamp some edges, in the 1 us
sort of domain, several channels. I guess we could hang a small FPGA
off to the side if pi can\'t do it.

using a pi I assume you\'ll be running some kind of linux I don\'t see how you
could do 1us timing in linux
My RPi2B is loaded with BSD 14 and its nanosleep() function provides 1ns
resolution for my iic interface.
sure as long as your code is running and not interrupted you can busy wait with
nanosec resolution up to few ms

try reacting on a signal to measure it\'s frequency or timestamp it ....

The RasPi 4 is a very nice machine. The CM4 even more so if only you could buy one
at the moment. The CM4 has a PCI-e interface which gives lots of possibilities.
The Beaglebone Black is also good, but it has less RAM than
the Raspi 4 and only has a 100Mbit/s ethernet port whereas the PI 4 has 1Gbit/s.
The extra processors do allow time critical software to be written though.

There are add-on modules with real time clock chips for the Pi and the BBB.

Alternatively, look at the RasPi pico board or the RP2040 microcontroller which it
uses. Both of these have the big advantage that they can be bought in large quantities
at the moment. The RP2040 has multiple programmable state machines which
allow very complex i/o operations with precise timing. There are also multiple
counter-timer modules. It is a two-core ARM M0+.
Finally, don\'t forget the XMOS devices, many of which support USB and/or ethernet
together with deterministic timing and multiple cores.
John

We use a Zynq for serious projects, dual ARM and a heap of FPGA, but
they are hard to get so I\'m conserving them for big stuff. This little
tach thing will be dinky.


Well, you probably have a lot of MC68332s still in stock. They\'re
pretty nice for timing stuff, if you don\'t mind using external memory. ;)

Cheers

Phil Hobbs

(Whose first embedded design used a 68332, but never got built)
68332 has been around for decades and is still available. It\'s a
wonderful chip. It has 16 TPU timer channels that could do what I
want. But it\'s big and expensive, and doesn\'t have USB or ethernet.
if USB will do almost any MCU with USB will do

https://www.digikey.dk/da/products/detail/raspberry-pi/SC0914-13/14306010
https://www.digikey.dk/da/products/detail/winbond-electronics/W25Q16JVSNIQ/6193768

plenty in stock

or if feeling lazy, https://www.waveshare.com/product/raspberry-pi-pico.htm?sku=19310

Yes, it really is worth looking closely at the RP2040 or the pico board. It is probably
massive overkill for what you want to do, but at a cost of 1USD for the chip and 4USD
for the assembled pico board it hardly matters.
Digikey and Mouser between them have over 166000 chips in stock and around
33000 pico boards. In the UK Farnell and RS between them have about another
517000 RP2040 chips in stock.
There is also a version of the pico with WiFi, but you probably don\'t need that.
I am planning to use an RP2040 for a multi-phase switched mode isolated power
supply.

John
 
On Tue, 19 Jul 2022 10:50:49 -0700 (PDT), John Walliker
<jrwalliker@gmail.com> wrote:

On Tuesday, 19 July 2022 at 17:08:53 UTC+1, lang...@fonz.dk wrote:
tirsdag den 19. juli 2022 kl. 17.04.13 UTC+2 skrev jla...@highlandsniptechnology.com:
On Tue, 19 Jul 2022 09:10:41 -0400, Phil Hobbs
pcdhSpamM...@electrooptical.net> wrote:

jla...@highlandsniptechnology.com wrote:
On Mon, 18 Jul 2022 14:05:27 -0700 (PDT), John Walliker
jrwal...@gmail.com> wrote:

On Monday, 18 July 2022 at 21:30:01 UTC+1, lang...@fonz.dk wrote:
mandag den 18. juli 2022 kl. 22.18.25 UTC+2 skrev Don:
Lasse Langwadt Christensen wrote:
John Larkin:
The pi doesn\'t seem to have any general counter/timer hardware, like
ARMs usually do. I\'ve seen vague references to using the GPU to do
timings.


which version of pi?

I\'d like to measure frequencies and timestamp some edges, in the 1 us
sort of domain, several channels. I guess we could hang a small FPGA
off to the side if pi can\'t do it.

using a pi I assume you\'ll be running some kind of linux I don\'t see how you
could do 1us timing in linux
My RPi2B is loaded with BSD 14 and its nanosleep() function provides 1ns
resolution for my iic interface.
sure as long as your code is running and not interrupted you can busy wait with
nanosec resolution up to few ms

try reacting on a signal to measure it\'s frequency or timestamp it ....

The RasPi 4 is a very nice machine. The CM4 even more so if only you could buy one
at the moment. The CM4 has a PCI-e interface which gives lots of possibilities.
The Beaglebone Black is also good, but it has less RAM than
the Raspi 4 and only has a 100Mbit/s ethernet port whereas the PI 4 has 1Gbit/s.
The extra processors do allow time critical software to be written though.

There are add-on modules with real time clock chips for the Pi and the BBB.

Alternatively, look at the RasPi pico board or the RP2040 microcontroller which it
uses. Both of these have the big advantage that they can be bought in large quantities
at the moment. The RP2040 has multiple programmable state machines which
allow very complex i/o operations with precise timing. There are also multiple
counter-timer modules. It is a two-core ARM M0+.
Finally, don\'t forget the XMOS devices, many of which support USB and/or ethernet
together with deterministic timing and multiple cores.
John

We use a Zynq for serious projects, dual ARM and a heap of FPGA, but
they are hard to get so I\'m conserving them for big stuff. This little
tach thing will be dinky.


Well, you probably have a lot of MC68332s still in stock. They\'re
pretty nice for timing stuff, if you don\'t mind using external memory. ;)

Cheers

Phil Hobbs

(Whose first embedded design used a 68332, but never got built)
68332 has been around for decades and is still available. It\'s a
wonderful chip. It has 16 TPU timer channels that could do what I
want. But it\'s big and expensive, and doesn\'t have USB or ethernet.
if USB will do almost any MCU with USB will do

https://www.digikey.dk/da/products/detail/raspberry-pi/SC0914-13/14306010
https://www.digikey.dk/da/products/detail/winbond-electronics/W25Q16JVSNIQ/6193768

plenty in stock

or if feeling lazy, https://www.waveshare.com/product/raspberry-pi-pico.htm?sku=19310

Yes, it really is worth looking closely at the RP2040 or the pico board. It is probably
massive overkill for what you want to do, but at a cost of 1USD for the chip and 4USD
for the assembled pico board it hardly matters.
Digikey and Mouser between them have over 166000 chips in stock and around
33000 pico boards. In the UK Farnell and RS between them have about another
517000 RP2040 chips in stock.
There is also a version of the pico with WiFi, but you probably don\'t need that.
I am planning to use an RP2040 for a multi-phase switched mode isolated power
supply.

John

Pico doesn\'t have ethernet. I\'d like that.
 
On Tuesday, 19 July 2022 at 21:29:11 UTC+1, John Larkin wrote:
On Tue, 19 Jul 2022 10:50:49 -0700 (PDT), John Walliker
jrwal...@gmail.com> wrote:

On Tuesday, 19 July 2022 at 17:08:53 UTC+1, lang...@fonz.dk wrote:
tirsdag den 19. juli 2022 kl. 17.04.13 UTC+2 skrev jla...@highlandsniptechnology.com:
On Tue, 19 Jul 2022 09:10:41 -0400, Phil Hobbs
pcdhSpamM...@electrooptical.net> wrote:

jla...@highlandsniptechnology.com wrote:
On Mon, 18 Jul 2022 14:05:27 -0700 (PDT), John Walliker
jrwal...@gmail.com> wrote:

On Monday, 18 July 2022 at 21:30:01 UTC+1, lang...@fonz.dk wrote:
mandag den 18. juli 2022 kl. 22.18.25 UTC+2 skrev Don:
Lasse Langwadt Christensen wrote:
John Larkin:
The pi doesn\'t seem to have any general counter/timer hardware, like
ARMs usually do. I\'ve seen vague references to using the GPU to do
timings.


which version of pi?

I\'d like to measure frequencies and timestamp some edges, in the 1 us
sort of domain, several channels. I guess we could hang a small FPGA
off to the side if pi can\'t do it.

using a pi I assume you\'ll be running some kind of linux I don\'t see how you
could do 1us timing in linux
My RPi2B is loaded with BSD 14 and its nanosleep() function provides 1ns
resolution for my iic interface.
sure as long as your code is running and not interrupted you can busy wait with
nanosec resolution up to few ms

try reacting on a signal to measure it\'s frequency or timestamp it ....

The RasPi 4 is a very nice machine. The CM4 even more so if only you could buy one
at the moment. The CM4 has a PCI-e interface which gives lots of possibilities.
The Beaglebone Black is also good, but it has less RAM than
the Raspi 4 and only has a 100Mbit/s ethernet port whereas the PI 4 has 1Gbit/s.
The extra processors do allow time critical software to be written though.

There are add-on modules with real time clock chips for the Pi and the BBB.

Alternatively, look at the RasPi pico board or the RP2040 microcontroller which it
uses. Both of these have the big advantage that they can be bought in large quantities
at the moment. The RP2040 has multiple programmable state machines which
allow very complex i/o operations with precise timing. There are also multiple
counter-timer modules. It is a two-core ARM M0+.
Finally, don\'t forget the XMOS devices, many of which support USB and/or ethernet
together with deterministic timing and multiple cores.
John

We use a Zynq for serious projects, dual ARM and a heap of FPGA, but
they are hard to get so I\'m conserving them for big stuff. This little
tach thing will be dinky.


Well, you probably have a lot of MC68332s still in stock. They\'re
pretty nice for timing stuff, if you don\'t mind using external memory. ;)

Cheers

Phil Hobbs

(Whose first embedded design used a 68332, but never got built)
68332 has been around for decades and is still available. It\'s a
wonderful chip. It has 16 TPU timer channels that could do what I
want. But it\'s big and expensive, and doesn\'t have USB or ethernet.
if USB will do almost any MCU with USB will do

https://www.digikey.dk/da/products/detail/raspberry-pi/SC0914-13/14306010
https://www.digikey.dk/da/products/detail/winbond-electronics/W25Q16JVSNIQ/6193768

plenty in stock

or if feeling lazy, https://www.waveshare.com/product/raspberry-pi-pico.htm?sku=19310

Yes, it really is worth looking closely at the RP2040 or the pico board. It is probably
massive overkill for what you want to do, but at a cost of 1USD for the chip and 4USD
for the assembled pico board it hardly matters.
Digikey and Mouser between them have over 166000 chips in stock and around
33000 pico boards. In the UK Farnell and RS between them have about another
517000 RP2040 chips in stock.
There is also a version of the pico with WiFi, but you probably don\'t need that.
I am planning to use an RP2040 for a multi-phase switched mode isolated power
supply.

John
Pico doesn\'t have ethernet. I\'d like that.

You can add ethernet by using a LAN8720 chip, or using a cheap ready-made LAN8720
module. There is software support for this already available, although at the moment it
only works properly at 10Mbit/s.
https://www.raspberrypi.com/news/how-to-add-ethernet-to-raspberry-pi-pico/

John
 

Welcome to EDABoard.com

Sponsor

Back
Top