Цифров синтез на сигнали с програмируема логика (FPGA) и външна R-2R матрица / Digital signal synthesis with programmable logic (FPGA) and external R-2R matrix

Статус на проекта: Активен /  Project Status: Active


Ядрото на ядрото / The Core of the Core

Вече споменах, че ще гледам да избягвам подробните обяснения, а ще наблегна на конкретни резултати. Може също да съм споменал, че принципно за мене си съм изяснил как структурно ще изглежда генератора, просто не бързам с реализацията, за мен това не е проект който ще ме изхранва и работя по него само когато почувствам вътрешна нужда от това, така удоволствието е най-голямо. Темата на днешната публикация е “Ядрото на ядрото” и ще се опитам да обясня защо. Ядрото на устройството ще бъде FPGA интегрална схема. В нея, чрез съответната конфигурираща програма се създава логическа структура която с помощта на външните резистори ще синтезира необходимият ни сигнал. И така, за да осъществим това ни е необходима така наречената двупортова памет и тя е ядрото на останалата логическа структура която ще създадем и ще бъде ядрото на устройството. С опреснени познания в VHDL програмирането създаваме двупортовата памет и съответно я тестваме със симулатора. Изходният програмен код можете да ИЗТЕГЛИТЕ от тук. На приложената снимка се виждат отделните етапи от теста, при създаването си двупортовата памет съдържа семплите на синусоида, няколко такта след като започваме да извеждаме синусоидата започваме със въвеждането на триъгълника, и после съответно извеждаме и него. И така като възможности имаме 2048, 16 битови семпъла за синтез на желаният от нас сигнал. От втората екранна снимка може да се види интегралната схема на която съм избрал и резултатите от синтеза на програмата.

                      

I have already mentioned that I will try to avoid detailed explanations, and will emphasize specific results. I may also have mentioned that in principle I have clarified for myself how the generator will look structurally, I am just not in a hurry with the implementation, for me this is not a project that will feed me and I work on it only when I feel an internal need for it, that is the greatest pleasure. The topic of today's publication is “The Core of the Core” and I will try to explain why. The core of the device will be an FPGA integrated circuit. In it, through the corresponding configuration program, a logical structure is created which, with the help of external resistors, will synthesize the signal we need. So, to achieve this we need the so-called two-port memory and it is the core of the remaining logical structure that we will create and will be the core of the device. With refreshed knowledge in VHDL programming, we create the two-port memory and accordingly test it with the simulator. You can DOWNLOAD the source code from here. The attached picture shows the individual stages of the test, when created the two-port memory contains the samples of a sine wave, a few cycles after we start outputting the sine wave, we start inputting the triangle, and then we output it accordingly. And so as possibilities we have 2048, 16 bit samples for synthesis of the signal we want. From the second screenshot you can see the integrated circuit that I have chosen and the results of the program synthesis.

28-10-2025


VHDL приключения / VHDL adventures

На тази страница, както съм планирал преди години започвам публикуването на това как да си направим генератор на сигнали. За разлика от страницата където се постарах да опиша максимално подробно направата на регулируемото захранване, тук ще гледам да съм по кратък и да публикувам основно резултати. Все пак проекта е предназначен за доста по напреднали в електрониката. Основните умения които ще са ви необходими са запояване на SMD компоненти и запис на фърмуер в микроконтролер STM32. Другата разлика от останалите страници на сайта е, че публикациите по дати ще са наобратно - първо най новите, а на края най старите. Така е организирана CMS системата (добавя новите раздели в публикацията най отгоре) и за мен е по лесно да я ползвам така. Структурно проекта ще е изпълнен на две платки с размери не по големи от 10х10 сантиметра - това са размерите които приемат производителите на печатни платки по преференциални цени. На едната платка ще са енкодерите, микроконтролера, FPGA, няколко операционни усилвателя за буфериране и управление на офсета и управляем генератор на тактова честота за FPGA . На другата платка ще са стабилизаторите на напрежение, изправителите и изходните усилватели на двата канала.  Изхождайки от това съм избрал ТАЗИ КУТИЯ (ако линка спре да работи търсите - 0905 Case). Поста нарекох VHDL приключения защото имах доста такива докато получа лиценз за програмата iCEcube2 – обявена като свободна за хобисти. Наложи се доста да им пиша, обяснявам и т.н. В края на краищата имам лиценз за една година и ще гледам в рамките на този период да приключа с нещата по програмирането на FPGA чипа. ПРОГРАМАТА която написах просто прогонва цялата верига от инструменти за това - така знам, че имам всичко работещо. Също така с помощта на изкуственият интелект си направих ФОРМА ЗА ПОДБОР НА РЕЗИСТОРИТЕ които свързани в изходите на FPGA ще формират изходните напрежения (по таблица изчислена и заредена от микроконтролера) на двата канала.


