I got an LPC804 dev kit from Digikey and I plan to use it to develop some ARM based projects. Hopefully I can keep notes here and document any problems and road blocks that I run into.
Quick facts on LPC804:
M0+ core
Every peripheral under the sun
Today I looked into the led_blinky provided by NXP. The blinky program provided is about 6 files and 8 headers swinging between vestigial and 2000 lines. I am more used to the PIC which can do a blinky in about 5 lines of code, not 5000 lines of various configuration and strange framework. I am going to RTFM before I shoot myself in the foot again. I could just edit the existing example code to get something working, but I need to understand this more if I want to use this processor. I am either going to learn how to build my own tools or learn how to use the NXP framework for the LPC804.
The coworker that turned me onto this processor, ran into some issues with writing his own blinky. His problem has made me very cautious in regards to what NXP is hiding in its examples.
For all previous logs and tests I was using the built in USB programmer that came with the dev kit. I have no plans on incorporating these components into my theoretical application, so I acquired an LPC J-link2, a debugging tool external to the dev kit. The LPC J-Link 2 has a 10 pin SWD (Single Wire Debugger) with a 50 mil header. This header makes the LPC J-Link 2 more usable than the built in USB programmer in general case, but not especially friendly because it does not fit onto a standard bread board. I might need to make an adapter board for prototyping purposes.
I will be working exclusively with the LPC J-Link 2 from the remainder of this project.
Aside: the LPC804 has internal pull ups on the clock and data lines from the SWD turned on by default. This eliminates 2 parts from the any potential BOM.
I played around with the Capacitive Touch Shield that was provided with the dev kit. I have decided that I like the feature and I wanted to do more with the project using that feature. That project will be announced at a later date, once I have some more experience writing my own framework with the LPC804 and get away from running demos.
There is a way to wake up the LPC804 with inputs from the Capacitive Touch so I am going to try that in the portion of the project. Proof of concept will be flash an LED and after some time fall asleep. Once asleep, if I use the cap inputs it should wake up and keep flashing the LED.
If anyone has good sources for Capacitive PCB design tools, DM me. I will post what I find in the next project update.
Today was my second whack at getting my LPC804 dev kit working. I learned a very important lesson on my steps to my first blink with this board. I got hit with the good ol' RTFM. That being said, the NXP manuals are obtuse compared to what I am used to, and having to shuffle through User Manual, datasheet, installation guide, how to articles and tutorials are starting to wear on me. I am certain that my current headaches are just growing pains and that I can use this microcontroller at the heart of something really awesome.
My source to my RTFM that is now bookmarked until I get my own framework up and ready for this chip.
Results of my second day working with this dev kit:
I have the IDE and the SDK in a (hopefully) stable and (hopefully) working condition
I got my first blink up and running.
Next milestone comprises the following goals:
I drive multiple LEDs
Interface with the capacitive touch shield/broach/cape/hat that the dev kit shipped with as my user input
This capacitive touch feature was what attracted me to this processor initially
I am currently on my second day of wrestling with MCUXpresso on Linux. I initially had issues with getting the IDE installed. I had to run the binary with the sh command, which was not mentioned in their documentation. I filed a complaint, but I feel like a jerk for doing so. The response was basically "Alright, noted" from the tech support team and I felt dumb afterwards. After following the steps laid out in user manual, I had to use this command sudo sh mcuxpressoide-10.3.1_2233.x86_64.deb.bin instead of sudo mcuxpressoide-10.3.1_2233.x86_64.deb.bin listed in the manual.
My second hurdle has been trying to run some example code I got from NXP, the providers of MCUXpresso. Every time I tried to build the blinky, the I was not working. Now that I am working in the evening instead of midnight Sunday, I was able to do some reading and found out that I needed the SDK as well as the IDE.
I feel really green with this project. But to paraphrase a cartoon, the first step after being sucky at something is being kinda good at something. Later this week I will tackle the blinky again and report back to this BLOG with my, hopeful, success.
The link embedded will take you to the download page for the MCUXpresso IDE, a customized version of Eclipse maintained by the microcontroller manufacturer NXP. You will need to make an account to download the IDE. (I am looking for open source alternatives passively.) Follow their instructions for getting the IDE up and running for your system.
2
Install the LPC804 SDK
The link embedded will take you to a web page where you will need navigate to a link saying "Select Developement Board". After logging in with your NXP account, you can build an SDK for the LPC804 development board. This will contain examples. Follow the instructions from the download to get the SDK integrated with the IDE.
Uncertain where to post this because it isn't related to the progress of the project, but I have stalled on this project a bit. I hope to get back into it in August, but July was not a good month for my projects for various reasons.
Uncertain where to post this because it isn't related to the progress of the project, but I have stalled on this project a bit. I hope to get back into it in August, but July was not a good month for my projects for various reasons.