Answer the question
In order to leave comments, you need to log in
"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
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)
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)
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 :)
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 questionAsk a Question
731 491 924 answers to any question