I have an Microchip MPLAB 8.89 project, written in assembly, for the PIC16F628A microcontroller.
Now I have to port this project to the newer PIC16F1526 processor, to use in a newer board.
My aim is to mantain the same functionalities for the first version. Further functionalities will be added in the future when the porting is stable and fully tested.
Here what I'm asking:
1) create a new MPLAB project with a similar structure
2) configuring the new processor as the requirements descibed here
3) creating the new interrupt structure for real-time operations
4) creating new interrupt routines for code that in the older board were executed by separate processors
5) adapt this code in the new enviroment MANTAINING OLD LABELS to easy navigate the code
6) make all the code compiling
7) When you have reached this step I'll pay an upfront and you submit me the code to test
8) I'll test the code and I'll perform all the necessary optimization, asking your assistance in case of problems
9) After that, when I will release the first version I'll pay all and I'll close this project
Main difficulty:
While the new board has only one processor (the PIC16F1526), the old board has got a main processor (the PIC16F628A) and up to six slave processor (PIC12F508) to perform real time operations. Master and slave processors communication occours using a 4 bit data bus and three addressing lines.
In the new board there is only a processor, so I need some interrupt calls occouring at 4 Mhz frequency (the same frequency of the old slave processors) to perform operations that were performed by slave processors. The code running on old slave processor must be rearranged inside this interrupt calls.
To leave the time to perform main cycle operation the processor clock must be set to 16 Mhz.
I/O reference:
In order to correctly configure the port lathcs and processor peripherals I explain here the electrical requirement for every I/O and I indicate inside ( ) the signal name used in the old board:
DIRECT_IN1 = digital input (IN1)
DIRECT_IN2 = digital input (IN2)
DIRECT_IN3 = digital input (IN3)
DIRECT_IN4 = digital input (IN4)
DIRECT_OUT1 = digital output, internal pull-ups enabled (OUT1)
DIRECT_OUT2 = digital output, internal pull-ups enabled (OUT2)
DIRECT_OUT3 = digital output, internal pull-ups enabled (OUT3)
DIRECT_OUT4 = digital output, internal pull-ups enabled (OUT4)
HEAR1 = digital input NOT USED
HEAR2 = digital input NOT USED
HEAR3 = digital input NOT USED
HEAR4 = digital input NOT USED
HEAR5 = digital input NOT USED
HEAR6 = digital input NOT USED
SIN1 = digital input (SIO1)
SIN2 = digital input (SIO2)
SIN3 = digital input (SIO3)
SIN4 = digital input NOT USED
SIN5 = digital input NOT USED
SIN6 = digital input NOT USED
SOUT1 = digital output, internal pull-ups enabled (SIO4)
SOUT2 = digital output, internal pull-ups enabled (SIO5)
SOUT3 = digital output, internal pull-ups enabled (SIO6)
SOUT4 = digital output, internal pull-ups enabled NOT USED
SOUT5 = digital output, internal pull-ups enabled NOT USED
SOUT6 = digital output, internal pull-ups enabled NOT USED
EXP1...16 = NOT USED
DIRECTION1 = digital output, internal pull-ups enabled NOT USED
DIRECTION2 = digital output, internal pull-ups enabled NOT USED
TX1 = uart output (TX)
RX1 = uart input (RX)
TX2 = uart output - NON USED
RX2 = uart input - NON USED
Resources:
- Schematic of the old board with master and slave processors:
http://ift.tt/1uwfWfq- New board with only master processor:
http://ift.tt/1uwfWfu- MpLab project for main processor:
http://ift.tt/1uwfWfw- Asm for slave processor M:
http://ift.tt/1uwfWfz- Asm for slave processor S:
http://ift.tt/1uwfTQLp.s. other files needed to successful compile and further details about the firmware I'll send when we start working
Thank you for your interest, I'm available here for any other question.
Michele
Budget: $150
Posted On: November 05, 2014 18:36 UTC
ID: 204749194
Category: Software Development > Other - Software Development
Skills: Array, Array, Array, Array, Array
Country: Italy
click to applyfrom Online Job Search