Supported PICĀ® Microcontrollers
- PIC12F61x Family
-
PIC12F/HV615 :: 2 sensor limit (Lite: 1 sensor limit)
-
PIC12F617 :: All 4 sensors supported
- PIC16F151x Family
-
PIC16F/LF1516/8 :: All 17 sensors supported
-
PIC16F/LF1517/9 :: 22 sensor limit
- PIC16F152x Family
-
PIC16F/LF1526/7 :: 22 sensor limit
-
This family does not support single-sensor applications.
- PIC16F182x Family
-
PIC12F/LF1822 :: All 4 sensors supported
-
PIC16F/LF1823 :: 6 sensor limit
-
PIC16F/LF1824/5 :: All 8 sensors supported
-
PIC16F/LF1826/7/8/9 :: All 12 sensors supported
- PIC16F193x Family
-
PIC16F/LF1933/6/8 :: All 11 sensors supported
-
PIC16F/LF1934/7/9 :: All 14 sensors supported
- PIC16F194x Family
-
PIC16F/LF1946 :: All 17 sensors supported
-
PIC16F/LF1947 :: All 17 sensors supported
More extensive device support is on the way!
Required Compiler
- HI-TECH C Compiler for PIC10/12/16 MCUs v9.81 or later
If a non-PRO license is used to compile the framework, the maximum number of supported sensors will decrease. Noise testing was performed using the PRO license.
Using a third-party compiler may result in unknown behavior due to the heavy use of compile-time code formatting.
Module Requirements
- Timer 0
This module is used to schedule regular ADC scans on the sensors. Timer 0 normally interrupts after 256 counts; however, the mTouch framework pre-loads the TMR0 register with a pseudo-random seed value to slightly jitter the sampling rate. This means that the average number of counts before it interrupts is 224.
You control the TMR0 prescaler. The framework does not touch the OPTION register.
- Analog/Digital Converter
The ADC is the core module used by the mTouch CVD framework to acquire a sensor reading. This version of the framework does not support the ability to perform your own ADC measurements. If you perform an ADC reading inbetween TMR0 interrupts you will corrupt your sensors' readings. The ADC is fully initialized by the framework's mTouchCVD_Init() function.
- Universal Synchronous/Asynchronous Receiver/Transmitter (optional)
If the CVD_DEBUG configuration option is defined and set to 1, the mTouch CVD framework will automatically configure and begin outputting sensor data through the UART module. If no such module exists for the selected part, a software-based implementation will be included for the communication functions.
Memory/Processing Requirements
Roughly, the amount of time that will be spent in the mTouch ISR is based on the TMR0 prescaler value.
TMR0 Prescaler | mTouch ISR Processing Duty Cycle |
1 | Invalid |
2 | 40% |
4 | 20% |
8 | 10% |
The program memory and RAM requirements are determined mainly by the number of sensors.
Code Size / Program Memory | Data Space / RAM |
| Standard Midrange | Enhanced Midrange |
# Sensors | PRO | LITE | PRO | LITE |
1 | 560 | 845 | 565 | 840 |
2 | 650 | 950 | 670 | 960 |
3 | 725 | 1045 | 760 | 1080 |
4 | 790 | 1135 | 850 | 1190 |
+1 | +70 | +90 | +90 | +115 |
|
| Standard Midrange | Enhanced Midrange |
# Sensors | PRO | LITE | PRO | LITE |
1 | 46 | 57 | 36 | 45 |
2 | 60 | 72 | 51 | 60 |
3 | 74 | 86 | 65 | 74 |
4 | 88 | 100 | 79 | 88 |
+1 | +14 | +14 | +14 | +14 |
|