Chip with simple program for Toy

In article <hl5gq4pk37khsh8h6fmsf7n5l8tbopt5sb@4ax.com>,
jjlarkin@highNOTlandTHIStechnologyPART.com says...>
On Fri, 27 Feb 2009 10:04:24 -0600, krw <krw@att.zzzzzzzzz> wrote:

In article <250gq4hrqa3jq57lfvj2o52v0cpcirripi@4ax.com>,
jjlarkin@highNOTlandTHIStechnologyPART.com says...
On Fri, 27 Feb 2009 07:32:36 -0600, krw <krw@att.zzzzzzzzz> wrote:

In article <plreq4ld0sglrav4qje96alvjiek2n8vh9@4ax.com>,
jjlarkin@highNOTlandTHIStechnologyPART.com says...
On Thu, 26 Feb 2009 22:30:46 -0600, krw <krw@att.bizzzzzzzzzzz> wrote:

On Thu, 26 Feb 2009 20:24:11 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Thu, 26 Feb 2009 15:46:00 -0600, krw <krw@att.zzzzzzzzz> wrote:

In article <UTDpl.1892$tw4.1160@nwrddc01.gnilink.net>,
bogusabdsqy@verizon.net says...
Rich Grise wrote:
On Thu, 26 Feb 2009 06:33:21 +0000, James Arthur wrote:
...
.SBTTL IRQ6 SERVICE

; The HITLOCK mechanism enforces a minimum irq-to-irq delay so
^^^^^^^^^^

IRQ-to-IRQ. There is no "irq". ;-)

Cheers!
Rich


Translating the original I paused at that line and pondered
nearly a full second, flipping it back and forth. It could
go either way.

IRQ_EN, IRQ1, or IRQ_HANDLER would certainly get capitals,
being actual hardware or software elements.

I wouldn't. To aid readability they'd be IRQ_En, IRQ1,
IRQ_Handler, or even InterruptHandler on my schematics, VHDL, and
embedded code.

Sorry, they violate the 6-character symbol limit.

Six characters? Only crappy tools had such draconian restrictions
thirty years ago.

Do I have to give all the money back?

For your coding transgressions, YES! ;-)



I like...

Flat structures

Fine. ASCII, preferably.

Everything global

Ick! Too much chance for screw-up. A simplified OO approach is
far safer.

Safer? Once my stuff works, I can count on it not breaking. And I
haven't had a stack overflow in years.
Absolutely. Variables are only within scope of only one module so
if it's changed the finger is easily pointed. This has nothing to
do with stacks.

Simple state machines; no RTOS tricks

Agreed. State machines are simple. A common structure helps even
more.

Static memory assignment

Explain?

Absolute assembly, ram variables all declared and nailed at assembly
time. Their memory address is right there in the listing.
Not necessary, and leads to other problems (see: scope).

Single source file

Ick! Reuse is important to me. Once I have a module correct I can
concentrate on other things.

My editor has advanced "copy" and "paste" features. I reuse code all
the time.
I get into trouble with copy/paste more than any other single edit
operation.

<snip>

Mimimal, archived tool set; in my case, Crimson Editor, C32
assembler,
and a few homebrew utilities.

This si fine for very simple tools. It gets much harder with FPGAs
and impossible with ASICs. The larger the project the harder this
is to do. How do you handle schematics (one reason I favor VHDL
over schematics, BTW)?

FPGA configs are generated on the side, by my FPGA guy, usually a
top-level schematic and VHDL boxes. The Xilinx project is released as
a separate part number+rev from the uP firmware. I wrote a little
linker-like command-line program that builds a runtime image
(rom/flash file) from the assembler's absolute S28 output and one or
more Xilinx .RBT files. One batch file, GO.BAT, reassembles the source
and builds the final image. Typically takes a second or so to run.
You're not archiving the tools with the project, as you indicated.

<snip>

Programs managed and released just like any other engineering
document, by rev letter; firmware installed by manufacturing just like
hardware.

Not sure I follow exactly what you're saying here. In general,
manufacturing puts the boot loaders on the boards when they're
made. The functional code is flashed at final assembly (during
ICT, ideally).

Manufacturing does it all, from formally released files and
procedures. That may be an eprom or may be a flash procedure or may be
files installed on a drive. But it's never hacked or short-cut by
engineering, and the configuration of shipped products is absolutely
known. Bastard versions, like a wrong mix of code and FPGA configs,
don't happen.
Sure, that's obvious stuff. Manufacturing doesn't have access to
our engineering drives. How it gets there is important, though.

The process is fast to develop, fast to execute (as in microseconds),
easy to do and maintain, and produces bug-free, profitable products.
What's wrong with that?

Nothing is wrong with the end. I don't agree with all of your
means to that end.

But the end is all that matters. Too many programmers, maybe most of
them, care about the means more than they care about the end. They
mainly want to play programming games.
No, the means matter too. I'll agree that most programmers are
more interested in structures than function, though.

