Hello,
My name is Elmac Chaygap. I am a student at the school and I am doing a course on Physics and Electronics. One day I want to be a manager but I think I will be an Engineer first. I am working on a project with a processor and memory. The problem is that it works very slowly. Can anyone tell me how I can change the speed by making it faster?
Nitro?
You really have to tell more. What processor. Do you mean external memory? How have you configured the processor? Is it only slow when accessing external memory? In what way is it slow?
Do come back with a long and nice description of your project. What you have. What you have tested. What happened. What you expected to happen.
It is me, Elmac Chaygap.
The project I have has a board. I think the processor is an 80C31 and it has some RAM (32KBYTE) and some EPROM (32KBYTE).
I write the program with assembly and I burn the intelhex file to the EPROM. I get a letter from the serial number 0 and I change it to lower or upper and send it back. I use hyperterminal on the PC. When I get the character it takes a lon
"it takes a lon"
Are you using LonWorks (Echelon) communication?
Please post your source code.
How have you verified if the delay is on the PC side or in your assembly code?
By the way: Are you required to write in assembler? C tends to be more productive.
Elmac, Have you checked your external bus interface configuration to make sure there are no excessive wait states involved in memory access operations? are you sure it is your controller that is slow and not the PC side? have you tried running a demo program that demonstrates serial communication to verify that it is indeed your implementation?
I think the processor is an 80C31 how is that for knowing what you work with
anyhow if the OPs thought is correct there is no "external bus interface configuration" and no "wait states"
now it would be nice to know what the Op thinks the clock is and what he thinks the SFRs are set at
NAAH ... if the OP can not provide facts instead of thoughts, why bother
Erik
It is people like him who give the clan a VERY bad reputation.
It is me again Elmac Chaygap.
Sorry but the computer went poofy before.
The writing on the processor says 80C31 so I think it is an 80C31.
The crystal has 14M456 so I think it is 14.456MHz
What is bad for me to think this? I do not have the circuit and do not know. I try to be sensible. Sorry I am not clever like everyone here!
I set serial channel 0 for 9600 baud and it works so I think I have set the registers properly.
The board has some links on but I do not know what they do. I asked the
don't be sorry. this isn't class and you can ask what you want without fear or disturbing anybody. by the way, I am sorry for being a little rude before, I thought you were another one of these annoying trolls that appear here from time to time (yesterday we had a genius that claims to be able to compile entire programs in his head. if he is reading, I am curious: did you get the results of the CAT scan I recommended?). Now, let's start from scratch. you have a functioning system but it under performs. can you use a simulator to find the bottle neck? please try a demonstration program as I suggest in my previous post so that you can put the blame on something - PC or controller. and provide more details about your setup. that can help, too.
What is bad for me to think this? I do not have the circuit and do not know a simple solution: find out
as long as you work with what you think it is the only help you can get is what someone think it could be.
I set serial channel 0 for 9600 baud and it works so I think I have set the registers properly. that one is easy, does what you run across the serial show up in the other end correctly, if so, the setting of the baudrate is correct.
I write the program with assembly post your code
Elmac,
If you have access to an oscilloscope, check to see what your 80C31 is receiving and transmitting.
Do the characters look right? If you can measure the time between receiving and transmitting, how much of a delay is there?
You mentioned that you use hyperterminal. If you can, try another program. I have found that hyperterminal can sometimes confuse you with strange actions. Sometimes my copy just stops receiving anything until I close the program and restart it!
Let us know the results.
Distinguished clan member and Elmac,
'TeraTerm Pro' is freeware and a good replacement for HyperTerminal.
Tamir,
I've never heard of that one, I'll hunt it out and give it a try.
Thanks.
It is me again, Elmac Chaygap.
Thank you John, Tamir and Per. You helped me find the problem.
I managed to get a scope and saw that my board was sending a letter very quickly after getting a letter. So the board and my code worked properly.
I then got teraterm and tried that and the problem was gone.
I will never use hyperterminal again.
I now think that I have a working board and some working code. Now I make it do more :)