Implementation of an instruction pipeline is a common technique used when working with microprocessors. Pipelining improves operation and processing time. Microprocessors such as the Microchip® PIC32MX460F512L on the chipKIT Pro MX4 board use this technology to provide efficient processing and instruction execution. Though the process is sophisticated, it is actually quite simple in concept. In my explanation of instruction pipelines, I’ll specifically refer to the Microchip PIC32 microprocessor.
If you’ve been around the Digilent Blog, you’ve probably seen a lot of robots. Remember Susan the Line-Following Pig? Well, I recently found a small, portable solar panel in the MakerSpace at Digilent and I was inspired to build a solar-powered robot. Similar to Susan, I will be using the chipKIT Pro MX4 and the Digilent Motor Robot Kit (MRK) for my solar-powered design. However, when I first came up with this idea, it was the middle of winter. That being said, sunlight was quite a bit more scarce, especially up here in Pullman, WA. I first had to ask an important question: will I have enough sun?
Earlier today, Josh (a fellow intern and blog contributor) wrote a blog post about logic gates. After reading through Josh’s post and gaining an understanding of the concepts and basic functions of those gates, I figured now would be the perfect time to learn some code. I am going to go over each logic gate and it’s code in Verilog (a hardware language), VHDL (another hardware language) and C (software language).
LEDs are one of the coolest electronic components. They can brighten up any circuits project and turn it in to an eye-catching bonanza of blinking lights. Okay, corny imagery aside, they’re pretty cool. But have you ever thought of how they actually work? You likely already know that LED stands for light emitting diode. Where does the light emit from, though? There are no bulbs or filaments in an LED. So what’s going on in there that produces the glow that we love to have in all of our circuits?
This week happens to be National Library week, and although Digilent is not a library, we certainly use them! I’m not referring to public libraries, though (although I am personally a fan of them); rather, I’m talking about the C++ libraries that are widely used with our microcontrollers. Although C++ libraries are not quite the same as an IP for FPGAs, they serve a similar purpose. These libraries include a set of predefined functions that perform a specific task, such as sending and receiving a set of data over SPI, that the user can use without having to define what they do.
Back in March, we released a blog post announcing the ZYBOt. There was a set of Instructables and a video showing what the ZYBOt is all about. If you check those out, you can see that the ZYBOt is remote-controlled and has a video feed that can be displayed to a computer. The ZYBOt is a great project for people that want to dive into working with FPGAs and Linux.
Originally, this blog post was going to be about how Linux works with its kernel and everything. That turned out to be extremely dry, and it was a jumbled mess to try to fit everything into a blog post. Just check out the Linux wiki page for all that stuff. Instead this post is going to be more about parts of Linux that people should know about. Linux is used widely for developing software and embedded systems. One example is the Zybot, partially developed by Kaitlyn and me!
Now that we have Linux booted up on our computer, we can get programming. What happens if we want to create web pages? Well, we need to set-up our LAMP server. LAMP stands for Linux Apache MySQL PHP. This blog post goes in conjunction with a relevant Instructable about setting up our LAMP server, so just like the previous blog post about dual-booting Ubuntu, this is going to go over more of why we’re doing this. What the LAMP server will allow us to do it create a local host that will let us communicate with the Internet.
If you have a computer, you may have heard of Linux. Linux is a free ad open-source operating system, where the “base” code can be used and modified by anyone. Some of Digilent’s boards (like the ZYBO) use Linux. Linux is great for programming and development, but isn’t as user-friendly as other operating systems.
Inter-integrated-circuit, more commonly known as I²C (generally pronounced I-squared-C), is a communication style originally developed by Phillips Semiconductor (now NXP Semiconductor). Its design allows multiple components to be able to talk to each other on the same data line, making it widely used in a variety of systems, including Pmods. As a fan of Pmods, I’m in favor of learning how you can communicate with them and get them what you want to do. Let’s find out more.
Welcome back to the Digilent Blog! When we were working in C, we learned about the data structure called a “linked list”. Now, we’re going to go over two new data structures — stacks and queues. In this post, we’re going to make classes for stacks and queues to help show some of the capabilities of OOP (object-oriented programming)!
Robots that run around on motors are pretty sweet. These motors traditionally tend to be DC motors that are controlled through the use of an H-Bridge, which can change the flow of current so that the motor is able to run forwards or backwards. H-bridge modules, such as Digilent’s PmodHB3 or PmodHB5, also tend to have two pins labeled as Sensor A and Sensor B that measure which direction the motor is rotating. The two sensors, A and B, will be wired to the outputs of components known as Hall effect sensors. Unsurprisingly, these measure the Hall effect. But rather than having the “word in the definition” problem, let’s learn some of the practical details.