On this page, as I planned years ago, I start publishing how to make a signal generator. Unlike the page where I tried to describe in as much detail as possible the making of the adjustable power supply, here I will try to be brief and mainly publish results. After all, the project is intended for much more advanced electronics users. The main skills you will need are soldering SMD components and writing firmware to an STM32 microcontroller. The other difference from the other pages of the site is that the publications by date will be in reverse - the newest first, and the oldest at the end. This is how the CMS system is organized (it adds new sections to the publication at the top) and it is easier for me to use it that way. Structurally, the project will be implemented on two boards with dimensions no larger than 10x10 centimeters - these are the dimensions that printed circuit board manufacturers accept at preferential prices. On one board will be the encoders, microcontroller, FPGA, several operational amplifiers for buffering and offset control and a controllable clock generator for the FPGA. On the other board will be the voltage stabilizers, rectifiers and output amplifiers of both channels. Based on this, I have chosen THIS BOX (if the link stops working, search for - 0905 Case). I called the post VHDL adventures because I had quite a few of them while I was getting a license for the iCEcube2 program - announced as free for hobbyists. I had to write to them a lot, explain, etc. After all, I have a license for a year and I will try to finish the programming of the FPGA chip within this period. THE PROGRAM I wrote simply drives away the entire chain of tools for this - that's how I know that I have everything working. Also, with the help of artificial intelligence, I made a RESISTOR SELECTION FORM which, when connected to the FPGA outputs, will form the output voltages (according to a table calculated and loaded by the microcontroller) of the two channels.

31-08-2025


Преди много, много време в една далечна галактика / A long, long time ago in a galaxy far away

[БГ] Както се разбира от статуса на проекта това е нещо което планирам да направя в бъдеще. На снимката се вижда подготовката за бъдещите тестове и експерименти, тоест осигуряването на необходимите хардуерни компоненти. Подобни генератори на сигнали не са новост, китайците отдавна са залели пазара с тях. Това което ми е цел да постигна е да създам устройство което да е максимално евтино, с приемливи параметри – синтезирана честота по голяма от 20 MHz Естествено ще са необходими и компромиси, първият от тях е че ще използвам SMD компоненти, това затруднява сглобяването в домашни условия, но не виждам друг начин да се събера в  печатна платка с размери 100мм Х 100мм – това е размера който обикновено производителите на платки приемат с промоционални цени. И най голямата ми мечта разбира се е да успея да създам общност която да продължи да развива проекта за да може да надмине „промишлените“ китайски екземпляри като възможности при цена като тяхната. Ще трябва да си припомня програмирането на FPGA с VHDL, нещо с което не съм се занимавал повече от 10 години. Докато не го завърша напълно основен за мен си остава проекта за линейното захранване, а тук ще „поработвам“ само когато чакам за компоненти и други по основният проект. 
[EN] As you can see from the status of the project, this is something I plan to do in the future. The picture shows the preparation for future tests and experiments, that is, the provision of the necessary hardware components. Such signal generators are not new, the Chinese have long flooded the market with them. What I aim to achieve is to create a device that is as cheap as possible, with acceptable parameters - a synthesized frequency greater than 20 MHz Of course compromises will be necessary, the first of which is that I will be using SMD components, this makes it difficult to assemble at home, but I can't see any other way to fit it into a 100mm x 100mm PCB - this is the size that PCB manufacturers usually accept with promotional prices. And my biggest dream, of course, is to be able to create a community that will continue to develop the project so that it can surpass the "industrial" Chinese specimens in terms of capabilities at a price like theirs. I'll have to brush up on FPGA programming with VHDL, something I haven't done in more than 10 years. Until I have it completely finished, the main project for me remains the linear power supply project, and I will only                                                                                                                             "work" here while waiting for components and such on the main project.

[БГ] Група в Telegram  ....за въпроси и препоръки свързани с проектите представени на този сайт, моля ползвайте английски език за да е разбираемо за всички участници.

[EN]Telegram group ....for questions and recommendations related to the projects presented on this site, please use English so that it is understandable for all participants.

[БГ] Този сайт не използва бисквитки или каквито и да било други проследяващи технологии. Създаден е изцяло с нетърговска цел и естествено не използва и няма да използва реклами под каквато и да e форма. Може да използвате публикуваната тук информация както счетете за необходимо като автора не носи отговорност за настъпили щети или увреждания към вас или трети страни. 

[EN] This site does not use cookies or any other tracking technology. It was created entirely for non-commercial purposes and naturally does not and will not use advertisements in any form. You may use the information published here as you see fit and the author is not responsible for any damage or injury to you or third parties.