PLIB ADC with PIC32 ‘EC’ Family

This week I fix my ADC driver, which I done it incorrectly previously. PIC32MZ come with 2 different Family namely the ‘EC’ family and ‘EF ‘ family. The main difference for both of them would be ‘EC’ only capable of 10bit ADC conversion while ‘EF’ can up to 12bit ADC. For my particular project I will be using ‘EC’ family. ‘EF’ stands for floating point unit, therefore this particular family version is capable of having advance analog feature. After some reading and experiment Read more

BRAM Size before Synthesis

This week continues with the issue that I had opened previously, which is on the issue that some file is not updated before the synthesis starts. This was a mistake made by the previous intern, that the ramSize (BRAM size) that is needed for synthesis is never been specified correctly on the most updated design. Update the Ram Size for Synthesis Despite knowing the problem, solving it is a big headache, because it involve the alteration on the synthesis flow. Read more

CodeMirror Code Completion

I finally got an improved version of code completion working. I am glad that there is a working example, which i referred my work on. It was a frustrating process because  there is no explanation on what is actually going on. I spent a great deal of time understanding the whole operation. The solution though, turned  out to be quite simple after all. In the demo example, you would find a few files:- show-hint.js – Just include this directly, it Read more

SPI ADC with PIC32 Harmony

This week I continue doing emulating ADC based on the proper protocol of SPI ADC from Microchip – MCP3204/3208 From the document table 5-1: state that to initiate a ADC read for specific channel, Master SPI will first send 4bit of ‘Control Bit Selection’ to read the data of the particular ADC channel (Slave SPI). For my application I would need to read from 16 Analog pin, therefore my control bit need to be 8bit to hold an address of ‘0x10’ Read more

Discover More Bugs

This week  the task is very time consuming, because I spent most of the time debugging and reading the logs in the terminal. As I got to know from my colleague Jeunn Hao, that the simulation still does not work 100% of the time. I decided to read the code and logs all over again, to determine where is the main problem that causes it to be inconsistent. The Inconsistent Emission As I trace the bug, reading the logs again and Read more

Code Completion Feature

So… I had a stressful time finding a serious bug in my Wt application.  Luckily, I was able to narrow the cause down. The crash happened whenever a new user approved the storage service for the first time. And damn it, it was caused by not deferRendering the WApplication after sending a request to Google Drive. At least, the dummy accounts I created to track down this bug didn’t go to waste. Code Completion feature I am slowly inching my Read more

Fixing Simulator Bug

This week, I have been working mainly on the simulator. Things just don’t work when they are combined 😂 😂 , especially when it is a combination of 3 persons code. It is a critical issue that the simulator is not working. Mainly because I did not understand what had been done by them previously. I was struggling with the simulation bug, because I just can’t simply change the code because there are parts which is not my work. It was a great Read more

Emulating ADC

This week I did some programming on PIC32 ADC and SPI functions. The goal is to transfer ADC value from PIC through SPI to a FPGA chip. FPGA chip will act as a ‘Master’ while PIC32 will be the ‘Slave’. I will be coding for PIC32 only therefore the following will only be applicable to PIC32 with MPLABX IDE and Harmony Library. Examples for PIC32 ADC and SPI Microchip Harmony provide several examples on initialization of ADC and SPI, follow the Read more

CodeMirror and Me

Work progress has been slow this week as I spent my time learning about the code completion feature in the code editor. The previous intern has done some work on it with basic functions.  However, there is much to be done until it becomes fully operable and up to my boss’ expectation. Starting with Clang I started with examining the clang code-completion which was implemented. It’s amazing to see how it works by returning related keywords from the C++ library. Read more

Kill the Zombie

This week, my task is to create a cache system for the FPGA synthesis and implementation process, and to kill the previous synthesis process. The cache system would be useful if someone replicates or reuse their design. This saves the processing power and time, where the synthesized file would be ready immediately. Caching the file by using cryptographic hash function, is pretty interesting. I get to see the power of these functions and why they are so popular to be Read more