Your process certainly WOULD NOT work in a large
project. Though I've had my fill of large projects. As an
engineer, they suck.


Yup. Part of the scheme for delivering reliable code is to restrict
the problem set. We do hard-embedded instrumentation, VME modules,
small embedded boxes, waveform generator type stuff. My methods
wouldn't scale to word processors or web browsers.
Those (large) problems exist. Just because you don't choose to
service them doesn't make their methods useless.

But the OO methods
that make sense for them don't really make sense for a 6000 line
bare-metal ROM-based instrument controller program.
Many OO methods still apply to small project (where "small" is an
ever growing quantity).

I got rid of my new Keithley DVMs, and wish I could return our new
Aeroflex spectrum anayzer, because they are both full of buggy,
nightmare code that the vendors are powerless to fix.
Even our Tek scopes don't have enough buttons for the dodads
supported. Simple scopes should be *simple*. Where is my 465?
 
speff wrote:
On Feb 24, 8:17 am, "jamesgangnc" <ja...@nospam.com> wrote:
I'm ok with fixing and adapting circuits but not so good with design. I've
come up with an electronic switch circuit but I think it could use
improvement. The goal is to turn on a 12v relay with a switch that is
closed when off and open when on. The switch also has to have one leg
grounded. It's a pressure switch with a single terminal. I also want the
relay to stay closed (on) for a couple minutes when the switch goes from on
(open) to off (closed). Here's what I've got now and it does work. But I
had to use a pretty big capacitor and I'm still only getting about a minute
of delay when going to the off state. Because I can't make the 10k resistor
any bigger. I'm thinking that it is likely possible to get a longer delay
and do it with a smaller capacitor if I was better at designing this. The
other flaw is that this slowly lowers the voltage to the relay until it
drops. The relay stays pulled to about 3 to 4 volts. I also suspect there
is a better way to keep it fully on until the rc timer expires. Thanks in
advance for any suggestions :)

http://home.earthlink.net/~jamesgangnc/schematic.jpg

(posted from google groups since it has not appeared after being sent
twice from
Forte)

Here you go, my one 555 design for 2009:-


VCC
+
| 1N4005
+---+------+--+
VCC | | | | | |
+ | | | | o /o
| | | - C| /
| | | ^ C| /
.-. .-----------. | C| o
1K0| | | 4 8 | | | |
| | | | | |
'-' +-----| 6 | | |
| 1N4148 | | 3|-+--+
+---->|-----+------+-----| 2 |
| | | | TLC555 |
| | | | 7 |-
\ o | + .-. | |
\ ### | | | 1 5 |-
\. --- | | '-----------'
o 100uF | '-' |
| | | 1M5 |
| | | |
=== === === ===
GND GND GND GND


Best regards,
Spehro Pefhany
--
"it's the network..." "The Journey is the
reward"
speff@interlog.com Info for manufacturers: http://www.trexon.com
Embedded software/hardware/analog Info for designers: http://www.speff.com
I'd sketched the same, but thought it wasn't up to the current.
Can 555s do 120mA?

Cheers,
James Arthur
 
James Arthur wrote:
speff wrote:

Here you go, my one 555 design for 2009:-


VCC
+
| 1N4005
+---+------+--+
VCC | | | | | |
+ | | | | o /o
| | | - C| /
| | | ^ C| /
.-. .-----------. | C| o
1K0| | | 4 8 | | | |
| | | | | |
'-' +-----| 6 | | |
| 1N4148 | | 3|-+--+
+---->|-----+------+-----| 2 |
| | | | TLC555 |
| | | | 7 |-
\ o | + .-. | |
\ ### | | | 1 5 |-
\. --- | | '-----------'
o 100uF | '-' |
| | | 1M5 |
| | | |
=== === === ===
GND GND GND GND



I'd sketched the same, but thought it wasn't up to the current.
Can 555s do 120mA?
Typically the maximum source or sink is 100mA. The TLC555
data sheet says 150mA absolute max, but why push your luck?
Tack on a pnp transistor to the output to handle the current:


| Vcc ----+-----------+
| | |
| R |
| R 10K |
| R |
| | e
| out ----+--RRR---b PNP
| 10K e
| |
| |
| +----+----+
| | | RLY
| - C|
| ^ C|
| | C|
| | |
| +----+----+
| |
| ===
| GND
 
On Fri, 27 Feb 2009 17:56:09 GMT, James Arthur
<bogusabdsqy@verizon.net> wrote:

