(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.
To make a linear timer switch?
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?
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.
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?
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.
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!
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.
- Continues from here
- 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:
- MixMod Breadboard
- MixMod Proto
- MixMod Tester (Extender)
- MixMod 7-Segment Adaptor
- Driving LEDs directly from ICE40 pins? – 5Nov2019
- Pin outputs are max. 3V3 @ max 8 mA (push to max-0.4V and also pull low to 0.4V)
- Direct connection of 24 LEDs @ 1k should then be ok (about 1mW per LED)
- There are no high current LED driving pins on the ICE40 that’s used on the Mx board
- I2C as in comm bus or something else? – 5Nov2019
- I2C or I2C is always, in any context Philips communication with SDA and SCL lines etc.
- 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
- 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
- Download of ICE40 configuration is via the USB PRG connector to the STM32 and then over SPI to ICE40. More in the post
- 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