|
|
Castellano
Deutsch
English
|
The software programs ('burns') midrange Flash-ROM-Controller PIC 12Fxxx/16Fxxx from Microchip using the serial port of the PC. Furthermore, it offers a simple debugger and the ability to tune the oscillator.
The package also includes board layouts for an inexpensive programmer module and three test modules.
Software and boards are intended for educational purpose and home users. Commercial use is restricted to the field of Research and Development.
Requires: Windows 98 or better, 15 MByte disk space, serial port.
(Since the program does only use Windows standard functions it seems to work with 'WinE' under Linux, too.)
To install with a different language you may execute: "picpr246.exe /L=XX", where 'XX' is either 'DE', 'EN' or 'ES'.
Supported devices:
| 8-pin: | 12F609*, 12HV609*, 12F615*, 12HV615*, 12F629, 12F635, 12F675, 12F683 |
| 14-pin: | 16F610*, 16HV610*, 16F616*, 16HV616*, 16F630, 16F636, 16F676, 16F684, 16F688 |
| 18-pin: | 16F627, 16F628, 16F627A, 16F628A, 16F648A, 16F716, 16F818, 16F819, 16C84, 16F83, 16F84, 16F84A, 16F87, 16F88 |
| 20-pin: | 16F631, 16F639, 16F677, 16F685, 16F687, 16F689, 16F690, 16F785, 16HV785 |
| 28-pin: | 16F72, 16F73, 16F76, 16F737, 16F767, 16F870, 16F872, 16F873, 16F876, 16F873A, 16F876A, 16F882, 16F883, 16F886, 16F913, 16F916 |
| 40-pin: | 16F74, 16F77, 16F747, 16F777, 16F871, 16F874, 16F877, 16F874A, 16F877A, 16F884, 16F887, 16F914, 16F917 |
* = not tested!
Debugger works with: 16F7x7, 16F818/819, 16F87x, 16F87xA, 16F87/88, 16F88x, 16F91x.
Data sheets of the devices can be downloaded directly from Microchip.
The user interface is hold simple and allows the direct access to all important parameters and functions. Beside controller type and serial port one can choose, which memory area shall be programmed, verified or read.
![The main window of PicProm [Main window]](pp1_en.png)
![[Info...]](info.png)
Within the submenu View one can choose the language of the user interface and set options.
When connected with the special programmer module, for example, it can be adjusted in detail at which voltage level each operation should run.
This is particularly important, if one likes to program or read the PIC directly within the application circuit.
![The 'View' menu gives access to special functions [View menu]](pp2_en.png)
![The options allow adjusting of the voltage levels [Options window]](po2_en.png)
Some PIC 16Fxxx have an internal Debugger Circuit. To use the debugger an special software – the debug executive – has to be stored into the PIC in addition to the user program.
When using the debugger, besides of the last 144 or 160 program memory locations, other resources are not available for general use: one stack level, four registers and the connections /MCLR, RB6 and RB7, which serve for the communication with the programmer module.
In contrast to Microchip's ICD, the Watchdog Timer may be enabled.
| Main differences to ICD2, ICD3: | ||
| 'PicProm' | ICD2, ICD3 | |
| Supported devices: | some 16Fxxx | whole range |
| Program memory words used: | 144 or 160 | 256 |
| User registers used: | 4 | 12 |
| WDT usable: | yes | no |
| Debug entry time: | up to 70ms | - |
| Read time for one register: | 1500 Tosc* | 7000 Tosc* |
| Read time for 16 successive registers: | 24000 Tosc* | 22000 Tosc* |
| * oscillator clock cycles of the PIC | ||
![The debugger gives access to the registers [Debugger window]](pd1_en.png)
The debugger executive works with the actual oscillator of the PIC in test.
'PicProm' adapts within a range from 15kHz to 60MHz to the oscillator frequency by measuring the target period on every debug entry (via break point or single step). Thus, the debug communication always runs with the maximal possible velocity.
After activating of the debugger the PIC always executes the first instruction and then halts.
Now one can:
The editor shows the loaded HEX file in assembler syntax. When reading the file, it is analysed extensively. Especially, 'PicProm' tries to find the currently active register bank for each instruction to be able to show the correct register name.
![The editor shows assembler syntax [Editor window]](pe1.png)
'PicProm' offers the possibility to measure the frequency of the internal or an external RC oscillator. During measurement the value will be updated four times per second. The precision is about ±0.01% over the entire measuring range from 15kHz to 60MHz.
Using an precision trimmer in the external RC oscillator allows free adjusting of the clock frequency.
![PicProm can tune the internal oscillator [Oscillator tuning window]](pp3_en.png)
Modern PIC have an internal oscillator, which can be tuned within certain range by writing to the OSCTUNE register. 'PicProm' can determine this OSCTUNE value for a given frequency and store it automatically into the opened HEX file.
It should be taken into consideration that the value is only valid for the measured device and in addition depends on temperature and voltage.
For education purposes it can be necessary to equip several experimental boards quickly with identically programmed PICs. Therefore, to keep handling simple a series programmer has been implemented.
'PicProm' recognizes when a PIC is inserted into the programmer socket, and the programming cycle automatically starts after a chosen delay time.
The level adaptation between serial port and the microcontroller is done by a more or less expensive interface module.
The simple variant supported by 'PicProm' has little parts, but allows only reading and programming the PIC and absolutely needs a desktop PC with a "powerful" port. For a faultless programming the port must have an stable High level of at least +11V at a current of 5mA.
![Schematic of a simple programmer [Schematic]](simple.png)
To exhaust all possibilities of 'PicProm' one needs the programmer module suited to it. The heart of the module is a PIC 16F628(A). It receives commands from a serial port of the PC and processes them autonomous.
![Layout of the programmer module [Programmer module]](promm.png)
When developing the circuits, much importance have been attached to hold the power consumption of the programmer module as low as possible. The current consumption is below 3mA in Stand-By and of about 9mA while programming. In connection with a powerful serial port of a desktop PC the module can program a PIC without the need for an additional power supply.
Main features of the module are:
The following schemes show how to connect the programming signals to the PIC.
![Connection schemes for ICSP [Connection schemes]](icsp_c.png)
Some typical programming times for entire memory (includes verify):
| Controller | Size | Special module | Simple module | |
| Vdd = 5V | Vdd = 3.3V | |||
| 12F629 | 1024 | 7s | - | 14s* |
| 16F818 | 1024 | 3s | 4s | 8s* |
| 16F84 | 1024 | 20s | - | 24s* |
| 12F683 | 2048 | 6s | - | 13s* |
| 16F716 | 2048 | 5s | - | 11s* |
| 16HV785 | 2048 | - | 7s | 13s* |
| 16F648A | 4096 | 34s | - | 50s* |
| 16F690 | 4096 | 11s | 14s | 23s* |
| 16F737 | 4096 | 9s | - | 23s* |
| 16F873 | 4096 | 26s | 45s | 42s* |
| 16F913 | 4096 | 11s | 14s | 23s* |
| 16F876A | 8192 | 13s | 22s | 35s* |
| 16F886 | 8192 | 15s | 21s | 36s* |
* Depends on PC configuration.