speff wrote:
On Feb 24, 8:17 am, "jamesgangnc" <ja...@nospam.com> wrote:
I'm ok with fixing and adapting circuits but not so good with design. I've
come up with an electronic switch circuit but I think it could use
improvement. The goal is to turn on a 12v relay with a switch that is
closed when off and open when on. The switch also has to have one leg
grounded. It's a pressure switch with a single terminal. I also want the
relay to stay closed (on) for a couple minutes when the switch goes from on
(open) to off (closed). Here's what I've got now and it does work. But I
had to use a pretty big capacitor and I'm still only getting about a minute
of delay when going to the off state. Because I can't make the 10k resistor
any bigger. I'm thinking that it is likely possible to get a longer delay
and do it with a smaller capacitor if I was better at designing this. The
other flaw is that this slowly lowers the voltage to the relay until it
drops. The relay stays pulled to about 3 to 4 volts. I also suspect there
is a better way to keep it fully on until the rc timer expires. Thanks in
advance for any suggestions :)

http://home.earthlink.net/~jamesgangnc/schematic.jpg

(posted from google groups since it has not appeared after being sent
twice from
Forte)

Here you go, my one 555 design for 2009:-


VCC
+
| 1N4005
+---+------+--+
VCC | | | | | |
+ | | | | o /o
| | | - C| /
| | | ^ C| /
.-. .-----------. | C| o
1K0| | | 4 8 | | | |
| | | | | |
'-' +-----| 6 | | |
| 1N4148 | | 3|-+--+
+---->|-----+------+-----| 2 |
| | | | TLC555 |
| | | | 7 |-
\ o | + .-. | |
\ ### | | | 1 5 |-
\. --- | | '-----------'
o 100uF | '-' |
| | | 1M5 |
| | | |
=== === === ===
GND GND GND GND



I'd sketched the same, but thought it wasn't up to the current.
Can 555s do 120mA?

Cheers,
James Arthur

The bipolar ones are supposedly good to (sink) 200mA, but the CMOS one
I show above is only good for 100mA (sink). In both cases, you
probably shouldn't go much over half of those numbers.

But you could just replace the 1N4005 with a 2N4403 emitter follower
and make the TLC CMOS one work without adding to the parts count.
 
On Feb 27, 11:34 am, John Larkin
<jjlar...@highNOTlandTHIStechnologyPART.com> wrote:
On Fri, 27 Feb 2009 10:13:58 -0600, John Fields





jfie...@austininstruments.com> wrote:
On Fri, 27 Feb 2009 07:00:45 -0800, John Larkin
jjlar...@highNOTlandTHIStechnologyPART.com> wrote:

On Fri, 27 Feb 2009 06:42:57 -0600, John Fields
jfie...@austininstruments.com> wrote:

On Thu, 26 Feb 2009 15:51:15 -0800, John Larkin
jjlar...@highNOTlandTHIStechnologyPART.com> wrote:

On Thu, 26 Feb 2009 13:35:10 -0600, John Fields
jfie...@austininstruments.com> wrote:

On Thu, 26 Feb 2009 08:45:47 -0800, John Larkin
jjlar...@highNOTlandTHIStechnologyPART.com> wrote:

On Thu, 26 Feb 2009 10:32:55 -0600, John Fields
jfie...@austininstruments.com> wrote:

On Thu, 26 Feb 2009 09:14:12 -0600, John Fields
jfie...@austininstruments.com> wrote:

---
But... something esle was running around in my head and here it is:
a _much, much_ better way to do it, Duh...

Or just...

+V>-----------+--------+-----+----+--------+
             |                            |
           [1M]                        [COIL]
             |                            |
             |                            e
      ____   |                   / -----b   pnp darlington or
      O  O---+------------------/         c  low threshold pfet
      |      |                            |
      |   [68ľF]                          |
      |      |                            |
GND>---+------+--------+-----+-------------+

---
Huh???

RTFM

JF  

Keep working on your 555 thing. If you add enough parts, you may
eventually get it right.

Maybe, but you certainly don't have any room to criticize, what with the
paucity of parts on that abomination above.

"Paucity of parts"? I'm trying to come up with the simplest circuit
that will work, and you're trying to come up with the most complex
one. Different design goal.

---
Well, I'm trying to come up with the simplest circuit which will work
_reliably_, which is a bit different from just working.

JF  

What's unreliable about either of my circuits? Neither does precise
timing, but this isn't an eximer laser or a picosecond-resolution ICCD
camera; it's a sump pump or something. The OP can always tweak the RC
until he's satisfied with the timing, or use a pot for the timing
resistor. The thing about a simple circuit is that he can grab a few
discrete parts from RatShack and connect them up quickly and easily.

Discretes are rugged and easy to use. The more complex a circuit, the
more bugs it could have, evidenced by the multiple times you corrected
your complex 555 thing.

Besides, circuit minimization is a fun game. Try it sometime.

Now *these* need serious timing...

http://www.cymer.com/products/product_detail.cfm?key=33

http://www.andor.com/scientific_cameras/istar/

https://lasers.llnl.gov/

John- Hide quoted text -

- Show quoted text -
Thanks guys :) I think :) You've give me lots of circuits to try.
I actually ordered a few of the parts from newark as well. Realized I
needed some quad opamps to fix a dbx-223 and a couple other parts I
had been holding off on so it was worth the postage. Plus I always
order 10 or so of the cheap bits to keep expanding my parts bin.

