Hello everyone. For my university project I have to pick a processor and simulate UART and DMA on it. Can you advice a processor, UART and DMA for which is supported be Keil uVision4? Thanks in advance.
If simulating, then I would just write a PC program.
No reason to use a microcontroller for simulating a processor.
It's a completely different thing if you are going to implement a UART in software, i.e. actually be able to send in real serial data at a real, fixed, baudrate on a GPIO pin and have the processor handle it. And correspondingly send out data on another GPIO pin.
Simulating DMA doesn't really sound meaningful. It would still just be an interrupt-driven (?) UART communication that places received data in one memory buffer somewhere and picks up other outgoing data from another buffer. So no real difference from a standard interrupt-driven UART communication.
I understand, there's little sence in this, but unfortunately that's the task I have to do. We were told to write programmes on MCStudio (Another IDE) using loopback-ed UART and DMA, then do the same thing on some other IDE with an ARM processor. So, no real data handling or pin connecting is needed. I'll be very grateful if you advice me a microcontroller, which can be 'tortured' in a way described above.
But two UART in loopback mode is not simulation. It is still real hardware UARTs.
So most probably, your teacher didn't talk about simulating DMA either, but to implement real DMA transfers. Just that you settle for a single processor where you have one outgoing DMA channel that feeds one UART, and one incomming DMA channel that picks up data from the other UART.
I'm pretty sure he meant simulation, since in MCStudio we only use simulation. And that's not two UARTs, just one with transmitter linked to reciever. I can give a rough translation of the task, but I'm not sure it will help.
I just need to show a 'working' UART simulation.
Yes, but even using the simulator supplied by Keil, YOU are not writing any UART simulator.
You will write code for a real procesor, and then simulate that processsor.
Sorry if I caused misunderstanding. I was not intending to write a simulator, I only need to use an existing one. So I want to know what processor to choose for such aim. As far as I know, peripherals are simulated not for every processor.
Since you are not going to buy any processor or development board, it will be quite simple for you to jump around between all the supported processors.
The chips I normally use have good peripherial support in the simulator. But alas, none of them seem to have simulation support for DMA.
Could you give me a hint which family and company should I start with? And, considering UART, there are Virtual Simulation Registers mentioned in the User Guide. Are they accesible for all chips that have UART and do I need to include additional libraries to use them?
The Virtual Simulation Registers are not processor registers. It's the Keil simulator that has a programming language, where you can pick up bytes sent from an UART, or feed bytes to an UART.
If you select a microcontroller that has a UART with loopback mode, then you do not need to write any simulator script to pick up bytes and echo them back. You can just configure the simulated UART to loopback data.
I have used a number of NXP LPCxxxxx ARM chips, that have had good simulation support. And the peripherials of the processors have had lots of extra goodies. But as I said, none of the processors I have used with the Keil simulator have simulator support for DMA. So that means that I can't give you any recommendations. You must either scan through the supported processors one-by-one and check on simulation support, or hope that someone else have used a processor that does have simulation support for DMA.
I think UART will be enough for a while, so I'll give NXP chips a try. Thanks a lot for putting up with me and spending a lot of time answering. Hope that wasn't too much trouble for you.