|
Hello, nice to meet you. I am Ignorant-Ignorant, a new graduate employee of Macnica 2022. I am a graduate of the Department of Electrical and Electronic Engineering, but my initial state is that I cannot read schematics, am afraid of soldering, and cannot program. |
Here, I would like to reconfirm what I wish I had known in advance, looking back on the contents of the practical training, and use them as [lessons for my past self].
Now, please take a look at the struggles I went through during the three months.
First of all
What Ignorant-Ignorant created using FPGA is a "7-segment LED clock.
I know there are various impressions from people, such as "I remember such a mistake, I missed it" or "I just couldn't figure out this part".
If you are wondering what FPGA is, please refer to my senior's article "What is FPGA? If you are wondering what FPGA is, please refer to my senior's article , "What is FPGA? What is FPGA?
Table of Contents
This is the first part! I'm going to talk about some things that happened to me while I was writing the specifications and making the expansion board. I'll tell you what I thought " I didn't know!
- Introduction of production
- Components used and development software
- Practice Tasks and Plans
- Creating specifications
- Soldering
- Things I didn't know
- Points I wish I had made
- Next preview
Introduction of production
First of all, please take a look at the completed 7-segment LED clock (hereafter referred to as "7seg clock").
The 7-segment LED normally displays hours and minutes in four digits, like 14:30, but the last two digits switch to seconds only when the
push-button is pressed.
The dot-matrix LED displays a face, which shows an expression according to the time on the 7-segment display ❤
Components used and development software
The following parts and development software were used to create the 7seg clock.
Components
|
Intel® Cyclone® 10 LP Evaluation Kit EK-10CL025U256 |
7-segment LED OSL-40562-IG |
Dot matrix LED MOA20UB019GJ |
|
Universal board PICOK 400A 94V-01521 |
Push button |
Connector (pitch: 2.54mm) Resistors, transistors etc. |
Development Software
| Intel® Quartus® Prime Lite Edition 21.1 | |
| Questa* - Intel® FPGA Starter Edition 2021.2 |
Practice Tasks and Plans
There were two tasks for this project.
(1) To run the device in a hardware language.
(2) To use a Nios® II soft-core processor and run it in a software language.
The contents of the exercise were divided into steps as shown in the figure below.
Ignorant-Ignorant-kun thought about it even though he did not understand it, and decided to have
display the clock in hardware language and Nios® II control the dot matrix LEDs.
Then, he immediately started to write the specifications for step 1, which is the foundation of 7seg clock development.
Creating Specifications
In the specification sheet, we wrote the outline of the 7seg clock, detailed operating specifications, parts list, pin list, connection diagram, etc.
Identified GPIO pin numbers
|
The 7seg and dot-matrix LEDs will be mounted on a home-built expansion board and connected to the GPIO pin sockets on the Cyclone® 10 LP evaluation kit. Therefore, it was necessary to find out the placement of the "Cyclone® 10 LP user I/O pins" and the "GPIO pin socket pins". |
Soon after, Ignorant-Ignorant obtained a schematic from Intel's official web site.
Using ctrl + F, he searched for GPIOs in the pin layout of the evaluation kit schematic to find out where they corresponded to in the header.
The investigation revealed that there are 35 pins that can be used as GPIOs in the GPIO pin sockets.
I knew that it was OK if the number of pins for all the components on the expansion board was less than 35, so I went to procure parts!
Nowadays, it is easy to order parts online, but my senpai ordered, or rather advised, me to go to Akihabara, an unknown area, to "actually see things in person and study them.
Creating a connection diagram
I made a connection diagram of the GPIO pin sockets, considering which pins to connect the parts I bought.
| GPIO pin sockets and Cyclone® 10 LP | Push button / Dot matrix LED / 7seg |
Soldering
I kept my distance from this guy because I was scared of him... but our eyes met.
Once he locked on to me, I had no choice but to fuck him...
|
Yes! I just thought about making the connection, and the result was this wiring!
I wondered why I made such a messy aerial wiring. Now I wonder why I messed up the aerial wiring like this. But at that time, I was filled with a sense of accomplishment. |
|
| Left: Front / Right: Back |
And so, I finished Step 1 of the assignment.
Looking back...
Things I didn't know
Unknown Bad Thing 1: Connection between pins and components
|
Actually, I didn't know the connection between the I/O pins of the Cyclone® 10 LP on the evaluation board and the pins of the GPIO pin sockets, and the pin correlation between the GPIO sockets and the components on my board: ....
|
GPIO, yes, yes, you just need to find it → now what...?
Decide where to connect the pins of the component to the I/O pins → What's next...?
|
The ignorant and clueless man who has become "What are you going to do next? He didn't understand the fundamental part of the process, which is to connect each I/O pin of the Cyclone® 10 LP to each component by simply wiring GPIOs and expansion board components.
|
|
The Cyclone® 10 LP evaluation board already had the FPGA and GPIO pin socket pins connected, so all I had to do was to decide "where" and "where" to connect the pins of the 7seg LED and other components to the GPIO pin socket pins. That's what took me so long.
Yabasuba 2. how to use the components
I managed to locate the GPIOs by looking at the Cyclone® 10 LP schematic.
Now, where to connect them...
Left: The diagram I created / Right: The diagram from the component specification sheet
Oh, well? Aren't there too few pins on the parts? I thought.
According to Ignorant-Ignorant's plan, 7seg should have 28 pins (8 pins x 4 digits) and dot matrix should have 35 pins (7 rows x 5 columns)...
I seriously thought that having only 12 pins each for 7seg and dot matrix was "defective," lol.
With this assumption, I used a tester to light one LED pin at a time while looking at the specification sheet of each LED in order to figure out the lighting specifications of each LED.
What? But I still don't have enough pins...
Can't we light multiple points at the same time?
To get rid of this doubt, I asked my seniors for hints and did a lot of research.
Then, to my surprise
You need to use dynamic lighting!
I see. So that's how you use this.
To be honest, I just bought the parts I liked, but considering the number of GPIOs I could use
Ignorance-ignorance-kun's choice of parts turned out to be the right one.
He did not know that he would suffer from dynamic lighting in the next step,
"I can see the way to this training! He was so excited to finish the training of Step 1.
Points I wish I had made
There were a few things I wished I had done when I was preparing the specifications and making the board (Step 1).
I should have eliminated as many unknowns as possible in the specification stage.
I should have known what the final result of what I was working on would be.
I should have written the specifications in a way that was easy for anyone to understand.
I shouldn't have soldered the aerial wiring.
Maybe it was because of the wiring in the air, or maybe the solder was not properly applied... A slight shock to the expansion board could affect the LEDs...
Next preview
Despite the uncertainties from step 1, Ignorant-Ignorant thinks that he can somehow make it work.
How did he tackle writing the code?
Next time: On the verge of fainting? Go to Hardware design!
Well, he can do it, right?
New Engineer's Blushing Blog Articles