You close on the purpose. It's a water pump on an engine. I want it
to run on for a couple minutes after shutdown. So accuracy is not an
issue.
 
On Fri, 27 Feb 2009 07:20:47 GMT, Jon Kirwan
<jonk@infinitefactors.org> wrote:

On Thu, 26 Feb 2009 18:50:35 GMT, Rich Grise <rich@example.net> wrote:

On Thu, 26 Feb 2009 02:30:47 +0000, Jon Kirwan wrote:

On Wed, 25 Feb 2009 21:52:09 GMT, Rich Grise <rich@example.net> wrote:

snip
Bank-switching is evil.

Only if you think being exposed to hardware that balances competing
needs well is evil.

Were they too cheap (or incompetent) to just stack one on top of the
other (even with mapping for the common ones) and select it with an
address bit?

Have you ever sat down and actually done a micro cpu design? I have.
It's fun. And with cheap FPGA's, it's not even expensive nor does it
require any soldering skills.
Did you design your own instruction set? What was it like?

I designed an 8-bit CPU once, for a marine data logger. It had two
instructions, MOVE and JUMP. It took about 40 TTL chips on two boards,
and had a 20 KHz, 4-phase clock. Worked fine.

John
 
On Fri, 27 Feb 2009 13:40:36 +1100, Clifford Heath
<no@spam.please.net> wrote:

John Larkin wrote:
Did you bang your head badly during that skiing spill ?:)
Nope, skiers and motorcyclists don't often land on their heads. That's
for snowboarders and horse riders.

It can be done though, I know. I don't crash often, but coming off the
side of a slope into rough snow at very high speed once, I jumped off
a little mound and landed on another mound almost 10 metres away...
except it was a minimal bit of snow covering a bush, into which my
skis vanished and stopped. I flew forward out of my bindings and did a
head-plant deep into the soft wet snow a further 8 metres away, and
distinctly recall my neck being in a strange and unusual position as
my whole body flipped violently over the top, wondering if this was
going to be my last thought. Landed flat on my back and got up just
dazed and with a stiff neck, and had to climb back up to get all my
stuff.
A few years ago, I was skiing backwards, fast, and hit a mound of
snow. My skis dug in and I got slammed on my butt, hard. The bruise
came out the other side, shock wave or something.

Last couple of crashes were into pretty deep powder, and the problem
is to dig out. It's like being buried in feathers.

Fun!

John
 
On Fri, 27 Feb 2009 07:54:10 -0600, John Fields
<jfields@austininstruments.com> wrote:

On Thu, 26 Feb 2009 18:20:34 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Thu, 26 Feb 2009 17:25:21 -0700, Jim Thompson
To-Email-Use-The-Envelope-Icon@My-Web-Site.com> wrote:


You threw stones at John F, then posted a very soft transition
solution... did you not?

I called him an old hen, which is pretty accurate.

---
That was later on, and it isn't accurate at all.

What you like to do is try to belittle anyone who catches one of your
errors in an attempt to make their position questionable and therefore
trivialize the error.

Typical cheater tactics.
---


What's wrong with
soft turnoff of a relay? The armature stays seated until it doesn't.

---
And if it leaves the contact slowly and it's breaking DC???

Does a relay armature ever leave slowly? The return spring accelerates
the mass of the moving contact assembly when the armature-to-solenoid
contact opens up, going from from metal-metal contact to an air gap.
At that instant, the magnetic reluctance increases and the holding
force drops, positive feedback. Would it acelerate much different if
the current drops off quickly or slowly?

John
 
On Fri, 27 Feb 2009 10:57:55 -0600, John Fields
<jfields@austininstruments.com> wrote:

On Fri, 27 Feb 2009 08:34:56 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Fri, 27 Feb 2009 10:13:58 -0600, John Fields
jfields@austininstruments.com> wrote:

On Fri, 27 Feb 2009 07:00:45 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Fri, 27 Feb 2009 06:42:57 -0600, John Fields
jfields@austininstruments.com> wrote:

On Thu, 26 Feb 2009 15:51:15 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Thu, 26 Feb 2009 13:35:10 -0600, John Fields
jfields@austininstruments.com> wrote:

On Thu, 26 Feb 2009 08:45:47 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Thu, 26 Feb 2009 10:32:55 -0600, John Fields
jfields@austininstruments.com> wrote:

On Thu, 26 Feb 2009 09:14:12 -0600, John Fields
jfields@austininstruments.com> wrote:


---
But... something esle was running around in my head and here it is:
a _much, much_ better way to do it, Duh...



Or just...


+V>-----------+--------+-----+----+--------+
| |
[1M] [COIL]
| |
| e
____ | / -----b pnp darlington or
O O---+------------------/ c low threshold pfet
| | |
| [68ľF] |
| | |
GND>---+------+--------+-----+-------------+

