{"id":311801,"date":"2020-10-21T09:00:36","date_gmt":"2020-10-21T09:00:36","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=311801"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2020-10-21T09:00:36","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=311801","title":{"rendered":"\u0412\u0442\u043e\u0440\u043e\u0439 HDMI \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u043a Raspberry Pi3 \u0447\u0435\u0440\u0435\u0437 DPI \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 FPGA \u043f\u043b\u0430\u0442\u0443"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\n<div class=\"oembed\"><iframe id=\"5f8fd6452cbf1a1445b352d0\" src=\"https:\/\/embedd.srv.habr.com\/iframe\/5f8fd6452cbf1a1445b352d0\"><\/iframe><\/div>\n<p>  \u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0438\u0434\u0435\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b: \u043f\u043b\u0430\u0442\u0430 Raspberry Pi3, \u043a \u043d\u0435\u0439, \u0447\u0435\u0440\u0435\u0437 \u0440\u0430\u0437\u044a\u0435\u043c GPIO, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0430 FPGA \u043f\u043b\u0430\u0442\u0430 \u041c\u0430\u0440\u0441\u043e\u0445\u043e\u04342rpi (Cyclone IV), \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d HDMI \u043c\u043e\u043d\u0438\u0442\u043e\u0440. \u0412\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u0447\u0435\u0440\u0435\u0437 \u0448\u0442\u0430\u0442\u043d\u044b\u0439 \u0440\u0430\u0437\u044a\u0435\u043c HDMI Raspberry Pi3. \u0412\u0441\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043a\u0430\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441 \u0434\u0432\u0443\u043c\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430\u043c\u0438.<br \/>  \u0414\u0430\u043b\u044c\u0448\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e.<a name=\"habracut\"><\/a><\/p>\n<p>  \u041d\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0435 Raspberry Pi3 \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u044a\u0435\u043c GPIO, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f: \u0434\u0430\u0442\u0447\u0438\u043a\u0438, \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u044b, \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0448\u0430\u0433\u043e\u0432\u044b\u0445 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435. \u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u043d\u0430 \u0440\u0430\u0437\u044a\u0435\u043c\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u0440\u0442\u043e\u0432. \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f GPIO ALT2 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0430\u0437\u044a\u0435\u043c \u0432 \u0440\u0435\u0436\u0438\u043c DPI \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, Display Parallel Interface. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043f\u043b\u0430\u0442\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f VGA \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u043e\u0432, \u0447\u0435\u0440\u0435\u0437 DPI. \u041e\u0434\u043d\u0430\u043a\u043e, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u044b VGA \u0443\u0436\u0435 \u043d\u0435 \u0442\u0430\u043a \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u044b, \u043a\u0430\u043a HDMI, \u0430 \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432\u0441\u0435 \u043b\u0443\u0447\u0448\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0433\u043e. \u0422\u0435\u043c \u0431\u043e\u043b\u0435\u0435, \u0447\u0442\u043e \u0426\u0410\u041f \u043d\u0430 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 VGA \u043f\u043b\u0430\u0442\u0430\u0445 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0432 \u0432\u0438\u0434\u0435 R-2-R \u0446\u0435\u043f\u043e\u0447\u0435\u043a \u0438 \u0447\u0430\u0441\u0442\u043e \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 6 \u0431\u0438\u0442 \u043d\u0430 \u0446\u0432\u0435\u0442.<\/p>\n<p>  \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 ALT2 \u043f\u0438\u043d\u044b \u0440\u0430\u0437\u044a\u0435\u043c\u0430 GPIO \u0438\u043c\u0435\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/68\/-k\/in\/68-kinevczormxybm6aam4am1oo.png\" alt=\"image\"><\/p>\n<p>  \u042f \u0437\u0434\u0435\u0441\u044c \u0440\u0430\u0441\u043a\u0440\u0430\u0441\u0438\u043b RGB \u0432\u044b\u0432\u043e\u0434\u044b \u0440\u0430\u0437\u044a\u0435\u043c\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u043a\u0440\u0430\u0441\u043d\u044b\u0439, \u0437\u0435\u043b\u0435\u043d\u044b\u0439 \u0438 \u0441\u0438\u043d\u0438\u0439 \u0446\u0432\u0435\u0442\u0430. \u0414\u0440\u0443\u0433\u0438\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u044d\u0442\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u043a\u0438 V-SYNC \u0438 H-SYNC, \u0430 \u0442\u0430\u043a \u0436\u0435 CLK. \u0422\u0430\u043a\u0442\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 CLK \u044d\u0442\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0438\u043ac\u0435\u043b\u0435\u0439 \u0432\u044b\u0434\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u044a\u0435\u043c, \u043e\u043d\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0435\u043e\u0440\u0435\u0436\u0438\u043c\u0430.<\/p>\n<p>  \u0414\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0433\u043e HDMI \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u044b DPI \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u0441\u0438\u0433\u043d\u0430\u043b\u044b HDMI. \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u0430\u043a\u043e\u0439 \u043b\u0438\u0431\u043e FPGA \u043f\u043b\u0430\u0442\u044b. \u041a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u043f\u043b\u0430\u0442\u0430 \u041c\u0430\u0440\u0441\u043e\u0445\u043e\u04342rpi \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439. \u041f\u043e \u043f\u0440\u0430\u0432\u0434\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u043b\u0430\u0442\u044b \u0447\u0435\u0440\u0435\u0437 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/rg\/l0\/ud\/rgl0udtl1u4xh4bo4sdryyuppae.jpeg\" alt=\"image\"><br \/>  \u042d\u0442\u0430 \u043f\u043b\u0430\u0442\u0430 \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0447\u0438\u0441\u043b\u0430 GPIO \u043f\u043e\u0440\u0442\u043e\u0432 \u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0439\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043a raspberry. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c, 4 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 GPIO \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u043e\u0434 JTAG \u0441\u0438\u0433\u043d\u0430\u043b\u044b, \u0442\u0430\u043a, \u0447\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u0437 \u0440\u0430\u0441\u043f\u0431\u0435\u0440\u0440\u0438 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c FPGA \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0432 \u041f\u041b\u0418\u0421. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u0442\u0430\u043a\u043e\u0435 \u0448\u0442\u0430\u0442\u043d\u043e\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u043d\u0435 \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442, \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0442 4 DPI \u0441\u0438\u0433\u043d\u0430\u043b\u0430. \u041f\u043e \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0433\u0440\u0435\u0431\u0435\u043d\u043e\u0447\u043a\u0438 \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0443\u044e \u0441 Raspberry \u0440\u0430\u0441\u043f\u0438\u043d\u043e\u0432\u043a\u0443. \u0422\u0430\u043a, \u0447\u0442\u043e \u044f \u043c\u043e\u0433\u0443 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u043b\u0430\u0442\u0443 \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0438 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0435 \u043a \u043c\u043e\u0435\u0439 \u043c\u0430\u043b\u0438\u043d\u043a\u0435:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/uy\/cl\/nn\/uyclnn7vkic8vpbl1couqegwej4.jpeg\"><br \/>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 JTAG \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430.<\/p>\n<p>  \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432\u0441\u0435 \u0436\u0435 \u0435\u0441\u0442\u044c. \u041d\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 FPGA \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u0432\u0445\u043e\u0434 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b. \u0415\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e dedicated pin, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439. \u0422\u0430\u043a \u0438 \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e GPIO_0 \u0441\u0438\u0433\u043d\u0430\u043b CLK \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043d\u0430 \u0432\u0432\u043e\u0434 FPGA, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0432\u0445\u043e\u0434 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u041f\u041b\u0418\u0421. \u0422\u0430\u043a \u0447\u0442\u043e \u0432\u0441\u0435 \u0442\u0430\u043a\u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043a\u0438\u043d\u0443\u0442\u044c \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u043a \u043d\u0430 \u043f\u043b\u0430\u0442\u043a\u0443. \u042f \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u044e GPIO_0 \u0438 \u0441\u0438\u0433\u043d\u0430\u043b KEY[1] \u043f\u043b\u0430\u0442\u044b:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/9p\/1j\/vv\/9p1jvvwodlry6axyixtjav63u5u.jpeg\" alt=\"image\"><br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u0432 \u041f\u041b\u0418\u0421. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 HDMI \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b. \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0446\u043e\u043a\u043e\u043b\u0435\u0432\u043a\u0443 \u0440\u0430\u0437\u044a\u0435\u043c\u0430 HDMI, \u0442\u043e \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u044b RGB \u0442\u0435\u043f\u0435\u0440\u044c \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c\u0438:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ab\/aq\/g3\/abaqg3ugphearr7dga7olq0uvwq.jpeg\"><\/p>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f \u0441 \u0441\u0438\u043d\u0444\u0430\u0437\u043d\u044b\u043c\u0438 \u043f\u043e\u043c\u0435\u0445\u0430\u043c\u0438 \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0432\u043e\u0441\u044c\u043c\u0438\u0431\u0438\u0442\u043d\u044b\u0439 \u043a\u043e\u0434 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0446\u0432\u0435\u0442\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 10-\u0442\u0438 \u0431\u0438\u0442\u043d\u044b\u0439 TMDS (Transition-minimized differential signaling). \u042d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u0438\u0437 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0438 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0432 \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0438. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0430 \u043e\u0434\u0438\u043d \u0431\u0430\u0439\u0442 \u0446\u0432\u0435\u0442\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c 10 \u0431\u0438\u0442, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0442\u0430\u043a\u0442\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432 10 \u0440\u0430\u0437 \u0432\u044b\u0448\u0435, \u0447\u0435\u043c \u0442\u0430\u043a\u0442\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439. \u0415\u0441\u043b\u0438 \u0432\u0437\u044f\u0442\u044c \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0432\u0438\u0434\u0435\u043e \u0440\u0435\u0436\u0438\u043c 1280\u0445720 60\u0413\u0446, \u0442\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0443 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 74,25\u041c\u0413\u0446. \u041d\u0430 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c 742,5\u041c\u0413\u0446. \u041e\u0431\u044b\u0447\u043d\u044b\u0435 FPGA \u0432\u043e\u043e\u0431\u0449\u0435-\u0442\u043e \u043d\u0430 \u0442\u0430\u043a\u043e\u0435, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b. \u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u043e \u043d\u0430\u0448\u0435\u043c\u0443 \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0432 FPGA \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b DDIO. \u042d\u0442\u043e \u0442\u0430\u043a\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u043a\u0430\u043a \u0431\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430\u043c\u0438 2-\u043a-1. \u0422\u043e \u0435\u0441\u0442\u044c \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0432\u0430 \u0431\u0438\u0442\u0430 \u043f\u043e \u0444\u0440\u043e\u043d\u0442\u0443 \u0438 \u0441\u043f\u0430\u0434\u0443 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b. \u0417\u043d\u0430\u0447\u0438\u0442 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 FPGA \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435 740\u041c\u0413\u0446, \u0430 370\u041c\u0413\u0446, \u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0434\u0435\u0439c\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b DDIO \u0432 \u041f\u041b\u0418\u0421. \u0412\u043e\u0442 370\u041c\u0413\u0446 \u0443\u0436\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0440\u0435\u0436\u0438\u043c 1280&#215;720 \u044d\u0442\u043e \u043f\u0440\u0435\u0434\u0435\u043b. \u0411\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432 \u043d\u0430\u0448\u0435\u0439 FPGA Cyclone IV \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 \u041c\u0430\u0440\u0441\u043e\u0445\u043e\u04342rpi \u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0447\u044c.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0432\u0445\u043e\u0434\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 CLK \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043d\u0430 PLL, \u0433\u0434\u0435 \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430 5. \u041d\u0430 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u0431\u0430\u0439\u0442\u044b R, G, B, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u043f\u0430\u0440\u044b \u0431\u0438\u0442. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 TMDS \u044d\u043d\u043a\u043e\u0434\u0435\u0440. \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u043a\u043e\u0434 \u043d\u0430 Verilog HDL \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a:  <\/p>\n<pre><code class=\"vhdl\">module hdmi( \tinput wire pixclk,\t\t\/\/ 74MHz \tinput wire clk_TMDS2,\t\/\/ 370MHz \tinput wire hsync, \tinput wire vsync, \tinput wire active, \tinput wire [7:0]red, \tinput wire [7:0]green, \tinput wire [7:0]blue, \toutput wire TMDS_bh, \toutput wire TMDS_bl, \toutput wire TMDS_gh, \toutput wire TMDS_gl, \toutput wire TMDS_rh, \toutput wire TMDS_rl );  wire [9:0] TMDS_red, TMDS_green, TMDS_blue; TMDS_encoder encode_R(.clk(pixclk), .VD(red  ), .CD({vsync,hsync}), .VDE(active), .TMDS(TMDS_red)); TMDS_encoder encode_G(.clk(pixclk), .VD(green), .CD({vsync,hsync}), .VDE(active), .TMDS(TMDS_green)); TMDS_encoder encode_B(.clk(pixclk), .VD(blue ), .CD({vsync,hsync}), .VDE(active), .TMDS(TMDS_blue));  reg [2:0] TMDS_mod5=0;  \/\/ modulus 5 counter reg [4:0] TMDS_shift_bh=0, TMDS_shift_bl=0; reg [4:0] TMDS_shift_gh=0, TMDS_shift_gl=0; reg [4:0] TMDS_shift_rh=0, TMDS_shift_rl=0;  wire [4:0] TMDS_blue_l  = {TMDS_blue[9],TMDS_blue[7],TMDS_blue[5],TMDS_blue[3],TMDS_blue[1]}; wire [4:0] TMDS_blue_h  = {TMDS_blue[8],TMDS_blue[6],TMDS_blue[4],TMDS_blue[2],TMDS_blue[0]}; wire [4:0] TMDS_green_l = {TMDS_green[9],TMDS_green[7],TMDS_green[5],TMDS_green[3],TMDS_green[1]}; wire [4:0] TMDS_green_h = {TMDS_green[8],TMDS_green[6],TMDS_green[4],TMDS_green[2],TMDS_green[0]}; wire [4:0] TMDS_red_l   = {TMDS_red[9],TMDS_red[7],TMDS_red[5],TMDS_red[3],TMDS_red[1]}; wire [4:0] TMDS_red_h   = {TMDS_red[8],TMDS_red[6],TMDS_red[4],TMDS_red[2],TMDS_red[0]};  always @(posedge clk_TMDS2) begin \tTMDS_shift_bh &lt;= TMDS_mod5[2] ? TMDS_blue_h  : TMDS_shift_bh  [4:1]; \tTMDS_shift_bl &lt;= TMDS_mod5[2] ? TMDS_blue_l  : TMDS_shift_bl  [4:1]; \tTMDS_shift_gh &lt;= TMDS_mod5[2] ? TMDS_green_h : TMDS_shift_gh  [4:1]; \tTMDS_shift_gl &lt;= TMDS_mod5[2] ? TMDS_green_l : TMDS_shift_gl  [4:1]; \tTMDS_shift_rh &lt;= TMDS_mod5[2] ? TMDS_red_h   : TMDS_shift_rh  [4:1]; \tTMDS_shift_rl &lt;= TMDS_mod5[2] ? TMDS_red_l   : TMDS_shift_rl  [4:1]; \tTMDS_mod5 &lt;= (TMDS_mod5[2]) ? 3'd0 : TMDS_mod5+3'd1; end  assign TMDS_bh = TMDS_shift_bh[0]; assign TMDS_bl = TMDS_shift_bl[0]; assign TMDS_gh = TMDS_shift_gh[0]; assign TMDS_gl = TMDS_shift_gl[0]; assign TMDS_rh = TMDS_shift_rh[0]; assign TMDS_rl = TMDS_shift_rl[0];  endmodule  module TMDS_encoder( \tinput clk, \tinput [7:0] VD,\t\/\/ video data (red, green or blue) \tinput [1:0] CD,\t\/\/ control data \tinput VDE,  \t\/\/ video data enable, to choose between CD (when VDE=0) and VD (when VDE=1) \toutput reg [9:0] TMDS = 0 );  wire [3:0] Nb1s = VD[0] + VD[1] + VD[2] + VD[3] + VD[4] + VD[5] + VD[6] + VD[7]; wire XNOR = (Nb1s&gt;4'd4) || (Nb1s==4'd4 &amp;&amp; VD[0]==1'b0); wire [8:0] q_m = {~XNOR, q_m[6:0] ^ VD[7:1] ^ {7{XNOR}}, VD[0]};  reg [3:0] balance_acc = 0; wire [3:0] balance = q_m[0] + q_m[1] + q_m[2] + q_m[3] + q_m[4] + q_m[5] + q_m[6] + q_m[7] - 4'd4; wire balance_sign_eq = (balance[3] == balance_acc[3]); wire invert_q_m = (balance==0 || balance_acc==0) ? ~q_m[8] : balance_sign_eq; wire [3:0] balance_acc_inc = balance - ({q_m[8] ^ ~balance_sign_eq} &amp; ~(balance==0 || balance_acc==0)); wire [3:0] balance_acc_new = invert_q_m ? balance_acc-balance_acc_inc : balance_acc+balance_acc_inc; wire [9:0] TMDS_data = {invert_q_m, q_m[8], q_m[7:0] ^ {8{invert_q_m}}}; wire [9:0] TMDS_code = CD[1] ? (CD[0] ? 10'b1010101011 : 10'b0101010100) : (CD[0] ? 10'b0010101011 : 10'b1101010100);  always @(posedge clk) TMDS &lt;= VDE ? TMDS_data : TMDS_code; always @(posedge clk) balance_acc &lt;= VDE ? balance_acc_new : 4'h0;  endmodule <\/code><\/pre>\n<p>  \u041f\u043e\u0442\u043e\u043c \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u044b \u043f\u043e\u0434\u0430\u044e\u0442\u0441\u044f \u043d\u0430 DDIO \u0432\u044b\u0445\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0434\u0430\u0435\u0442 \u043e\u0434\u043d\u043e\u0431\u0438\u0442\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043f\u043e \u0444\u0440\u043e\u043d\u0442\u0443 \u0438 \u0441\u043f\u0430\u0434\u0443.<\/p>\n<p>  \u0421\u0430\u043c DDIO \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u043c Verilog \u043a\u043e\u0434\u043e\u043c:  <\/p>\n<pre><code class=\"vhdl\">module ddio( \tinput wire d0, \tinput wire d1, \tinput wire clk, \toutput wire out \t);  reg r_d0; reg r_d1; always @(posedge clk) begin \tr_d0 &lt;= d0; \tr_d1 &lt;= d1; end assign out = clk ? r_d0 : r_d1; endmodule<\/code><\/pre>\n<p>  \u041d\u043e \u0442\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u041d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u043b\u044c\u0442\u0435\u0440\u043e\u0432\u0441\u043a\u0443\u044e \u043c\u0435\u0433\u0430\u0444\u0443\u043d\u043a\u0446\u0438\u044e ALTDDIO_OUT, \u0447\u0442\u043e\u0431\u044b \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 DDIO \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b. \u0412 \u043c\u043e\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 ALTDDIO_OUT.<\/p>\n<p>  \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0441\u0435 \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u0443\u0434\u0440\u0435\u043d\u043e, \u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<br \/>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0435\u0441\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 Verilog HDL, \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/github.com\/marsohod4you\/m2rpi-dpi2hdmi-display\" rel=\"nofollow\">\u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c, \u043d\u0430 github<\/a>.<\/p>\n<p>  \u0421\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0434\u043b\u044f FPGA \u0437\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 EPCS \u0447\u0438\u043f, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 \u041c\u0430\u0440\u0441\u043e\u0445\u043e\u04342rpi. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u0440\u0438 \u043f\u043e\u0434\u0430\u0447\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u043d\u0430 \u043f\u043b\u0430\u0442\u0443 FPGA, \u041f\u041b\u0418\u0421 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u0437 \u0444\u043b\u044d\u0448 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0441\u0430\u043c\u043e\u0433\u043e Raspberry. <br \/>  \u042f \u0434\u0435\u043b\u0430\u044e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b \u043d\u0430 Raspberry PI OS (32 bit) based on Debian Buster, Version:August 2020,<br \/>  Release date:2020-08-20, Kernel version:5.4.<\/p>\n<p>  \u041d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0432\u0435 \u0432\u0435\u0449\u0438:  <\/p>\n<ul>\n<li>\u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b config.txt;<\/li>\n<li>\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e X \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0432\u0443\u043c\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430\u043c\u0438.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0444\u0430\u0439\u043b\u0430 \/boot\/config.txt \u043d\u0443\u0436\u043d\u043e:  <\/p>\n<ol>\n<li>\u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 i2c, i2s, spi;<\/li>\n<li>\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c DPI \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0432\u0435\u0440\u043b\u0435\u044f dtoverlay=dpi24;<\/li>\n<li>\u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e\u0440\u0435\u0436\u0438\u043c 1280&#215;720 60\u0413\u0446, 24 \u0431\u0438\u0442\u0430 \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u043d\u0430 DPI;<\/li>\n<li>\u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0440\u0435\u0439\u043c\u0431\u0443\u0444\u0444\u0435\u0440\u043e\u0432 2 (max_framebuffers=2, \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432\u0442\u043e\u0440\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \/dev\/fb1)<\/li>\n<\/ol>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u043e\u043b\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0444\u0430\u0439\u043b\u0430 config.txt \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a.<\/b>                         <\/p>\n<div class=\"spoiler_text\"><code># For more options and information see<br \/>  # http:\/\/rpf.io\/configtxt<br \/>  # Some settings may impact device functionality. See link above for details<\/p>\n<p>  # uncomment if you get no picture on HDMI for a default &quot;safe&quot; mode<br \/>  #hdmi_safe=1<\/p>\n<p>  # uncomment this if your display has a black border of unused pixels visible<br \/>  # and your display can output without overscan<br \/>  disable_overscan=1<\/p>\n<p>  # uncomment the following to adjust overscan. Use positive numbers if console<br \/>  # goes off screen, and negative if there is too much border<br \/>  #overscan_left=16<br \/>  #overscan_right=16<br \/>  #overscan_top=16<br \/>  #overscan_bottom=16<\/p>\n<p>  # uncomment to force a console size. By default it will be display's size minus<br \/>  # overscan.<br \/>  #framebuffer_width=1280<br \/>  #framebuffer_height=720<\/p>\n<p>  # uncomment if hdmi display is not detected and composite is being output<br \/>  hdmi_force_hotplug=1<\/p>\n<p>  # uncomment to force a specific HDMI mode (this will force VGA)<br \/>  #hdmi_group=1<br \/>  #hdmi_mode=1<\/p>\n<p>  # uncomment to force a HDMI mode rather than DVI. This can make audio work in<br \/>  # DMT (computer monitor) modes<br \/>  #hdmi_drive=2<\/p>\n<p>  # uncomment to increase signal to HDMI, if you have interference, blanking, or<br \/>  # no display<br \/>  #config_hdmi_boost=4<\/p>\n<p>  # uncomment for composite PAL<br \/>  #sdtv_mode=2<\/p>\n<p>  #uncomment to overclock the arm. 700 MHz is the default.<br \/>  #arm_freq=800<\/p>\n<p>  # Uncomment some or all of these to enable the optional hardware interfaces<br \/>  #dtparam=i2c_arm=on<br \/>  #dtparam=i2s=on<br \/>  #dtparam=spi=on<\/p>\n<p>  dtparam=i2c_arm=off<br \/>  dtparam=spi=off<br \/>  dtparam=i2s=off<\/p>\n<p>  dtoverlay=dpi24<br \/>  overscan_left=0<br \/>  overscan_right=0<br \/>  overscan_top=0<br \/>  overscan_bottom=0<br \/>  framebuffer_width=1280<br \/>  framebuffer_height=720<br \/>  display_default_lcd=0<br \/>  enable_dpi_lcd=1<br \/>  dpi_group=2<br \/>  dpi_mode=87<br \/>  #dpi_group=1<br \/>  #dpi_mode=4<br \/>  dpi_output_format=0x6f027<br \/>  dpi_timings=1280 1 110 40 220 720 1 5 5 20 0 0 0 60 0 74000000 3<\/p>\n<p>  # Uncomment this to enable infrared communication.<br \/>  #dtoverlay=gpio-ir,gpio_pin=17<br \/>  #dtoverlay=gpio-ir-tx,gpio_pin=18<\/p>\n<p>  # Additional overlays and parameters are documented \/boot\/overlays\/README<\/p>\n<p>  # Enable audio (loads snd_bcm2835)<br \/>  dtparam=audio=on<\/p>\n<p>  [pi4]<br \/>  # Enable DRM VC4 V3D driver on top of the dispmanx display stack<br \/>  #dtoverlay=vc4-fkms-v3d<br \/>  max_framebuffers=2<\/p>\n<p>  [all]<br \/>  #dtoverlay=vc4-fkms-v3d<br \/>  max_framebuffers=2<br \/>  <\/code>  <\/div>\n<\/p><\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e, \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0434\u043b\u044f X \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u0434\u0432\u0443\u0445 \u0444\u0440\u0435\u0439\u043c\u0431\u0443\u0444\u0444\u0435\u0440\u0430\u0445 \/dev\/fb0 \u0438 \/dev\/fb1  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041c\u043e\u0439 \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \/usr\/share\/x11\/xorg.conf.d\/60-dualscreen.conf \u0442\u0430\u043a\u043e\u0439<\/b>                         <\/p>\n<div class=\"spoiler_text\"><code>Section &quot;Device&quot;<br \/>   Identifier &quot;LCD&quot;<br \/>   Driver &quot;fbturbo&quot;<br \/>   Option &quot;fbdev&quot; &quot;\/dev\/fb0&quot;<br \/>   Option &quot;ShadowFB&quot; &quot;off&quot;<br \/>   Option &quot;SwapbuffersWait&quot; &quot;true&quot;<br \/>  EndSection<\/p>\n<p>  Section &quot;Device&quot;<br \/>   Identifier &quot;HDMI&quot;<br \/>   Driver &quot;fbturbo&quot;<br \/>   Option &quot;fbdev&quot; &quot;\/dev\/fb1&quot;<br \/>   Option &quot;ShadowFB&quot; &quot;off&quot;<br \/>   Option &quot;SwapbuffersWait&quot; &quot;true&quot;<br \/>  EndSection<\/p>\n<p>  Section &quot;Monitor&quot;<br \/>   Identifier &quot;LCD-monitor&quot;<br \/>   Option &quot;Primary&quot; &quot;true&quot;<br \/>  EndSection<\/p>\n<p>  Section &quot;Monitor&quot;<br \/>   Identifier &quot;HDMI-monitor&quot;<br \/>   Option &quot;RightOf&quot; &quot;LCD-monitor&quot;<br \/>  EndSection<\/p>\n<p>  Section &quot;Screen&quot;<br \/>   Identifier &quot;screen0&quot;<br \/>   Device &quot;LCD&quot;<br \/>   Monitor &quot;LCD-monitor&quot;<br \/>  EndSection<\/p>\n<p>  Section &quot;Screen&quot;<br \/>   Identifier &quot;screen1&quot;<br \/>   Device &quot;HDMI&quot; <br \/>   Monitor &quot;HDMI-monitor&quot;<br \/>  EndSection<\/p>\n<p>  Section &quot;ServerLayout&quot;<br \/>   Identifier &quot;default&quot;<br \/>   Option &quot;Xinerama&quot; &quot;on&quot;<br \/>   Option &quot;Clone&quot; &quot;off&quot;<br \/>   Screen 0 &quot;screen0&quot;<br \/>   Screen 1 &quot;screen1&quot; RightOf &quot;screen0&quot;<br \/>  EndSection<br \/>  <\/code>  <\/div>\n<\/p><\/div>\n<p>  \u041d\u0443 \u0438, \u0435\u0441\u043b\u0438 \u0435\u0449\u0435 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430, \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c Xinerama. \u0422\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0441\u0442\u043e\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043e \u043d\u0430 \u0434\u0432\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435 \u043d\u0430 \u0434\u0435\u043c\u043e \u0440\u043e\u043b\u0438\u043a\u0435.<br \/>  \u0412\u043e\u0442 \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u0438 \u0432\u0441\u0435. \u0422\u0435\u043f\u0435\u0440\u044c, \u0438 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u044b Raspberry Pi3 \u0441\u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u0432\u0443\u043c\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430\u043c\u0438.<\/p>\n<p>  \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u0441\u0445\u0435\u043c\u0443 \u043f\u043b\u0430\u0442\u044b \u041c\u0430\u0440\u0441\u043e\u0445\u043e\u04342rpi \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/marsohod.org\/howtostart\/m2rpi\" rel=\"nofollow\">\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c<\/a>.<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/524398\/\"> https:\/\/habr.com\/ru\/post\/524398\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\n<div class=\"oembed\"><iframe id=\"5f8fd6452cbf1a1445b352d0\" src=\"https:\/\/embedd.srv.habr.com\/iframe\/5f8fd6452cbf1a1445b352d0\"><\/iframe><\/div>\n<p>  \u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0438\u0434\u0435\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b: \u043f\u043b\u0430\u0442\u0430 Raspberry Pi3, \u043a \u043d\u0435\u0439, \u0447\u0435\u0440\u0435\u0437 \u0440\u0430\u0437\u044a\u0435\u043c GPIO, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0430 FPGA \u043f\u043b\u0430\u0442\u0430 \u041c\u0430\u0440\u0441\u043e\u0445\u043e\u04342rpi (Cyclone IV), \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d HDMI \u043c\u043e\u043d\u0438\u0442\u043e\u0440. \u0412\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u0447\u0435\u0440\u0435\u0437 \u0448\u0442\u0430\u0442\u043d\u044b\u0439 \u0440\u0430\u0437\u044a\u0435\u043c HDMI Raspberry Pi3. \u0412\u0441\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043a\u0430\u043a \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441 \u0434\u0432\u0443\u043c\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430\u043c\u0438.<br \/>  \u0414\u0430\u043b\u044c\u0448\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-311801","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/311801","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=311801"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/311801\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=311801"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=311801"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=311801"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}