Hello World (PIC18F57Q43 Curiosity Nano)

Introduction

This tutorial will lead you through setting up a project in MPLabX for the PIC18F57Q43 Devkit and programming it.

Resources

Parts Required

Item Detail
PIC18F57Q43 Curiosity Nano Website / User Guide
Breadboard
USB-C Programming cable

Critical Information and Concepts

Before working through the tutorial, it is important to answer some key questions about the board. Open up the curiosity nano hardware user guide to find more detailed answers to the following questions:

Question Answer
What is the difference between the “PIC18F57Q43 microcontroller” and the “PIC18F57Q43 Curiosity Nano”? The curiosity nano is a 64-pin PCB with an on-board USB connector for programming and communication, microcontroller, external crystal, user-programmable pushbutton and LED, and pre-configured, adjustable power. The microcontroller is just the chip – it needs external circuitry provided by the board, or by the designer to function. Look up at the resources section for more information about each
How do you power the curiosity nano? The curiosity nano may be powered externally (see section 3.3.2), or directly from USB. USB power feed into an on-board, adjustable voltage regulator. See section 3.3 about the adjustable voltage regulator and figure 3-4 for the regulator’s block diagram. See figure 3-10 for details about the power pins.
How do you adjust the regulator In MPLabX project settings, or by sending a special command. See section 3.1.3.3 for the USB drive method.
How do you program the curiosity nano? The board can be directly programmed over USB from MPLabX. For details on how to program it with a separate programmer, see figure 3-11.
What other features are on-board? The Curiosity Nano also features a user-programmable LED and pushbutton switch, available for use in your program.
When I plug the curiosity nano in, it shows up as a drive. Why? See section 3.1.3.1 of the hardware user guide for more information about the mass storage device
Can I debug my program over USB? Yes, this is a great feature of the curiosity nano. See section 3.1 for more information

Instructions

  1. Install MPLabX if you haven’t already.

    1. Say yes to installing Microchip Code Configurator and the XC8 compiler if asked.
  2. Open up the Curiosity Nano box. Inside the anti-static bag, you should find one curiosity nano board and two 32-pin male headers.

    1. Insert the male headers into the two rows of offset holes running along the board. See figure 4-2 of the hardware user guide to see how to attach the pins.

    2. Solder the pins to the board

      Note: Because the holes are offset, this permits the header pins to establish a fairly solid press-fit. Regardless, you should solder the pins to the board, since you will be using it all semester.

    3. plug the USB cable into the curiosity nano, and then plug the other end of the cable into your computer.

  3. In MPLabX, select File -> New Project to create a new project.

    Create a new project
    Create a new project

  4. Select Microchip Embedded as the category and “Application Project(s)” from the Projects list

    Select “Application Project(s)”
    Select “Application Project(s)”

  5. Select the PIC18F57Q43 as the “device” and the PIC18F57Q43 Curiosity Nano as the programmer

    select the appropriate device and programmer
    select the appropriate device and programmer

  6. Select the XC8 compiler

    Select the XC8 compiler
    Select the XC8 compiler

  7. Name your project something like “hello-world-uart” and select your project’s parent directory.

    provide project details
    provide project details

  8. Your project will open. Select “next” to create a MCC profile using “Melody”, the current MCC engine.

    Select next
    Select next

  9. Based on the device settings entered during project creation, MPLabX may need to download additional files. Wait for this process to finish. (Ensure you have an internet connection or the process may not work)

    Download Support Files
    Download Support Files

  10. MCC Should open.

    MCC Configuration View
    MCC Configuration View

  11. In the pins window, click on port F3 in the GPIO output row to enable RF3 as a digital output.

    Add an Output
    Add an Output

  12. Click the “generate” button to generate your MCC configuration

    generate MCC
    generate MCC

  13. Open main.c in the project explorer. Inside the curly brackets after the while(1) statement, insert

    __delay_ms(500);
    IO_RF3_Toggle();
    

    modify code
    modify code

  14. Select the “clean and compile” button to verify your project compiles.

    Clean and complile
    Clean and complile

    Why Clean and Compile? After generating a new MCC configuration, MCC generates the code necessary to support those changes. Cleaning your build files before compiling will ensure that old symbols are removed in the case that subsystems were removed or swapped out in MCC

  15. Select the “download” button, ensuring your Curiosity Nano device is connected.

    download code
    download code

  16. Observe what happens.

Continue on to the next tutorial, Enabling UART in MPLabX