---
Huh???

RTFM

JF

Keep working on your 555 thing. If you add enough parts, you may
eventually get it right.


Maybe, but you certainly don't have any room to criticize, what with the
paucity of parts on that abomination above.

"Paucity of parts"? I'm trying to come up with the simplest circuit
that will work, and you're trying to come up with the most complex
one. Different design goal.

---
Well, I'm trying to come up with the simplest circuit which will work
_reliably_, which is a bit different from just working.

JF

What's unreliable about either of my circuits?

---
Well, one doesn't work at all like it's supposed to, and the other one
has a soft open, which is an invitation to disaster.
Why disaster?

---

Besides, circuit minimization is a fun game. Try it sometime.

---
You're preaching to the choir.
---

Now *these* need serious timing...

http://www.cymer.com/products/product_detail.cfm?key=33

http://www.andor.com/scientific_cameras/istar/

https://lasers.llnl.gov/

---
Yeah, and???
And I did them all.

John
 
In article <21ngq41td8kqjrgbereosjrn2tr26ltp71@4ax.com>,
jjlarkin@highNOTlandTHIStechnologyPART.com says...>
On Fri, 27 Feb 2009 07:20:47 GMT, Jon Kirwan
jonk@infinitefactors.org> wrote:

On Thu, 26 Feb 2009 18:50:35 GMT, Rich Grise <rich@example.net> wrote:

On Thu, 26 Feb 2009 02:30:47 +0000, Jon Kirwan wrote:

On Wed, 25 Feb 2009 21:52:09 GMT, Rich Grise <rich@example.net> wrote:

snip
Bank-switching is evil.

Only if you think being exposed to hardware that balances competing
needs well is evil.

Were they too cheap (or incompetent) to just stack one on top of the
other (even with mapping for the common ones) and select it with an
address bit?

Have you ever sat down and actually done a micro cpu design? I have.
It's fun. And with cheap FPGA's, it's not even expensive nor does it
require any soldering skills.

Did you design your own instruction set? What was it like?

I designed an 8-bit CPU once, for a marine data logger. It had two
instructions, MOVE and JUMP. It took about 40 TTL chips on two boards,
and had a 20 KHz, 4-phase clock. Worked fine.
I designed my own once out of a FPLA and some registers. It had
conditional jumps, moves, and controls (S&H timings, gain select,
channel select, etc.) for a digital voltmeter I was designing. I
wanted to use a real microprocessors but they were bad words (lose
your job bad).
 
On Fri, 27 Feb 2009 13:30:28 -0500, "Greg Neill"
<gneillRE@MOVEsympatico.ca> wrote:

James Arthur wrote:
speff wrote:

Here you go, my one 555 design for 2009:-


VCC
+
| 1N4005
+---+------+--+
VCC | | | | | |
+ | | | | o /o
| | | - C| /
| | | ^ C| /
.-. .-----------. | C| o
1K0| | | 4 8 | | | |
| | | | | |
'-' +-----| 6 | | |
| 1N4148 | | 3|-+--+
+---->|-----+------+-----| 2 |
| | | | TLC555 |
| | | | 7 |-
\ o | + .-. | |
\ ### | | | 1 5 |-
\. --- | | '-----------'
o 100uF | '-' |
| | | 1M5 |
| | | |
=== === === ===
GND GND GND GND



I'd sketched the same, but thought it wasn't up to the current.
Can 555s do 120mA?

Typically the maximum source or sink is 100mA. The TLC555
data sheet says 150mA absolute max, but why push your luck?
Tack on a pnp transistor to the output to handle the current:


| Vcc ----+-----------+
| | |
| R |
| R 10K |
| R |
| | e
| out ----+--RRR---b PNP
| 10K e
| |
| |
| +----+----+
| | | RLY
| - C|
| ^ C|
| | C|
| | |
| +----+----+
| |
| ===
| GND

Ooh, a dual-emitter transistor. I haven't seen one of them in decades.
But the ones I used had 4 leads. [1]

John

[1] used as low-offset choppers.
 
John Larkin wrote:
On Fri, 27 Feb 2009 13:30:28 -0500, "Greg Neill"
gneillRE@MOVEsympatico.ca> wrote:



Vcc ----+-----------+
| |
R |
R 10K |
R |
| e
out ----+--RRR---b PNP
10K e
|
|
+----+----+
| | RLY
- C|
^ C|
| C|
| |
+----+----+
|
===
GND



Ooh, a dual-emitter transistor. I haven't seen one of them in decades.
But the ones I used had 4 leads. [1]

John

[1] used as low-offset choppers.
D'oh! Finger problem! Good catch.
 
On Fri, 27 Feb 2009 09:02:21 -0800, John Larkin wrote:

Nothing is wrong with the end. I don't agree with all of your
means to that end.

