Wednesday, November 5, 2014

Firmware porting from a device to another - oDesk

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/1uwfTQL



p.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 apply



from Online Job Search

No comments:

Post a Comment