My IceCore notes

(Parent) Started 4Nov2019, updated 6Nov – in work

This note is a follow-up from My FPGA notes where the IceCore has been discussed extensively. This note is going to be with the hands-on experience, since I am at the moment (5Nov2019) awaiting two boards in the mail.

Fold handling

This blog note uses the Collapse-O-Matic WordPress plugin to handle text folding. In addition to expanding and closing them individually you may here:

Expand All
Collapse All
Crease
expanded

To make a linear timer switch?

Fig.1 – Electromechanical timer switches. Everflourish and Theben (press for more pixels)

My goal is to make a timer switch with the IceCore FPGA board. In Verilog, doing circuit diagram drawing and using a hot soldering iron. The picture above shows the inspiration, the oldest ones I have in my box. There is no picture of any digital timer there, even if I have several. I don’t use them because they are so difficult to set up. Even changing between summer and winter time requires the paper manual.

For my timer switch I would need some buttons and a single 24 LED bargraph element mounted horizontally. So I just made up the term linear timer switch here. The ruler in the above picture is meant to show 24 LEDs which indicate that the switch will be on 08.00-11.00 and 18.00-24.00. 24 on the ruler?

Fig.2 – Linear timer scale 0..23

Shouldn’t it be 0 at the start instead, and no 24? The mechanical timers have 1..24, but that’s around a circle, and makes more sense there, because the numbers are across the index. Of ’24’ then ‘2’ is on the left side and ‘4’ on the right side of the midnight index. The only way I could do that with LEDs is to add a separate, skewed paper scale.

Fig.3 – Numbers around indices and wrap-around at midnight, as with circular layout

But perhaps with both 24 and 0, instead of the strange texting above. Like below. But then, the paper scale would become wider than the LEDs?

Fig.4 – Numbers around indices, but 0 at start of day = full 24 at midnight. Scale wider than LEDs

Some interesting matters to decide upon! Then I would need a 230V AC relay. It would become a prototype in a rather large box, expecting nothing but that future. I have no plans to make it a product, only to learn a lot. Especially FPGA and Verilog.

Credit Mari

It was actually my wife Mari who helped me brainstorm what I might make. I told her about the radio chips in all the remote controls we had, ..not anything like that, but similar – and she reminded me of a timer switch where we have had comments on its ticking. Voila!

Unpacking

Coming..

BlackIce Mx = (IceCore + BlackIce Mx) @ BlackEdge

I will start with repeating a single paragraph from the previous note.

The heading’s formula is not as recursive as it looks:

@folknology writes at myStorm forum (here) that BlackIce Mx is composed of a core (IceCore) and a carrier (BlackIce Mx), these were built and designed to the BlackEdge standard. BTW ‘BlackIce Mx’ is commonly used to refer to the combination of these parts together which is a little confusing.. And @lawrie adds and BlackEdge is sometimes used to refer to the combination that includes the future ECP5 core, which is also confusing.

Also have a look at the BlackIce wiki [17] and BlackIce Mx eBook [18] in that blog note.

myStorm forum

Newest on the bottom. I am only listing those that I have started. I give summaries, but you need to go there to get the details and see who took the time to answer:

  1. Continues from here
  2. Kneading on which breadboard? There are four expander/extender breadboards. This topic also contains an overview of them all plus circuit diagrams:. More in the post:
    1. MixMod Breadboard
    2. MixMod Proto
    3. MixMod Tester (Extender)
    4. MixMod 7-Segment Adaptor
  3. Driving LEDs directly from ICE40 pins? – 5Nov2019
    1. Pin outputs are max. 3V3 @ max 8 mA (push to max-0.4V and also pull low to 0.4V)
    2. Direct connection of 24 LEDs @ 1k should then be ok (about 1mW per LED)
    3. There are no high current LED driving pins on the ICE40 that’s used on the Mx board
  4. I2C as in comm bus or something else? – 5Nov2019
    1. I2C or I2C is always, in any context Philips communication with SDA and SCL lines etc.
    2. Any I2C functionality from the ICE40 must be done in Verilog. Any pin may be used. There is a reference to an I2C “core” (as they call it) in the post
    3. The STM32 processor has SPI and I2C pins also on the BlackEdge connectors. There is a url to a diagram of the connections in the post
    4. Download of ICE40 configuration is via the USB PRG connector to the STM32 and then over SPI to ICE40. More in the post
    5. The Lattice documentation is difficult to read because they make it rather generic and then it’s difficult to extract what’s in it for me