element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
RoadTests & Reviews
  • Products
  • More
RoadTests & Reviews
RoadTest Forum Review: PIC32 Ethernet Starter Kit
  • Blog
  • RoadTest Forum
  • Documents
  • RoadTests
  • Reviews
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join RoadTests & Reviews to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 18 replies
  • Subscribers 2565 subscribers
  • Views 4530 views
  • Users 0 members are here
  • RoadTest
  • microchip
  • ethernet
  • starter_kit
  • embedded
  • review
  • microcontroller
  • pic32
Related

Review: PIC32 Ethernet Starter Kit

icserny
icserny over 15 years ago
I have received a PIC32 Ethernet Starter Kit from Farnell for road testing. The PIC32 Ethernet Starter Kit provides easy and cheap way to make Ethernet development with PIC32. The PIC32 MCU is a family of 32-bit microcontrollers with 80 MHz MIPS M4K core.

image

Package content

The kit came in a handy book-sized black plastic box. It contained the following items:
  • PIC32 Ethernet Starter Kit Board
  • USB mini B  to  standard A cable - to debug and powering the board
  • USB micro B  to standard A cable - for USB application development (to communicate between the PIC32 and the PC)
  • RJ-45 CAT5 patch ("straight") cable for Ethernet connection
  • Software CD
  • Registration card

Hardware

The PIC32 Ethernet Starter Kit board is a small, compact circuit board containing an PIC32MX795F512L 32-bit microcontroller, an on-board debugger (surprisingly the debugger is realized with a PIC32MX440F512HT-80I/MRPIC32MX440F512HT-80I/MR MCU so the Ethernet Starter board actually contains two PIC32 MCUs), an Ethernet PHY, a 3,3 V regulator, connectors, LEDs for state displaying, and three LEDs and pushbuttons for user interaction.  The board has compatible form factor and expansion connector as other PIC32 Starter Kits. The circuit can be supplemented with an 32 kHz oscillator for the RTCC (see the unpopulated place for Y3, C15 and C16).

image

The PIC32MX795F512L microcontroller has 512KB Flash/128 KB RAM, on chip 10/100 Ethernet MAC with MII/RMII interfaces, 2 x CAN2.0b modules with 1024 buffers, USB host/OTG/device connectivity, 6 UART, 4 SPI, 5 I2C, 5 timers with CCP, 16 ADC channels, RTCC etc.

image

The block scheme and the circuit diagram in the PIC32 Ethernet Starter Kit Schematics.pdf helps to understand the role of the connectors: the USB mini-B connector is used for debugging. It can be also used to provide +5V supply for the board as well as for the USB host applications (in the latter case the JP2 jumper should be installed). The USB micro-B connector (on the back side of the board) is used for USB device or OTG applications or to provide power for the board. The USB type A connector is used for USB host applications. The VBUS power can be obtained from the computer through the debugger cable (in this case JP2 should be installed) or from an external +5 V source through the 132 pin extension connector (in this case the JP2 jumper should be removed).

Software installation

The software CD bundled in the kit is a bit outdated, a newer version of the software is available at Microchip's PIC32 Starter Kit Software Update page. Downloading the Updated PIC32 Starter Kits Software (v2.0A).zip package (155 MB) requires sign in at microchip.com (the registration is free) . After unzipping the package to a local  directory one have to start the setup.exe program. The installation requires system administrator privileges.

 

The installation is simple and automatic: one only have to specify the installation directory and to accept the license terms and conditions. The "all in one" package contains every program and  documentation you need for experimenting with all kind of the PIC32 Starter Kits (including the PIC32 Ethernet Starter Kit). You will get the MPLAB Integrated Development System (MPLAB IDE v8.43), the demo version of the C32 compiler (v1.10B), example programs (starting from the LED blinking to the Ethernet TCPIP BSD web server, including USB device and host applications) tailored for the PIC32 Starter Kits, and a lot of documentation (PIC32 Starter Kits User Guide, PIC32 datasheets, software manuals etc.). The downloaded package does not contain the PIC32MX Family Reference Manual, you will find only a link to it at the Microchip's web page. The CD, however, contains it.

Possible interference with earlier installations

The MPLAB IDE and the C32 compiler will be installed even in that case you have already a newer (or older) version installed on your computer. They can coexist and work alternately without any trouble. I had a special problem, however, due to my earlier experimenting with the SourceBoost IDE and C/C++ compilers. Though these software have been uninstalled quite a long ago, there were remained records in the Windows Registry database. At every startup of the MPLAB IDE installed with the PIC32 Starter Kit software I have got a lot of error messages complaining about Legacy language files. I had to remove all records containing the word "boost" from the Windows Registry database  (except of Micboost which belongs to the microphone input of the audio subsystem). An alternative (and lazy) solution would be to copy the missing files from the old MPLAB IDE installation...

