S
S
santeri2013-10-07 11:32:45
Microcontrollers
santeri, 2013-10-07 11:32:45

"scaling" on microcontrollers

Let's say we have an 8 bit microcontroller with 20MIPS that can generate a 10Mhz serial signal.
Is it possible to somehow take 2 microcontrollers and generate a signal with a higher frequency? (the first produces an even sequence, the second an odd one and you need to combine them).
Are there any solutions?

for 1 cycle you can output 8 bits to the port, what if you use 16 bit shift registers?

the first MK gives out 8 bits, the second MK gives out another 8 bits, and latches the register.
I need to generate 40MHz (VGA)

Answer the question

In order to leave comments, you need to log in

4 answer(s)
F
Flexz, 2013-10-07
@Flexz

the first MK gives out 8 bits, the second MK gives out another 8 bits, and latches the register.
I need to generate 40MHz (VGA)

It seems you need a video DAC (aka video encoder), that's pretty much how it works. For example, THS8200 . There are still options from Analog Devices .
But to form the initial data flow, it is hardly possible to get by with a set of small controllers, but you also need to form the initial data, and not just output it. Though for an output of a statics can and will give a ride.
The FPGA is best suited for this, the processor can form a picture and give it to the FPGA, and that, in turn, is exclusively engaged in its output. There will be quite a lot of data, so they can be stored in external RAM connected to the FPGA.
PS Take a look at Altera DE-1 , this board already has a simple R2R DAC with VGA output.

S
SFx, 2013-10-07
@SFx

look towards the i.MX23 Display Processing
in the built-in TV-Out VGA processor. processor price - ~ $ 15
(I used i.mx27, it works fine)

H
horlon, 2013-10-08
@horlon

In theory, it is possible, but there are several problems:
- microcontrollers must do the operation in one cycle (forget about two-cycle operations);
- the results should be stored in common registers (this is already a crutch);
- you need a 40MHz timer to clock both controllers, switching clocks between two microcontrollers (you need some kind of crutch to distribute clocks);
I didn’t find any ready-made solutions ... It’s easier to make a 16-bit microcontroller than a 40 MHz one :)

A
Alexey T, 2013-10-08
@Alexeyslav

10 MHz from the controller to 20 MIPS can be obtained only with huge restrictions. And I'm not sure that every controller is capable of issuing this. For example, an AVR can invert one port pin for each instruction, if you organize an infinite loop of such instructions without using a transition command (it will interrupt the generation at this moment for a couple of cycles), you can talk about a frequency of 5 MHz at the output. each such instruction is executed in 2 cycles - and this is only half the period of the generated signal. In this case, the controller will be busy exclusively with generating a signal on one output and will not be able to do anything else.
So the conclusion is that you need a faster controller. The alternatives are even worse - in addition to combining several controllers into a “cluster”, you will also need a supervisor who will control them synchronously, in general, this is the work of making an elephant out of a fly.
And sometimes, you can’t do with an ordinary controller - you need hardware processing. even modern “large” general-purpose processors cannot programmatically generate a video signal. There is also a class of so-called video processors - a hybrid of flexibly programmable logic circuits and a core in the form of a classic processor - this is the approach used in modern video cards.
And for the formation of slowly changing images, a combination of hard logic + 2-port RAM (implemented from the usual one by demultiplexing the address and data buses into two independent inputs and outputs) can be quite enough - one port for reading the DAC and the other port for writing from the controller side. Usually this all fits on a medium-sized FPGA.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question