This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Shoe Horned SPI IAP

So I nearly finish several subsystems, designing the 'high-end' analog and mixed signal electronics controlled by ARM processors. This forms the basis for a 'standardized' interface and subsystem architecture for several interchangeable peripherals on the main product lines.

The project planning determined early on that these systems would not be in-field programmed, but rather as is, and if a customer wanted new features, we would send them an updated board. That is, until the in-field update can be developed and validated: or if IAP is even needed at all.

All this in an effort to get the initial product out the door as quickly as possible. Everybody signed off on the plan.

Then, after a year of system development, 'they' think it would be good to have in-field updates prior to the initial run. Yes, it would be good, but that wasn't the plan. The schedule is now pushed off due to this sudden 'need' for this IAP.

Now, its all about how my subsystems are holding up the project. The company owner is brow-beating me over the schedule.

His company isn't exactly well organized. After much prodding, I got them to actually assign a Project Manager, and to use Gantt charts, and to break down projects into tasks. They're in the learning curve of how to do projects; and it shows.

Looking into IAP, the Cortex M-3 has the ROM boot-loader using the UART. The systems don't use the UART, just the SPI. Now I get to write my own IAP, and do get it done yesterday.

If the IAP was part of the initial plan, I could have connected the UART lines to the interface. Again, the original plan was no IAP until after our products began shipping, then if needed, the IAP effort would begin, in which they may require a board spin, along with appropriate firmware and protocol changes. There are several peripheral boards, all with the common interface.

But now I get to shoe-horn the IAP into the system complete with flack about the schedule. The IAP is a bit more complex as it affects other systems upstream than these peripherals, so updating the system over the internet is a thing. A thing that wasn't supposed to involve the peripherals... because they really don't need it. This is one of those "Hey, its possible. So lets do it." Another example of the sage advice I got from a true engineering god: "Resist all temptation to increase expectation."

I am using STM32F103xxx series processors: medium and large memory models:

STM32F103T6U7A
STM32F100C8T6BTR
STM32F103ZCH6

It was hard enough to get the company to stick with a single processor as a baseline as opposed to mixing Ti DSPs, PICs, Cortex M-3 and M-0, 8051s, etc. on the various peripherals.

And OMG just because medium-performance motor loop-closures are involved, it does not mean a DSPs are required. Settling on the Cortex M-3 for a common interface and code base was an achievement.

So, my question is, is there an approved [license free] IAP using the SPI out there for these processors? I don't ever use "internet software." I write my own, but if there exists a good model, I could structure my code to implement the IAP.

Yes, I did go to the local town library and searched for such software and application notes. I just know this forum has some excellent engineers who answers questions posed by either students trying to pass a class or Arduino hobbyists trying to build the next Big Thing, so I am appealing to them and their vast IAP knowledge base for some guidance. ... Andrew, Per, erik, etc.

This is Week One on the IAP effort.

Right now, I'm looking at writing a boot-loader into the firmware that copies the new operational code image into Flash, then from that Flash, program the operational code where its supposed to go. Then transfer control to the newly programed firmware. (Again, its Week One).

This doesn't have to be bullet proof like some of my prior projects, where I did the IAP which was absolutely bullet proof: where it would never be able to ruin a system with a screwed up IAP process.

Nobody dies if it doesn't work. Nobody dies if it does work. Nobody dies with this project. *sigh*

Thanks in advance, and I need to turn in this homework by next Tuesday to convince my correspondence course instructor that I am a worthy of writing embedded code for that off-brand pace-maker company down our dirt road.

--Cpt. Vince Foster
2nd Cannon Place
Fort Marcy Park, VA

P.S. Or I could have just asked for free IAP software for SPI using the STMF1 processor, so people wouldn't have to read a wall of text. But the regulars know I can't do that.