Device driver for the on-board debugger

The last step of the installation is the installation of the device driver of the debugger. Connect the USB mini-B cable to the Debug port (the J1 connector on the board) and connect the other end of the cable to the computer. The operating system will recognize the new hardware and ask for the proper driver. The relevant files are in the <installation directory>\MPLAB IDE\PIC32MXSKit\Drivers subdirectory, but some files may be also needed from the <installation directory>\MPLAB IDE\PIC32MXSKit\bin subdirectory as well.

Where to find the information?

The most important pieces of information needed for getting started are in the PIC32MX Starter Kit User's Guide.pdf document which walks newcomers through the first steps in developing for the PIC32MX Starter Kits. This document is a combo, it contains information for the PIC32 (General Purpose) Starter Kit, for the PIC32 USB Starter Kit II and also for the PIC32 Ethernet Starter Kit we are interested in. You have to learn to skip the irrelevant part and pick up the information valid for the Ethernet Starter board.

 

The PIC32MX Starter Kit Release Notes contains very important technical information, a PIC32MX Starter Kit FAQs section and information about PIC32MX Device Re-Flash Utility, PIC32 Peripheral Library support, Debug Print Library support and Debugging/stand alone applications.

 

Each demo project contains a separate information page in the project  directory (Getting started - Running  the Device/Host xxxxx demo.html). These files explains how to  configure the board and how to use the application. Don't miss these  pages!

Copy-paste effects

Being the fourth member of the  PIC32 Starter Kits, the PIC32 Ethernet  Starter Kit is a product of an evolution process. The documentation, however is slightly behind in the evolution of the hardware. Few examples:
  • The  documentation refers to a PIC18F4550 debugger but the PIC32 Ethernet  Starter Kit have a PIC32MX440F512H MCU for debugging.
  • The Getting Started - Running the  Starter_Kit_Tutorial Demo.html says that "The source code for this demo is available in the <Install  Directory>\PIC32 Starter Kits\Blink_Leds directory" though is  in the Starter_Kit_Tutorial subdirectory.
  • Several demo recommends to use the OTG cable to connect the board to a  PC, however, you have to use the debugger  cable instead, since the debug  print facility requires the communication with the debugger. For example the Bink LEDS demo was not even started if the debugger cable was not connected to the PC.
Obviously, all these errors are copy-paste  effects and you have to learn to override these things in  the  documentation.

Using the board out of the box

The PIC32 Ethernet Starter Kit may be used directly from the box as a demonstration board for the PIC32 device. The PIC32 is preprogrammed with the classic “Simon Says” game. The goal is to imitate the light patterns as long as you can without getting frazzled Refer to the PIC32MX Starter Kit User's Guide for the details.

Building projects

The most simple project  is the Hello world example which demonstrates the usage of the Debug Print Library. You should include the plib.h file, and to call DBINIT() first before any other Debug Print Library macros. After that you can communicate between the PIC32 and the MPLAB through the debugger cable. In the Hello world example the main program uses the DBPRINTF("Hello World !\n"); command to print out a message in the Output window of the MPLAB IDE.

 

The Blink LEDs example demonstrates the handling of the hardware (the user LEDs are toggled).

 

The Starter Kit Tutorial project demonstrates a simple menu-driven console application, using the PIC32 Debug Print Library macros, to turn on/off the PIC32MX Starter Kit LEDs and echo text when the user responds to a menu hosted in MPLAB IDE Starter Kit console window. Refer to the PIC32MX Starter Kit User's Guide for the details.

Programming the PIC32 MCU

After the successful compilation of a project the generated hex code should be written into the flash memory of the PIC32 MCU. This can be done by the on board debugger. Select Debugger>Select Tool>PIC32 Starter Kit from the menu bar of the MPLAB IDE, then click on the Program all Memory icon or select the Debugger>Programming>Program all Memory menu item.

USB projects

There are several USB demo projects bundled into the PIC32 Starter Kits Software package which can be divided into two classes: USB device projects (in which the PC is the host and the PIC32 acts as an USB device) and USB host applications (where the PIC32 is the host). Among these projects I have tested the USB device - CDC Basic demo and the USB Host - Mass Storage - Thumb Drive Demo. The CDC Basic demo worked the same way as its PIC18 predecessor. The USB host application, however, was completely new for me. This was the first occasion I could see a PIC microcontroller to handle the content of my pen drive.