But the end is all that matters. Too many programmers, maybe most of
them, care about the means more than they care about the end. They
mainly want to play programming games.
In software (as opposed to firmware) development, there usually isn't an
"end". If the product is any good, there will be another version. If the
programmer is any good, they will be responsible for developing it.

Making code "work" is just a small piece of the puzzle. Making it
maintainable is often at least as important, and invariably much more
complex. This is where abstraction and modularity become particularly
important.
 
On Fri, 27 Feb 2009 13:38:11 -0800, John Larkin
<jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Fri, 27 Feb 2009 07:20:47 GMT, Jon Kirwan
jonk@infinitefactors.org> wrote:

On Thu, 26 Feb 2009 18:50:35 GMT, Rich Grise <rich@example.net> wrote:

On Thu, 26 Feb 2009 02:30:47 +0000, Jon Kirwan wrote:

On Wed, 25 Feb 2009 21:52:09 GMT, Rich Grise <rich@example.net> wrote:

snip
Bank-switching is evil.

Only if you think being exposed to hardware that balances competing
needs well is evil.

Were they too cheap (or incompetent) to just stack one on top of the
other (even with mapping for the common ones) and select it with an
address bit?

Have you ever sat down and actually done a micro cpu design? I have.
It's fun. And with cheap FPGA's, it's not even expensive nor does it
require any soldering skills.

Did you design your own instruction set? What was it like?
I did two. One, many years ago using 7400 style logic gates --
simulated only. I think I may still have that one laying around
someone on disk. The other was on a Xilinx 4000 series and was
written in VHDL and tested on a demo board that didn't cost too much
and included ram and some visual peripherals like 7-segment displays
and LEDs, so that I could write programs and see them work. Mostly,
that one was to help self-teach VHDL. I bought a few books on the
subject but needed a "real project" to make sure I could actually
learn enough of it to be useful, once in a while. Both were 8-bit.

Neither were professional -- it's not my area and I don't ever expect
to sell my feeble skills in this area. My earliest interest had come
about because I'd paid a visit to MIPS back when the R2000 was
released (1986ish, I think), when it was located about a block away
from Weitek. I had a day-long attention from one of the principals
there -- Hennessey -- and I got an ear-full about the 68020 cpu (they
had a huge wall-sized mural of it) and their approach to design. I
learned a lot from that day and decided that I really liked knowing
the internals better. (Many years before that day -- perhaps 15 -- I
had been programming the HP 21MX microstore to create instructions
there, so I had had some earlier experiences that helped prepare me
for the day's education, years later.) Anyway, I just enjoyed digging
into the details and took my chances when I had them.

Both instruction sets were focused on providing me with ways to play
with the ALU, more than much else. For example, I learned about doing
simple lane changes for the shifter section and considered (but did
not implement) a combinatorial barrel shifter. The shifter I used was
applied _after_ the ALU (on its output) and simply allowed me to
select one of four choices -- left, right, normal, and status (the
status bits were fetchable, that way.) The logic section provided the
obvious logic options, plus for the two input paths into the ALU I
could select either the Q or /Q outputs of the latches there. The ALU
provided addition and that's all. The carry-in plus inversion of an
input provided negation, for example. I played around with having a
separate "R" register that latched the ALU/Shifter output before the
tri-stating buffer to the bus and separately with the idea of not
doing that, only having the buffer instead, and just using one of the
input latches as an "accumulator."

One of the harder parts to cope with was the execution engine --
getting all the outgoing control signals figured out and arranged to
arrive at the right clock and phase -- and the program counter, where
it needed access to either the bus (I did a two-step latching process,
since it was 16 bits and the internal bus was 8) or the ALU (I
eventually caved in and did up a separate ALU for the program counter
rather than use the existing one for this other purpose) and I had to
include a kind of shadow or temporary PC for indirect addressing
needs. Eventually, it started looking like real work and I stopped. I
can't recall exactly what the instruction set looked like in the end.
If you are really curious (it's not very interesting, really), I can
go find the last "reasonable state" of the docs on it and pass them
on. But it's nothing of professional caliber.

However, I did learn a lot. And I've grown to like almost every cpu I
see in the process. The PIC most especially, because it practically
exposes everything I know about how things work on the inside out into
the open where anyone can see it. I like that, in a way.

I designed an 8-bit CPU once, for a marine data logger. It had two
instructions, MOVE and JUMP. It took about 40 TTL chips on two boards,
and had a 20 KHz, 4-phase clock. Worked fine.
The 7400 version I did in simulation-only would have taken something
on that order, though perhaps twice that many SSI chips, I think. I
didn't use the 74181 in it, as I was trying to build up the entire ALU
from scratch (your basic full-adder using ripple carry.) But I'd have
to dig out the thing from where it sits on an old laptop on a shelf
somewhere to get a closer figure. (I used a simulated LCD display to
let it play simple games with me.) And because I was enjoying the
ALU/logic/shift part of the learning experience, it had plenty more
instructions than just two.

I think the experience of actually sitting down and seeing how muxes,
registers/latches, ALUs, T-bufs, etc., all work together.. and having
to fight with various choices one might make this way or that,
develops earnest respect for what actually gets designed and made and
teaches one how and when to appreciate both minimalist and extravagant
design approaches. (Rather than being a back-seat driver, kibitzing
without having a real clue about the matter.)

Jon
 
On Fri, 27 Feb 2009 13:51:36 -0800, John Larkin
<jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Fri, 27 Feb 2009 10:57:55 -0600, John Fields
jfields@austininstruments.com> wrote:

On Fri, 27 Feb 2009 08:34:56 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Fri, 27 Feb 2009 10:13:58 -0600, John Fields
jfields@austininstruments.com> wrote:

On Fri, 27 Feb 2009 07:00:45 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Fri, 27 Feb 2009 06:42:57 -0600, John Fields
jfields@austininstruments.com> wrote:

On Thu, 26 Feb 2009 15:51:15 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Thu, 26 Feb 2009 13:35:10 -0600, John Fields
jfields@austininstruments.com> wrote:

On Thu, 26 Feb 2009 08:45:47 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Thu, 26 Feb 2009 10:32:55 -0600, John Fields
jfields@austininstruments.com> wrote:

On Thu, 26 Feb 2009 09:14:12 -0600, John Fields
jfields@austininstruments.com> wrote:


---
But... something esle was running around in my head and here it is:
a _much, much_ better way to do it, Duh...



Or just...


+V>-----------+--------+-----+----+--------+
| |
[1M] [COIL]
| |
| e
____ | / -----b pnp darlington or
O O---+------------------/ c low threshold pfet
| | |
| [68ľF] |
| | |
GND>---+------+--------+-----+-------------+

---
Huh???

RTFM

JF

Keep working on your 555 thing. If you add enough parts, you may
eventually get it right.


Maybe, but you certainly don't have any room to criticize, what with the
paucity of parts on that abomination above.

"Paucity of parts"? I'm trying to come up with the simplest circuit
that will work, and you're trying to come up with the most complex
one. Different design goal.

---
Well, I'm trying to come up with the simplest circuit which will work
_reliably_, which is a bit different from just working.

JF

What's unreliable about either of my circuits?

---
Well, one doesn't work at all like it's supposed to, and the other one
has a soft open, which is an invitation to disaster.

Why disaster?
---
The arc formed when the contacts open slowly will have more time to
erode the contacts before it's quenched.
---

Besides, circuit minimization is a fun game. Try it sometime.

---
You're preaching to the choir.
---

Now *these* need serious timing...

http://www.cymer.com/products/product_detail.cfm?key=33

http://www.andor.com/scientific_cameras/istar/

https://lasers.llnl.gov/

---
Yeah, and???

And I did them all.
---
Yeah, and???

JF
 
On Fri, 27 Feb 2009 17:07:24 -0600, John Fields
<jfields@austininstruments.com> wrote:

On Fri, 27 Feb 2009 13:51:36 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Fri, 27 Feb 2009 10:57:55 -0600, John Fields
jfields@austininstruments.com> wrote:

On Fri, 27 Feb 2009 08:34:56 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Fri, 27 Feb 2009 10:13:58 -0600, John Fields
jfields@austininstruments.com> wrote:

On Fri, 27 Feb 2009 07:00:45 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Fri, 27 Feb 2009 06:42:57 -0600, John Fields
jfields@austininstruments.com> wrote:

On Thu, 26 Feb 2009 15:51:15 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Thu, 26 Feb 2009 13:35:10 -0600, John Fields
jfields@austininstruments.com> wrote:

On Thu, 26 Feb 2009 08:45:47 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Thu, 26 Feb 2009 10:32:55 -0600, John Fields
jfields@austininstruments.com> wrote:

On Thu, 26 Feb 2009 09:14:12 -0600, John Fields
jfields@austininstruments.com> wrote:


---
But... something esle was running around in my head and here it is:
a _much, much_ better way to do it, Duh...



Or just...


+V>-----------+--------+-----+----+--------+
| |
[1M] [COIL]
| |
| e
____ | / -----b pnp darlington or
O O---+------------------/ c low threshold pfet
| | |
| [68ľF] |
| | |
GND>---+------+--------+-----+-------------+

---
Huh???

RTFM

JF

Keep working on your 555 thing. If you add enough parts, you may
eventually get it right.


Maybe, but you certainly don't have any room to criticize, what with the
paucity of parts on that abomination above.

"Paucity of parts"? I'm trying to come up with the simplest circuit
that will work, and you're trying to come up with the most complex
one. Different design goal.

---
Well, I'm trying to come up with the simplest circuit which will work
_reliably_, which is a bit different from just working.

JF

What's unreliable about either of my circuits?

---
Well, one doesn't work at all like it's supposed to, and the other one
has a soft open, which is an invitation to disaster.

Why disaster?

---
The arc formed when the contacts open slowly will have more time to
erode the contacts before it's quenched.
But do the contacts open more slowly if the coil current tapers off
slowly? A spring accelerates the contact assembly in the opening
direction.

John
 
On Fri, 27 Feb 2009 22:46:55 +0000, Nobody <nobody@nowhere.com> wrote:

On Fri, 27 Feb 2009 09:02:21 -0800, John Larkin wrote:

Nothing is wrong with the end. I don't agree with all of your
means to that end.

But the end is all that matters. Too many programmers, maybe most of
them, care about the means more than they care about the end. They
mainly want to play programming games.

In software (as opposed to firmware) development, there usually isn't an
"end". If the product is any good, there will be another version. If the
programmer is any good, they will be responsible for developing it.
And since it will be revved and re-shipped forever, there's no strong
incentive to get all the bugs out. Maybe it's economically
advantageous to leave some bugs in, to annoy users and encourage them
to upgrade. Our embedded products are rarely field-upgraded, so we
want to ship them right the first time.

Making code "work" is just a small piece of the puzzle. Making it
maintainable is often at least as important, and invariably much more
complex. This is where abstraction and modularity become particularly
important.
That's where minimal abstraction and maximal flatness become
particularly important. It's easier to understand and maintain if
everything is in plain sight.

I just a few minutes shipped the first article of my new digital delay
generator to a customer in Europe. 6714 lines of bare-metal assembly,
including a reflash manager, fpga loader, RS232/Ethernet/megabit
isochronous SPI interfaces, ascii command parser, HELP system, lots of
math. It has 145 distinct serial commands.

You can pre-load delays and widths on all four pulse outputs and load
8192 such setups into ram. Then, every trigger, the next set is
installed, glitch-free, allowing delay sweeps, radar target
simulation, stroboscopic photography, whatever. That part works up to
15 KHz trigger rate, limited by the original architecture (slow dacs!)
and the pokey 20 MHz CPU.

John
 
On Fri, 27 Feb 2009 13:49:15 -0800, John Larkin
<jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Fri, 27 Feb 2009 07:54:10 -0600, John Fields
jfields@austininstruments.com> wrote:

On Thu, 26 Feb 2009 18:20:34 -0800, John Larkin
jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Thu, 26 Feb 2009 17:25:21 -0700, Jim Thompson
To-Email-Use-The-Envelope-Icon@My-Web-Site.com> wrote:


You threw stones at John F, then posted a very soft transition
solution... did you not?

I called him an old hen, which is pretty accurate.

---
That was later on, and it isn't accurate at all.

What you like to do is try to belittle anyone who catches one of your
errors in an attempt to make their position questionable and therefore
trivialize the error.

Typical cheater tactics.
---


What's wrong with
soft turnoff of a relay? The armature stays seated until it doesn't.

---
And if it leaves the contact slowly and it's breaking DC???


Does a relay armature ever leave slowly? The return spring accelerates
the mass of the moving contact assembly when the armature-to-solenoid
contact opens up, going from from metal-metal contact to an air gap.
At that instant, the magnetic reluctance increases and the holding
force drops, positive feedback. Would it acelerate much different if
the current drops off quickly or slowly?
---
I'd expect that the presence of the magnetic field, even though
insufficient to keep the armature in contact with the pole piece would
still fight against the spring and slow down the acceleration of the
contact.

Aromat (Nais, Matsushita) seem to agree with me:

news:qtugq49954qasb38h05eggcb0tqp2nlnl8@4ax.com

See "Snap Action".

JF
 
On Fri, 27 Feb 2009 15:29:03 -0800, John Larkin
<jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Fri, 27 Feb 2009 17:07:24 -0600, John Fields
jfields@austininstruments.com> wrote:

---
The arc formed when the contacts open slowly will have more time to
erode the contacts before it's quenched.

But do the contacts open more slowly if the coil current tapers off
slowly?
---
Yes.
---

A spring accelerates the contact assembly in the opening
direction.
---
And the magnetic field still present when the armature leaves the pole
piece causes that acceleration to be less than it would be if the
magnetic field weren't there.

JF
 
On Thu, 26 Feb 2009 20:31:38 -0800, John Larkin
<jjlarkin@highNOTlandTHIStechnologyPART.com> wrote:

On Thu, 26 Feb 2009 19:41:03 GMT, Rich Grise <rich@example.net> wrote:

On Wed, 25 Feb 2009 14:38:34 -0800, John Larkin wrote:

REAL PROGRAMMERS DON'T USE LOWER CASE.

So, how are those FORTRAN FPGAs working out for you? ;-)

Cheers!
Rich

Lots of scientific types still program in FORTRAN. Astronomers, I've
been told.
Not just astronomers. AIUI, FORTRAN still has the best complex number
support, though APL has to be in there.

FORTRAN is now over 50 years old.
So is COBOL.
 

Welcome to EDABoard.com

Sponsor

Back
Top