Monday, August 24, 2020

Making A DIY LPC1114 ARM Cortex-M0 Experimental Board

An Overview Of ARM

ARM (Advanced RISC Machine) microcontroller is a low power device that power most of mobile electronic device today. Many portable devices such as an electronic test equipment, home appliance and many other industrial control system have an ARM embedded inside.

Comparing to 8/16-bit microcontroller, the price of ARM chips cost nearly the same, but it superb in performance. The cost per unit may drop lower than the 8-bit one in a bulk purchase.

ARM holding has been release many versions of ARM-based microcontroller, a well known device for electronic designs and hobbyists are Cortex-M3 and M4. These devices was widely available from ST.

Generally, a microcontroller programming require an ISP (In System Programming) to upload and debug the target device. It requires an external ISP adapter. The adapter may cost differently in price depending on the vendor of selected device. However, most of microcontroller from NXP shipped with a bootloader inside the chip. It allow the users to upload the firmware to the target chip without any extra external ISP adapter. The bootloader itself require only one UART Tx/Rx pair with a PC software to control the flow.

Making A DIY LPC1114 ARM Cortex-M0 Experimental Board At Home
A finished PCB assembling with fully tested on top side


The NXP LPC1114 ARM Cortex-M0 

LPC1114 is a 32-bit ARM Cortex-M0 microcontroller from NXP. It's one of its family LPC111X series.
These devices are low power with simple instruction to program.


The system performance could clock up to 50 MHz, with nested interrupt vector. Its timer could create a timer tick enable the implementation of multitasking.

Making A DIY LPC1114 ARM Cortex-M0 Experimental Board At Home
A few of LPC1114DB48/302 I bought from futurlec. It costs near 1$ each exclude shipping.

For LPC1114DB48/302 as listed here, the program memory is 32 kB with 8 kB of SRAM.
I don't list the full specifications here as per in its datasheet. The device I showed above is a 48-pin SMD device. One thing to remember is it's ISP able with its bootloader inside via UART communication.
Other remaining features will be posted in the next related topics.

Designing And Building An LPC1114 Experimental Board 

System Programming And Simulation In Software

With the ease of device library and simulation model came with Proteus VSM, I have made a start up programming for this device using KEIL for ARM. At that time, I am aware of burning a few chips a bought. Hence, I simulate the program and circuit in Proteus software.

Making A DIY LPC1114 ARM Cortex-M0 Experimental Board
A simple program simulation to read a digital GPIO input output
This is a sample program I learned from Digi-Key tutorials. I tried to program
and made my own experiments.

Making An SMD Socket Adapter

After a few test, I decide to make my own SMD chip adapter pinned on a breadboard. It this aids I can upload the program and built a test circuit on a breadboard.



Making A DIY LPC1114 ARM Cortex-M0 Experimental Board
LPC1114DB48/302 SMD Socket Adapter, designed to fit the breadboard prototyping.

Making A DIY LPC1114 ARM Cortex-M0 Experimental Board
A PCB Design View
Copper Soldering Side For SMD

The SMD adapter for this device had solder and tested on board without error, but I didn't take any photo from that workshop. I have make a program upload using flash magic and did a prototyping for a sample program list above on a breadboard.

This SMD socket adapter could be download here.

Putting Them All Together

I have design a experimental board for my personal use. It has a lot of system connection on-board.

  1. A regulated +3.3 V DC supply - due to +3.3  V working voltage limit for this device
  2. A USB-Serial converter block powered by CH340G used for ISP programming, and for bus powering.
  3. Two digital input switches to test the digital input pin
  4. An LED to test a digital output pin
  5. A hard reset circuit block
  6. Two analog input - A 10 kOhm Pot and an LM35 analog temperature sensor
  7. Two I2C device - A ds1307 RTC and a 24C16 EEPROM.
  8. An SPI header output for driving a Nokia 5110 GLCD.
  9. One 1-wire header to read an external 1-wire device.
  10. The MCU socket for LPC1114DB48/302 clocks with a 8 MHz crystal
The full schematic and PCB design made with Proteus. Most of the on-board peripheral have tested while other are not yet finished. However, this board is fully work.

Making A DIY LPC1114 ARM Cortex-M0 Experimental Board
Schematic for experimental board

Making A DIY LPC1114 ARM Cortex-M0 Experimental Board
PCB View

Making A DIY LPC1114 ARM Cortex-M0 Experimental Board
A 3D View Of This Board

Making A DIY LPC1114 ARM Cortex-M0 Experimental Board
Copper Side

Making A DIY LPC1114 ARM Cortex-M0 Experimental Board
Top Silk
 
I made this board with my in-house facilities. The copper pattern is made by UV dry film method with a silk screened UV solder mask ink. 



Making A DIY LPC1114 ARM Cortex-M0 Experimental Board At Home
Copper Side With Solder Mask
 
The components side printed with component legends with a silk screened UV white solder mask ink.

Making A DIY LPC1114 ARM Cortex-M0 Experimental Board At Home
Components side with legends printing




This board is an FR-4 material. I bought a sheet of an A4 size for only 2 $ from a local electronic components store.

Making A DIY LPC1114 ARM Cortex-M0 Experimental Board At Home
A finished PCB assembling with fully tested on top side


Making A DIY LPC1114 ARM Cortex-M0 Experimental Board At Home
Soldering side with a corrected mistake

On the copper soldering side, there is a minor mistake related to CH340G supply pins. I corrected it to work correctly. In the schematic shown above, I did correct the circuit connection and there's no mistake again.
Click here if you wish to download the complete archive.




 


No comments:

Post a Comment

Labels

ADC (10) Analog (14) Arduino (12) Atmega16 (19) Audio (2) AVR (20) Charger (1) Cortex-M0 (1) Counter (10) CPLD (25) Digital I/O (22) Display (34) EEPROM (2) Environment Sensor (1) esp8266 (2) Experiment Board (10) I2C (4) Interrupt (7) LCD (1) LDmicro (29) measurement and instrumentation (7) Microchip Studio (3) MikroC (1) One-Shot (3) OpAmp (1) PCB (31) PIC16 Microcontrollers (16) PIC16F877A (2) PIC16F887 MikroC (22) PLC (35) PWM (11) Regulator (1) RTC (2) Sensor (8) Shift Registers (5) SPI (5) Timer (34) UART (2) ultra-sonic sensor (1) USB (1) VHDL (21) xc8 (1) XC95108 (9) XC9536 (15) XC9572 (1) Xilinx (23) Xilinx ISE (22)