Ethernet project

Unfortunately there is only one Ethernet demo project available for the PIC32 Ethernet Starter Kit, the Ethernet - TCPIP-BSD - HTTP Server Demo. I was curious mostly about this project. The default host address (192.168.2.105) was not suitable for me, since my home network uses the 192.168.1.*  IP range. Therefore I modified the definition of the host address to 192.168.1.15 and the gateway address to 192.168.1.1 8 (this is the IP of my router). The project was compiled without any hassle. The RJ-45 connector of the Starter board was connected to the router by the UTP patch cable. A connection (using either the debug cable or the USB OTG cable) to a PC is also necessary in order to supply power for the board. After directing a browser to the host address (198.162.1.15 in my case) the demo page appeared on the screen.You can connect the board directly to your PC (if you don't have a router available), however, you should use a crosswired cable in that case.

 

The Ethernet - TCPIP-BSD - HTTP Server Demo/Getting Started - Running the Device - TCPIP-BSD - HTTP Server Demo.html file contained all information I needed to build and run the project successfully.

Conclusion

Both hardware and software worked perfectly, the demo project were compiled and running without any trouble. The engineers of Microchip have done an excellent job. In my earlier experiences I have had much more troubles with the Explorer 16 board (where the on board debugger was not provided with firmware by the manufacturer) or with the MPLAB IDE until I learned tos configure the directory paths for a given language toolkit. I think the key of the success of the PIC32 Starter Kits Software is that it contains everything (IDE, compiler, software libraries and demo projects) in a consistent single  package. If you were installed all these components from independent packages, you would expect much more troubles!

 

The PIC32 Ethernet Starter Kit is an ideal tool for education. It can be best used to learn about programming the PIC32 MCU or to develop USB or Ethernet applications. The board has only one drawback: it is very difficult to connect it to your own circuit. Even if you want to extend the board with a single LED you have to buy the PIC32 I/O Expansion Board which may not exactly fit your needs and may be too expensive for your simple project. Of course, the PIC32 I/O Expansion Board is very useful, if you want to make experiments (or development) by using PICtail Plus cards. However, I would like to see some other (and simpler) solutions as well.

 

Revised by: Istvan Cserny at 11:46 CET on July 27, 2010.

Attachments:
image
image
  • Sign in to reply
  • Cancel

Top Replies

  • Former Member
    Former Member over 11 years ago in reply to Former Member +1
    hi, I have design own webpage in pic32 Etherent starter kit ... my code is perfectly working ... I have design a new application ... my target is send and receive mail via pic 32 Ethernet starter kit …
  • icserny
    icserny over 15 years ago

    How to create your own webpage for the Ethernet - TCPIP-BSD - HTTP Server Demo?

    In the Ethernet - TCPIP-BSD - HTTP Server Demo project the files are stored in the progrm memory as character arrays, therefore a utility program is necessary to convert your files (including all .htm, .jpg and .gif files) into C32 source format, like this:

     

    #include "./flash_storage.h"

    // store the files here

    const char BGA_Dime[] =
    {
    0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46,

    0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0x48,
    0x00, 0x48, 0x00, 0x00, 0xff, 0xe1, 0x12, 0x12,

    0x45, 0x78, 0x69, 0x66, 0x00, 0x00, 0x4d, 0x4d,
    0x00, 0x2a,0x00, 0x00, 0x00, 0x08, 0x00, 0x07,

    0x01, 0x12, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01,

    ....

    };

     

    At the end of the file, a Table of Content should be assembled as well, in the following format:

     

    // storage of the files
    const fileDcpt    fileFlashTbl[]=
    {
        {"C:\\Index.htm", sizeof(Index_htm), Index_htm},
        {"C:\\PIC32_Eth_SK.gif", sizeof(PIC32_Eth_SK), PIC32_Eth_SK},
        {"C:\\pic32chip.gif", sizeof(pic32chip), pic32chip},
        {"C:\\BGA_Dime.jpg", sizeof(BGA_Dime), BGA_Dime},
        {"C:\\PIC32Trp.jpg", sizeof(PIC32Trp), PIC32Trp},
        {"C:\\USBPhoto.jpg", sizeof(USBPhoto), USBPhoto},
        {0, 0, 0}        // always end with 0
    };

    I wrote a small utility program which can do this. You can reproduce the original flash_storage.c file by issuing the following command:

     

    fileconverter.exe Index.htm PIC32_Eth_SK.gif pic32chip.gif BGA_Dime.jpg PIC32Trp.jpg USBPhoto.jpg > flash_storage.c

     

    Both fileconverter.exe and the source files should be located in the current directory. If you use your own source files, you can create your own version of flash_storage.c, and then compile your own project...

     

    The source and the binary of the utility program are here. Visual Studio 2005 Express Edition was used to compile the code, so the executible requires the .NET 2.0 framework. However, the program can be compiled with any other C compiler with a little modification of the source (change header files, and replace exit by return ). Good luck!

    Attachments:
    fileconverter.cpp.zip
    fileconverter.exe.zip
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 14 years ago in reply to icserny

    Hello
    I've already made  the conversion of my files into C32 source format with a static page.
    Now  I need make a Dynamic web page. my work consist of turn on  two leds  making use  the web page and of course the pic32. But I don't know If the steps are similar to a static page. I'm very lost because I don't have enough experience with this kind of PIC and web pages
    Please I would be very thankful if you could help me .. because I've tried in many way But I've not had any kind of progres

    Hello

     

    I've already made  the conversion of my files into C32 source format with a static page.

     

    Now  I need make a Dynamic web page. my work consist of turn on  two leds  making use of the web page and of course the pic32. But I don't know If the steps are similar to a static page. I'm very lost because I don't have enough experience with this kind of PIC and web pages

     

     

    Please I would be very thankful if you could help me .. because I've tried in many way But I've not had any kind of progres.

     

    image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • icserny
    icserny over 14 years ago in reply to Former Member

    Hi Kary,

     

    The HTTPD demo which comes with the Starter Kit doesn't give too much help in the creation of dynamic pages. The other web server demo for the PIC32 Ethernet Starter Kit which is available in the Microchip Application Librarikes (see at www.mirochip.com/MAL) is much more interesting.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • lahcen005
    lahcen005 over 14 years ago

    Very good review, thank you

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • nermash
    nermash over 14 years ago in reply to icserny

    Isn't it easier to use Microchip utility MPFS2 which is included in their TCP/IP stack release? I tried it on PIC18 project, web page with dynamic variables, and it works without a problem? 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • icserny
    icserny over 14 years ago in reply to nermash
    Isn't it easier to use Microchip utility MPFS2 which is included in their TCP/IP stack release?

    It is not compatible with that HTTPD demo which comes with the PIC32 Ethernet Starter Kit. That's why I had to develop my own utility program. This demo whic comes in the PIC32 Starter Kit Software (v2.0A) is a(n over)simplified version of an earlier version of the TCP-IP stack, I think. It is much smaller and dumber, therefore it is much easier to read it. But the storage conventions are different from the present "full" versions of the  TCP-IP demo.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • nermash
    nermash over 14 years ago in reply to icserny

    That explains it:) I thought that they used the full blown stack, since PIC32 has more than enough "horse power" to process it.

    Thanks for the explanation.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • icserny
    icserny over 14 years ago in reply to nermash

    You are right. The "full blown" stack is also usable for the PIC32 Ethernet Starter kit. But it is a separate distribution, and is not part of the software package accompaining of the Kit i have reviewed. I can only guess the philosophy behind this policy. The developers probably wanted to provide an easy-to-use package for the beginners. For this reasin even the MPLAB IDE and the C32 compiler were packaged in a non-conventional way in the PIC32 Starter Kit Software - together with the example projects. All in one package...

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 13 years ago in reply to icserny

    THAKS FOR YOR HELP IN YOR FILECONVERTOR.EXE.

     

    NOW I STUK IN THE THINGS THAT IWANT TO CONTROLE LEDS ON PIC32 STARTER KIT USING ONE WEB BUTTON BUT I CAN NOT DO THIS THING.

    SO IF YOU HAVE DONE THIS CAN U GIV ME THAT CODE ON MY E-MAIL ID

                   kansagarapriyank@gmail.com

    I AM VERY THNK FUL EOR YOUR KIND SUPPORT.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • icserny
    icserny over 13 years ago in reply to Former Member

    I was not able to create any dynamic page with the software which comes with the Starter Kit. A much better solution is  to download the  Microchip Application Libraries (see at www.mirochip.com/MAL) which has interesting demo programs. Note however that you shoud install the "full" MPLAB IDE and the C32 compiler (i.e. not that special version which comes with the PIC32 Ethernet Starter Kit). Note also, tha the MAL demos store the webpages in a different format. Fortunately MAL contains a tool for the conversion.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube