f. Multithreading support

NOTE: PIC32MZ2048ECH100 firmware v2.9.2 - universal.zip and PIC32MZ2048ECH144 firmware v2.9.2 for Starter Kit support memory read and write and other functions via USB. Velleman K8055-1 and K8055N-2 experiment boards are fully supported via adapters. It also supports Microchip PIC32MZ EC Starter Kit.

NOTE 2: Use PIC32MZ2048EC VB.NET Demo v2.0 x64.zip example for PIC32MZ microcontrollers. The example can also be used with PIC32MX microcontrollers, if you change the PIC32_mode to 1.

B. PIC18F2550, PIC18F4550, PIC18F24J50 and PIC18F26J50 multithreading support

LIB_PCUSBProjects v6.2.NET4(x64).dll and later are a multithread enabled DLLs. You should use it in any application that is not single threaded. This includes applications that use timers to periodically provide status information.

Go to Downloads sections to obtain a Multithreading example (Multithreading example based on SVLIB_PIC18F24J50 v2.4.zip). The library has additional functions that are only supported by microcontrollers with v2.0 firmware or later (SVPIC18F2xJ50 firmware v2.5.hex or SVPIC18F26J50 firmware v2.6.1.hex file or later).

ALSO READ:

- PROGRAMMING GUIDE

- Basic circuit for PIC18F24J50 or PIC18F26J50 to work over USB

- PIC18F24J50 firmware upgrade or replacement with preprogrammed PIC18F26J50 adds many new functionalities

- Full 32-bit and 64-bit DLL support for the original Vellaman K8055 and K8055N firmware

Today, almost all program applications use multithreading. Providing sufficient and reliable support in a *.DLL library or a device driver requires deepened understanding of a multithreading operating system operation. Microsoft Windows provides human interface device (HID) application program interface (API) only for single threaded applications. It also provides thread synchronization and locking functions, but one must write a multithread enabled *.DLL library entirely by himself or herself. The essence of such a solution is serialization of all access requests by different program threads. A multithread *.DLL library must incorporate request processing service that collects all the requests from different program threads and executes them in the same order as they have arrived. USB supports master-slave communications. Therefore, there are two types of requests: write and write-read. Write request sends function code and the accompanied data to the microcontroller and requires no feedback information. Write-read request sends function code and data to the microcontroller and then waits for the response data. This kind of functions are usually used for reading data from the microcontroller. Each write-read communication request must return a corresponding result.

Multhreading support in this website is available for PIC18F2550, PIC18F4550, PIC18F24J50, PIC18F26J50, PIC32MX250F128B, PIC32MX270F128B, PIC32MZ2048ECH100 and PIC32MZ2048ECH144 microcontrollers.

A. PIC32MX250F128B, PIC32MX270F128B, PIC32MZ2048ECH100 and PIC32MZ EC Starter Kit multithreading support

LIB_PCUSBProjects v6.2.NET4(x64).dll and later are multithread enabled DLLs. You should use it in any application that is not single threaded. This includes applications that use timers to periodically provide status information.

Go to Downloads sections to obtain a 32-bit or 64-bit Multithreading example (Multithreading example (32-bit) based on SVLIB_PIC32MX2X0 v1.1.NET4 or Multithreading example (64-bit) based on SVLIB_PIC32MX2X0 v1.1.NET4x64). You have to program PIC32MX2x0FxxxB firmware v2.9.1 or later or PIC32MZ2048ECH100 firmware v2.9.2 - universal or later or PIC32MZ2048ECH144 firmware v2.9.2 for Starter Kit or later to your microcontroller. Use a newer LIB_PCUSBProjects v6.2.NET4(x64).dll and later to use the microcontrollers in your programs.