Dear All !
There is a big question related to actual Microcontroller swapping or overriding. At the moment i have a control circuitry board which has a Siemens SAB 80C 535 microcontroller (68 pin package). it is already programmed and plugged into the support circuitry and functions as it should. On the other hand I have a Tiva TM4C129 Connected Launchpad from Texas instruments. Which has the Tiva TM4C 129 EN CPDT Microcontroller on board with about 90 pins available for programming.
So I must override/Replace the SAB 80C 535 so that control is done over Tiva Launchpad. The question is if I could just remove the SAB then check the suitable hardware connection pins/ports and simply connect them to the Tiva Launchpad and use the launchpad with the same Code to obtain the same performance?. :o
Or I have to modify the support circuitry board? what one should keep in mind while trying to perform such an operation?
any help appreciated
Looks like that 80C535 is something Siemens licensed from Intel back in the 80's. If you have Schematics and board layouts it may be possible to make an adapter, perhaps even shoehorn an ATmega328p in its place, but my guess is you don't have any of that and this should probably be classified as hopeless.
The question is if I could just remove the SAB then check the suitable hardware connection pins/ports and simply connect them to the Tiva Launchpad and use the launchpad with the same Code to obtain the same performance?.
Summed up in a single word, no. The only thing the two parts have in common is possibly their outward physical appearance of being black square-ish epoxy blocks with shiny little legs poking out all four sides and little numbers and letters etched in the big flat side.
The two devices mentioned are separated by almost forty years of advancements in microelectronics technology. They are not compatible in even the most basic parameters - as the Siemens 80C535 is a 5 volt device and the TIVA is an ARM Cortex M4 which is a 3.3 volt part.
If you have Schematics and board layouts it may be possible to make an adapter, perhaps even shoehorn an ATmega328p in its place
Did you miss the part where the original 80C535 had about 60+ I/O?
Did you miss the part where the original 80C535 had about 60+ I/O?
I guess so, maybe an ATmega2560 is a better fit.
Dear all, thanks for coming up with various comments. I have found the Layout PCB schematics of the intel SAB 80 C 535 connections on the circuitry board it is plugged on. It looks like it controls a rotary encoder, simple LCD display, couple of buttons and some other stuff as well. Please have a look at the Layout schematics for the circuitry. The voltage difference is not hard to solve using a low dropout-voltage regulator which converts 5 volts to 3.0 Volts. everything else can be rerouted using wires and Code...
Hey guys I have accidentally found the hole circuitry board layout schematics. Which means that we know all the connections leading to control pins of the Siemens SAB 80 C 535 microcontroller. It means that there is a chance to reroute the Siemens SAB 80c 535 pin connections to Tiva Launchpad.
Here is the Launchpad technical data, it has more control pins than the Siemens SAB. :)
Schematics help, but now it is clear that everything is running at 5V.
I checked the TM4C129ENCPDT data sheet and ...
Update: The SAB80C535 looks to have many of its pins to external memory (A0..A14 and D0..D7). Thirty-ish pins are connected to stuff that needs to be controlled. Perhaps a Teensy 3.5 would be a reasonable choice, it has enough 5V tolerant pins to connect to those 30+ pads (e.g. don't use the external memory).
Yes, they may be 5 volt tolerant for the inputs but they don't output 5 volts... only 3.3. That might work... maybe... for some I/O. Who knows for sure? Do you? I know I don't.
Besides, the OP thinks he can run the original 8051 object code contained within the EPROMs. Please re-read his original post c.a.r.e.f.u.l.l.y.
Even if he had the original source code, which he doesn't, the timing issues alone make this idea dead on arrival. The core issue for me is that he's never given a whiff of a reason why he needs to do this nonsense. Only because he thinks he can? Not a sound reason to undertake such a project.
It's a fool's errand. A complete waste of time. The OP has hopefully has found another shiny object to focus on. Move along. Nothing to see here. :smiley-eek:
re-read his original post c.a.r.e.f.u.l.l.y.
The OP found the schematic, so that shows some level of interest. I have had fair luck with TTL and 5V CMOS devices from 3.3V outputs as a hack (is this not a hack?).
As far as the object code goes... well I have no plan to read the OP's post again but I expect they are clear on that issue now.
i have been checking the data you provided, It looks like the Ti Tiva TM4C129 MCU pins are max 4.0 volt tolerant. So the teensy 3.5 might be a better choice. I have found a source code meanwhile. So basically I have the full EPROM data. So we have the circuitry, the object code. I guess that is enough data, worth to try, because it has never been done before, which means that's worth to try. The source code files are in .BIN format. I dunno how to open them, or extract the code. Do you have any idea?
The 80535 is based on the 8051.
There might be a 8051 decompiler that can convert the bin file to C code.
There are 8051 disassemblers that can convert the bin file to 8051 assembler code.
If only the latter, enjoy the study ;)
The BIN file does not sound like source code. Perhaps you can open the file with an editor and see some clues the linker left, you want to find clues about that toolchain that was used to build the BIN file.
My guess is you have what is call a relocatable binary image file. The bad news is those things are toolchain specific, so you need some clues as to the toolchain that made it. Then to find a toolchain that can make sense of the image (one possibility is http://sdcc.sourceforge.net/) and then look for any disassembly tools it may have.
The GCC-based AVR toolchain (which is hidden just out of sight) compiles source code (C or C++) into an elf file (which is a relocatable binary image that GCC knows how to work with). The AVR toolchain also as a program (i.e. avr-objdump) that can be told to disassemble the elf image into a human readable (debatable) textual file. The GCC toolchain adds a lot of the actual source code to the elf, so an elf file can be very helpful for figuring out what is going on.
@sterretje, I have some duplication of what you said but I did not what to fix it.
I have tried to use a tool-chain linkers you mentioned, in order to create an assembler file. So I used the IDA Pro Disassembler. The thing is it disassembled and created some kind of HEX files or strings, which I don't really understand. I have generated an .asm file from all that. I decided to use the Arduino MEGA 2560, instead of Tiva and Teensy. I find it better fit for the mentioned task. Please have a look at the assembler file, maybe you will understand it better than me.
I decided to convert file to .pdf, coz the Forum does not support asm, or HTML.
So I generated .pdf file. So the HEx is in the pdf file.
No attachments? Rename your something.asm to something.asm.txt and you can probably attach it.
Looks like it worked,
Looks like it worked,
Not really, you need a disassembler that supports 8051 code.
I would say your chances of success here are minimal. Is this a hobby thing or professional task?
its a professional task. It has do be done for scientific instrument, dealing with signal amplifications etc...
I think even for an experienced embedded engineer, it might be simpler to write code from scratch than attempt to reverse engineer from 8051 assembler. You have not said what the control board does, the function could be quite simple or quite complex. At least there is not more than 8KBytes of code to deal.
I assume you have a spec for the system which you could work from. Have you considered hiring someone to work to a spec? Either way, it could take a significant effort.
the digital control circuitry board, on which the original Siemens SAB microcontroller is installed is responsible for the control of the device which does signal amplification on several channels, including channels swapping, signal input/output. So its pretty complex. It has lots of analog signal circuitry which is completely under microcontroller control.
Ok, I see. I am a little confused though
At the moment i have a control circuitry board which has a Siemens SAB 80C 535 microcontroller (68 pin package). it is already programmed and plugged into the support circuitry and functions as it should.
So what is the purpose of porting code to a new CPU? Are there some additional functions required?
Basically, yes. The pins, of the old one are few and all connected. Also the 8051, is the problem, we want to change it to more advanced ARM cortex controller, with more functionality. :smiley-confuse:
Ok, my confusion is that you said that the current circuit "functions as it should", so I wondered what reason you need to change it.
Are you designing a new card with TM4C1294, but want to port the old code to the new CPU? That sort of thing I have worked on quite a few times in the past.
I have the TM4C1294 Launchpad btw, it's a nice board, with the onboard MAC. I was planning to build a "web radio" with it.
Yes, you are right. The task is to modernize the actual outdated board with its controller, due to the fact that they are nor available anymore. So manufacturer stopped the production. Now the task is to update the cpu board on (inside the device with a more modern solution, like TM4C Series). I was wondering if it might be possible to try not alter the old circuitry and patch the old code somehow on the TM4C with minor modifications. So at the moment i have such a cpu board where the old controller is removed and all the holes on circuitry board are free, my idea was to connect them to Tm4C. But came out that the hole circuitry works on 5V. That said, i am puzzled and need some advices from experienced embedded engineers... :smiley-roll-blue:
Part obsolescence is a problem particularly for industrial applications. We have products first designed 20 years ago, but they are still selling well.
We can extend the life by finding pin-compatible parts, with some minor software fixes. If the CPU becomes obsolete, we have a choice to find the nearest equivalent and port to a new CPU, keeping the same product design. This is doable because we have the original design and source code, but it still a lot of effort. This keeps customers happy because they like a drop in replacement.
Or we redesign a new product, with better performance and new features. That also is a significant effort, but it is a better investment than just stretching the life of an old product. Customers can be made happy with redesigning their systems to fit our new product if we offer a slightly cheaper product...
Which option is better is a judgment call. In general, redesigning is a better option, because extending the life becomes increasingly difficult. e.g. nearly all circuits are 3.3V nowadays. If you have good documentation and source code for the original design, and can find a very similar device, then that option is possible. We did that for one old product, it took about 2 years.
But if you have no documentation and no source, it is not really a viable option. There is too big a leap from old to new, and although it seems like there should be a stepping stone by reusing the old design, it's a bit like trying to make a 747 out of a DC3. No time is actually saved, and you also end up with a design based on an old architecture.
If you have a budget for this project, I strongly recommend spending it on creating a new design.
As we came this far, I'd like to take a chance and ask you couple of questions. Hopefully you dont mind ^^).
So you said you have a TM4C Launchpad, and you also asked me if I am planning to design a new card. Actually YES. Now the plan is to design a new card with a cortex core. The plan is to build a new card which will undertake the same goals/tasks as the old one. But I am quite inexperienced here, I am coming from Physics-and natural sciences background having some skills in C-programming, I can build a hardware, lets say launchpad ecosystem, embedding in simple applications like creating some hardware also writing firmware for it. But never had done something like a new control card. Where should i start?, I dont know how to start actually.
Could you please guide me in this deep dive please.
It's funny that adults have trouble learning "how to learn", when kids seem to have little problem. Adults seem to forget how to learn. Perhaps that is the result of an education system that is designed for industry, in order to produce task oriented workers, aka human robots. Once we have been "programmed" we are not required to learn new things!
Anyway, learn by playing, is the best way. Pick a simple task, try to do it. If you fail, try something simpler, or seek help. Keep repeating until you have enough knowledge to attempt bigger tasks. There is no shortcut.
I couldn't possibly teach you enough about embedded hardware and software design needed to do my job in an hour or two, any more than you could teach me what you know about physics and natural sciences in a couple of hours.
When I started, I had to recover components from broken radios, and the only sources of information were library books and magazines. The fantastic thing is that nowadays there is a huge amount of information about, and lots of cheap hardware and tools. Even online "universities".
The usual place to start is blinking an LED, you may have done that already.
I woud like to ask for help. How to read data/EPROM from Siemens SAB 80515 / SAB 80C515 Family?
Obviously the answer is that you use the same tools you used to program it in the first place.
Questions like "how to read the EEPROM" usually indicate someone attempting to do the impossible. It's kind of like asking "I've got some burgers, how do I turn them back into a cow?"
Normally, when developing we rarely need to dump the data from the device. It's only if you are reverse engineering old products or copying someone else's products you would need to do this. In both cases, you really need to know how to do it before even thinking of attempting it.
There are forums dedicated to 8051, those would a better place to ask anyway.
cant agree more with you at this point. What I find really great when you deal with Physical Computing, that it makes possible to create something from nothing. Lets say, the concept of transformation of the firmware etc.. into hardware which is like you blow life into a bunch of electronic components. Which actually are doing nothing unless there is the code to bring it to life. I find it mesmerizing. It consumed me so strongly that I decided to leave the science, and went into this wonderful world. So jealous that you guys can make such insane ideas come true. Maybe I could use my scientific knowledge to combine with the hardware programming, etc.. firmware development.
learn by playing, is the best way
from post #27 is excellent, I'm going to double down on that statement. Also on the try... fail... think about what caused the failure... and try again.
I do not ask to decode the data!
I am just interesting how to read the all data from one CPU and to send/write to another. Maybe exist some "reader" (hardware) for just enough to connect to special pin.
O does not find any useful info about that.
I order several boards from ebay, with this CPU, but inside program is a little different. They all in working condition, but my goal - all the same program.
Do they have EEPROMS? In which case, you just need to find an EEPROM programmer which supports that device.
If the CPU is the ROM version, then there is nothing you can do with that.