Тёмный

Jak zbudować uniwersalny programator pamięci? Prezentacja układu, schemat i kod 

Majsterkowanie i nie tylko
Подписаться 34 тыс.
Просмотров 18 тыс.
50% 1

Опубликовано:

 

14 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 109   
@adammatrakczy7182
@adammatrakczy7182 2 года назад
Czy może ktoś opracował już płytkę drukowaną do tego programatora ?
@__MINT_
@__MINT_ 2 года назад
Możesz być pierwszy :)
@ostrygracz
@ostrygracz Год назад
Skąd ty się gościu urwałeś, normalnie rozwalasz system. Uwielbiam. Pozdrawiam, szacuneczek. Podziwiam
@Karol-123
@Karol-123 7 месяцев назад
W miarę jak oglądam kolejne Twoje filmy, wraz ze spadkiem mojej samooceny co do własnych predystpozycji do zajmowania się elektroniką, rośnie mój podziw dla Ciebie 😀💪
@Heady1991
@Heady1991 Месяц назад
mnie nawet elektronika nie interesuje, a ogladam, bo to po prostu ciekawe i zawsze sie mozna dowiedziec nowych rzeczy.
@jaroslawhola5104
@jaroslawhola5104 Год назад
Wow !!! Super i powodzenia w dalszej działalności :)
@macroyal5080
@macroyal5080 2 года назад
No programator jest naprawdę super do czego jeszcze będziesz go używać super system gratulacje.
@__MINT_
@__MINT_ 2 года назад
Myślałem jeszcze nad dodaniem automatycznej detekcji układów, możliwością dodawania nowych układów z poziomu programatora oraz obsługą układów GAL ;) Tego możecie się spodziewać w wersji 2.0
@dominikkrauze6812
@dominikkrauze6812 2 года назад
No proszę Pana nie wiem co powiedzieć. Czapki z głów....👍👏. Dziwi mnie tylko że używasz gotowego stopera a nie zbudowanego przez siebie, który napewno byłby dokładniejszy 😉. Naprawde oglądam i podziwiam.Dzięki i pozdro.
@BartekEVH
@BartekEVH 2 года назад
Jesteś niemożliwy Gość! :)
@dariuszwereszczynski8061
@dariuszwereszczynski8061 2 года назад
Super sprawa 👍🏻👍👍🏽
@tomekr.7042
@tomekr.7042 2 года назад
Super sprawa budowanie własnych komputerów od zera. Można go wyspecjalizowac do konkretnych zastosowań bez zbędych elementów i kodu. Brakuje mi tylko w Twoich projektach oszacowania zużycia energii elektrycznej bo akurat dla mnie jest to ważne.
@__MINT_
@__MINT_ 2 года назад
Easy Prog i komputer na Z80 pobierają kilkadziesiąt mA. Pluskwa pobiera 10mA, a przejściówka na pamięć flash zaledwie kilka mA.
@tomekr.7042
@tomekr.7042 2 года назад
@@__MINT_ ja zabieram się za budowanie małego domku samowystarczajacego energetycznie oparego na fotowoltaice. Dlatego tak ważne jest rozważne dysponowanie energią przy niewielkim magazynie energii.
@sliwa4204
@sliwa4204 2 года назад
Wow ! Znasz się na tym !
@aniaisk4963
@aniaisk4963 2 года назад
Jesteś WIELKI szacun
@adamelektronika5583
@adamelektronika5583 Год назад
Fajnie ci wyszedł ten programatorek
@mariuszkajstura6635
@mariuszkajstura6635 Год назад
Cały czas myślałem, że to ja jestem wariatem. :D
@marekwiewiora4074
@marekwiewiora4074 2 года назад
Podziwiam, ciągle mnie dziwi dlaczego tacy ludzie jak Ty mają tak mało ślubów.
@grzeniu9972
@grzeniu9972 2 года назад
Może sa monogamiczni :)
@inspektorelektron
@inspektorelektron 2 года назад
Hej, mega uznanie za ciekawe projekty i ciekawe pomysły. Odzywam się z pewnym opóźnieniem po obejrzeniu filmu. Poza ogólną koncepcją działania oczywiście też mnie zainteresował kod, tak sobie szukam i analizuję różne rozwiązania programowe. Proszę potraktować to jako konstruktywną krytykę, może drobne podpowiedzi przydadzą się do poprawienia (niezawodności) działania kodu. Przykładowy kompilator, chociażby ten z Arduino (ale uwagi ogólnie dotyczą się składni języka C) wskazał kilka problemów: W liniach 1536, 1759, 1981 porównywana jest liczba ze znakiem z liczbą bez znaku (int32_t z uint32_t). Dobrze by było jawnie zrzutować którąś ze zmiennych na typ tej drugiej zmiennej ale myślę, że po prostu zmienna i powinna być bez znaku bo w pamięciach nie ma ujemnych ilości bajtów :). W pewnym zakresie liczb to będzie działać nawet poprawnie. Znam jednak pewną swoją sytuację bawiąc się czujnikiem INA219 gdzie to w starszej wersji biblioteki zrobił ktoś podobny błąd związany z definicją zmiennej i potem na wyświetlaczu po przekroczeniu pewnej wartości napięcia pojawiały się liczby ujemne ... W linii 1981 zmienna jest nazwana zakazaną nazwą shift - ta nazwa jest zarezerwowana w języku C dla operatora przesunięcia. W linii 1737, 1841 chodzi o hierarchię ważności operatorów. W zapisie: if(percent != percentBef && i >= 0) na końcu będzie wykowywana relacja porównania z zerem więc wynikiem zawsze będzie 1 (TRUE). Podejrzewam, że operator logiczny && powinien być wykonywany na końcu więc wyrażenia po jego prawej i lewej stronie powinny być umieszczone w dodatkowych nawiasach. Kompilatorowi coś się jeszcze nie podoba funkcja String info(byte what), być może chodzi o jakiś zaginiony a może nadmiarowy nawias } ale tu się już nie wgłębiałem bo z powodu innych błędów kompilacja nie przeszła :).
@__MINT_
@__MINT_ 2 года назад
Dzięki za porady, w pętli iterator celowo jest typem int32_t, bo wartość iteratora może być zmieniona przez kod w pętli, i może zdarzyć się tak, że będzie dekrementowany przy wartości 0. Gdyby zmienna była typem bez znaku, jej wartość przeskoczyłaby do 4294967295, niby pod koniec iteracji z powrotem wróci do 0, ale wolałem, żeby wartość mogła wynieść -1. W zapisie binarnym te liczby wyglądają identycznie, więc spokojnie można użyć uint32_t. Co do hierarhii operatorów, to kod działał prawidłowo, więc kompilator chyba domyślił się, w jakiej kolejności sprawdzać warunki. Z tego co widzę Arduino IDE ukrywa wiele błędów lub ostrzeżeń, bo kompilacja przebiega bezbłędnie. Z jednej strony to dobrze, a z drugiej źle, bo nie można doszlifowywać swoich umiejętności i wiedzy. Wczoraj np. dowiedziałem się, że przy zapisie "zmienna char[x] = "Napis" " w miejsce x trzeba wstawić 6, a nie 5 (lub nic nie wstawiać), bo string jest zakończony dodatkowym, zerowym bajtem. Arduino IDE przez kilka miesięcy ukrywało tą informację, i nie dawało błędu przy zapisie "zmienna char[5] = "Napis"
@inspektorelektron
@inspektorelektron 2 года назад
@@__MINT_ Z tymi int32_t jeśli działa poprawnie to dobrze. Może jednak nie trafiłeś na przypadek, że liczba po lewej stronie porównania była ujemna. Gdyby tak się stało to traktując ją jak liczbę bez znaku okazało by się, że np -1 jest większe od 1000 i warunek byłby inaczej potraktowany. Ale to może też zależy od kompilatora. Tak, z tablicami char trzeba pamiętać o tym końcowym zerze :) Podobnie trzeba to mieć na uwadze jak kopiujesz łańcuchy znaków z pamięci programu do tymczasowego bufora w RAM. też trzeba zarezerwować jedną komórkę więcej bo inaczej coś może się wykrzaczyć. O widzisz, faktycznie wybierając tradycyjną platformę UNO bez zbędnych bajerów kompilacja przechodzi, chociaż ostrzeżenia o których wspomniałem są generowane. Ja raczej częściej korzystam z platformy MiniCore z optymalizacją LTO i tam już to nie przechodzi.
@mariuszkajstura6635
@mariuszkajstura6635 Год назад
@@inspektorelektron Właśnie z tego powodu jakoś nie jestem przekonany do korzystania z Arduino i pozostaje jak ten mamut przy Atmel studiu, nagminnie korzystając z dobrodziejstw debugera. :) A tak przy okazji można zadeklarować uint32_t, a do wykrywania wartości progowych stosować przykładowo if(uint32_t > stała).
@mariuszkajstura6635
@mariuszkajstura6635 Год назад
@@__MINT_ Tak się zastanawiam nad tymi pętlami i iteracją. w zmiennej 32 bitowej 31 bitów można wykorzystać jako przestrzeń liczbową do adresowania pamięci, a jeden bit jako informację do wyjścia z pętli, przykładowo zmienna = granica; Do{ ... kod ... ; zmienna--;}While(test_asm); test_asm jako wstawka asemblerowa testująca jedynie najstarszy bit testowanej zmiennej na którym de-facto opiera się cała weryfikacja. To daje że każde testowanie zmiennej zajmuje o wiele mniej czasu niż tradycyjne metody. Minimalizacja czasu testowania zmiennej w rezultacie końcowym daje spore oszczędności w czasie wykonywania pętli, bo jest mnożone przez ilość iteracji pętli. Ps. Trochę "negocjacji" z AVR'ami dotyczących "podzielności uwagi" przeszedłem, staram się tak pisać programy by nie blokować wydajności rdzenia na pętle opóźniające, czas marnowany w takich pętlach można wykorzystywać do innych działań rdzenia. ;) Pozdrawiam
@__MINT_
@__MINT_ Год назад
@@mariuszkajstura6635 Można tak, ale ma to sens tylko wtedy, gdy w pętli praktycznie nic nie ma. Inaczej ilość taktów poświęcanych na sprawdzanie zmiennej to kropla w morzu, samo sprawdzanie da radę zrobić bez ASM, korzystając z tego, że zmienna jest przechowywana na czterech bajtach, za pomocą pointera wystarczy odwoływać się do najwyższego bajtu i sprawdzać, czy ma ustawiony najwyższy bit
@MsBest59
@MsBest59 2 года назад
Jesteś Rewelacyjny Logiczny Rozwojowy , obyś NIE DAŁ się kupić KORPORACJOM , Aby Ci PARY nie zabrakło. Pozdro.
@IrysHardstyler
@IrysHardstyler 2 года назад
Widziałem na elektrodzie czy innym elvikom, że ktoś utworzył tani programator do kości 24/25 3.3v. Może utworzysz swój pewnego dnia :D I wprowadzisz do sprzedaży :D
@ZbygniewNajmrodzki
@ZbygniewNajmrodzki Год назад
ALE MEGA
@rafasobek9766
@rafasobek9766 2 года назад
Dobra robota
@emoutraspalavras-marloncou4459
@emoutraspalavras-marloncou4459 2 года назад
Witam, gratuluję całego projetku. Za głupie pytanie, przepraszam, ale można 8051 za jego pomocą programować też? Chodzi mi o starszą wersję AT89C2051, a nie AT89S2051.
@__MINT_
@__MINT_ 2 года назад
Jak napiszesz odpowiedni soft, to myślę że tak, hardware programatora na to pozwala
@marcint4521
@marcint4521 2 года назад
Kom dla zasięgu 😉
@szaman6204
@szaman6204 2 года назад
Urządzenie jak z przed wojny :)
@Kamil-in7xq
@Kamil-in7xq 2 года назад
Szacun
@Front242c
@Front242c 2 года назад
wow. łebski chłop
@jakubbarciok
@jakubbarciok 2 года назад
Szacun, takie pytanie gdzie się tego wszystkiego nauczyłeś?
@__MINT_
@__MINT_ 2 года назад
Jestem samoukiem, elektroniką zajmuję się od kilku lat
@rgblu3176
@rgblu3176 Год назад
Ja bym dorzucił port pod taśmę z np. CH341 i dał tą pamięć Flash prawie na stałe i wtedy ta pamięć robiła by za bufor miedzy kompem, a programatorem, lub przerzucać dane bezpośrednio z kompa z CH341 do tego programatora bez bufora.
@__MINT_
@__MINT_ Год назад
CH341 był na płytce fabrycznie, wystarczy dopisać obsługę i program przeglądarkowy, miejsca w pamięci uC jest dosyć
@rgblu3176
@rgblu3176 Год назад
CH341 był na płytce? Albo czegoś nie łapie albo chodzi ci o ch340 w arduino xD
@__MINT_
@__MINT_ Год назад
No ten w Arduino, po co inny? Bufora też nie potrzeba, dane mogą być zapisywane od razu, ewentualnie w małym buforze na 256B (pamięci zapisywane stronami mają określone maksymalne czasy pomiędzy zapisem kolejnych bajtów)
@rgblu3176
@rgblu3176 Год назад
@@__MINT_ Nie oto mi chodziło >.< Ch341 jest konwerterem do różnych magistral i najczęściej używany jest jako programator pamięci szeregowych. Zamysł miałem taki by bez modyfikacji kodu wgrywać kod na tą pamięć szeregową, a potem z niej w równoległą 0:) Ps. w Arduino używany jest chip ch340, mógłby być ch341, ale to overkill.
@__MINT_
@__MINT_ Год назад
Aha, to nawet nie wiedziałem że tak można
@lisulisu5860
@lisulisu5860 2 года назад
Witam mam pytanie dotyczące świetlówki uv jak masz ją podłączoną? Podrzuć schemacik. Czemu nie zastosowałeś modułu wyświetlacza od noki lub lcd ST7735 jest on kolorowy, wszystko w menu było by bardziej czytelne, więcej można by tekstu na wyświetlaczu upchnąć zrobić fajne menu. I dla czego pamięć? nie prościej zastosować kartę SD łatwiej dane można by przenosić mieć kilkanaście wsadów do różnych pamięci Pomyśl nad modyfikacją projektu, projektem płytki nie jedna osoba wtedy by chciała kupić zestawik, a ty miał byś dodatkowy dochód na nowe projekty
@__MINT_
@__MINT_ 2 года назад
Świetlówka jest podłączona do statecznika wyjętego z tzw. żarówki energooszczędnej. W internecie jest pełno schematów takich układów
@eR-MIK
@eR-MIK Год назад
Kolorowy wyświetlacz ma zazwyczaj kolor 160bit, nieliczne 8-bit. Monochromatyczny 1-bit, alfanumeryczny jakieś 1/256 bit. Sam policz ile RAM trzeba mieć w uC aby zbuforować dane! ŻADEN AVR nie da rady! trzeba sięgnąć po ARM, którego większość "pseudo elektroników" sie boi, bo ja the bilami! Na ARM program pisze się łatwiej i szybciej niz na AVR ponadto, ARM są tańsze od porównywalnych AVR. POminę milczeniem, ze są ARM, które nie mają odpowiednika w przestarzałych AVR!
@lisulisu5860
@lisulisu5860 Год назад
@@eR-MIK A więc można użyć wyświetlacza od noki 3310 lub oled oba są monochromatyczne i mam schematy przenośnych programatorów z użyciem ich. Są to programatory do programowania avr. Po za tym oledy są i2c i potrzebne są im dwie linie adresowe. Można by też użyć gotowych modułów stm32f103c8t6
@__MINT_
@__MINT_ Год назад
Ale w czym masz problem? Wyświetlacz 16x2 w zupełności wystarcza, jak będziesz budował własny programator, dasz wyświetlacz jaki chcesz, ja wybrałem taki, bo taki mi odpowiada
@lisulisu5860
@lisulisu5860 Год назад
Nie mam problemu chciałem po prostu żeby wszystko bardziej czytelne i na lcd było więcej opcji dostępne
@piotrogrodnik9549
@piotrogrodnik9549 Год назад
Witam mógłbym Pana zapytać jaki programator odczytalby i zapisał pamięć 27SF256 lub 27SF512 ?
@__MINT_
@__MINT_ Год назад
Easy Prog sobie z nią poradzi, a z gotowców nada się TL866
@Waldo_Ilowiecki
@Waldo_Ilowiecki 2 года назад
Geniusz.
@Marek_Bogdanowicz
@Marek_Bogdanowicz 2 года назад
W komputerze na Z80 mógłbyś sporo uprościć w układach zewnętrznych stosując układy z serii GAL
@__MINT_
@__MINT_ 2 года назад
Gdybym tylko miał czym je zaprogramować...
@Marek_Bogdanowicz
@Marek_Bogdanowicz 2 года назад
@@__MINT_ do epromów też nie miałeś programatora... do niedawna, więc ;)? Pozdrawiam!!!
@__MINT_
@__MINT_ 2 года назад
Mogę dodać obsługę GALi do Easy Proga, tylko największą zagadką jest to, w jaki sposób się je programuje. Część informacji już mam, ale są niekompletne, czyli pozostaje metoda prób i błędów
@Marek_Bogdanowicz
@Marek_Bogdanowicz 2 года назад
@@__MINT_ na kanale @Elektron koleszka fajnie je rozpracował, można zerknąć.
@__MINT_
@__MINT_ 2 года назад
Regularnie oglądam kanał Adama, ale nie wytłumaczył dokładnie, jak je zaprogramować, użył gotowego programatora i softu
@Cyklonus
@Cyklonus 2 года назад
👍
@JohnKofee
@JohnKofee 2 года назад
Nie do końca rozumiem czemu nie ma połączenia z PC choćby po UART/USB uzywając FTDI/CP/CH340?
@__MINT_
@__MINT_ 2 года назад
Chciałem, żeby to programator wszystkim zarządzał, a nie komputer programatorem. Jakbym dodał połączenie przez USB, to byłby konflikt dwóch interfejsów, programu do obsługi Easy Proga oraz samego programatora. W kodzie musiałbym na każdym kroku decydować, co w danym momencie ma priorytet, USB czy przyciski programatora, żeby nie doszło do sytuacji typu próba wgrania wsadu bez wybrania pamięci z listy. Takich sytuacji możliwych by było pewnie z kilkadziesiąt, i każdą z nich musiałbym przewidzieć, bo jak coś robię, to musi być idiotoodporne. To zbędne komplikowanie kodu, a bez tego mam 15KB wolnego miejsca na dodatki typu automatyczna detekcja układu. Jedyne co mogę dodać, jeśli chodzi o USB, to możliwość zapisu i odczytu flasha SPI.
@eR-MIK
@eR-MIK Год назад
Mostki USB-UART to NIEPOROZUMIENIE! Lepsze sa USB-I2C czy USB-SPI.
@piotrzienkiewicz7567
@piotrzienkiewicz7567 Год назад
Czy aby nie ma pomyłki na schemacie programatora w miejscu tranzystora Q3? Nijak nie wychodzi mi, żeby tak podłączony i taki tranzystor mógł działać. Co innego, gdyby to był tranzystor npn.
@__MINT_
@__MINT_ Год назад
Faktycznie, wydaje mi się że w tamtym miejscu jest npn, tylko nie mam jak tego sprawdzić
@piotrzienkiewicz7567
@piotrzienkiewicz7567 Год назад
@@__MINT_ To widać nawet "na chłopski rozum", bo przecież prąd przez tranzystor bipolarny płynie zgodnie z kierunkiem grota w symbolu tranzystora. Inaczej napięcie programowania Vpp-source brałoby się chyba z eteru. Tak przy okazji mam kilka sztuk pamięci typu PROM TM622 (vintage 40-letni), ale nigdzie nie mogę znaleźć algorytmu ich programowania. Może przy okazji kontaktu ze starymi EPROMami natknął się Pan na coś takiego. Jest to odpowiednik Intelowskiego układu 3622.
@IrysHardstyler
@IrysHardstyler 2 года назад
EZP2019 jest lepszy niż CH341?
@__MINT_
@__MINT_ 2 года назад
Nie wiem, mam tylko EZP
@marekkowalski6767
@marekkowalski6767 2 года назад
No ambicja to tu jest,ale to hm w 70-tych latach było by co podziwiać 🙈 . Póki co nijak się to ma do 2022 r . Nie mówiąc zupełnie o innych parametrach . Wolę laptula (USB ).. Jednak upartość i wiedza+zdolności tu akurat niezna granic.Za 20 lat Nobel gwarantowany 🙈 - pzdr.
@jaca7591
@jaca7591 2 года назад
Mam do programowania PIC18F26K40. Jaki programatot to ogarnie?
@__MINT_
@__MINT_ 2 года назад
Np. TL866, powinien dać sobie radę
@jaca7591
@jaca7591 2 года назад
@@__MINT_ Zamówione około 20 maja powinien do mnie dotrzeć z 37 adapterami.
@__MINT_
@__MINT_ 2 года назад
Grubo :)
@JK-dg3wu
@JK-dg3wu 2 года назад
@@jaca7591 ile bedzie kosztował ten zamówiony programator, jakiś link można?
@JK-dg3wu
@JK-dg3wu 2 года назад
@@jaca7591 Dzięki.
@Sp91Mr
@Sp91Mr 2 года назад
Witam,jak można się z panem skontaktować??
@__MINT_
@__MINT_ 2 года назад
"Kontakt do mnie" w zakładce informacje
@Sp91Mr
@Sp91Mr 2 года назад
@@__MINT_ właśnie doczytałem że chyba jednak nie mam na co liczyć 😑 a chce podłączyć pamięć eeprom 93 pod lpt i wgrać bin. Ale cóż trudno, pozdrawiam
@odamkowypc6401
@odamkowypc6401 2 года назад
gdzie jak ty tego wszystkiego się nauaczyłeś ?
@__MINT_
@__MINT_ 2 года назад
Jestem samoukiem. Wiedzę czerpię głównie z internetu, uczę się na błędach
@odamkowypc6401
@odamkowypc6401 2 года назад
@@__MINT_ szacunek dla cb, dla mnie to jakaś magia co ty wyczyniasz z jakich okolic jesteś ?
@__MINT_
@__MINT_ 2 года назад
Z Wawy
@odamkowypc6401
@odamkowypc6401 2 года назад
@@__MINT_ chciał byś może jakichś korepetycji udzielić ? bo jestem mechanikiem samochodowym i może byś jakiejś wiedzy udzielił odnośnie sterowników samochodowych ?
@__MINT_
@__MINT_ 2 года назад
Korepetycje to ten kanał, trening czyni mistrza. Sterownikami samochodowymi się nie zajmowałem
@sylweksliwka7986
@sylweksliwka7986 2 года назад
No to ja się urywam robi się za poważnie dla mnie scalaki i pamięci to nie moja bajka pozdrawiam
@gibon139
@gibon139 2 года назад
Wepnij podstawkę w podstawkę
@__MINT_
@__MINT_ 2 года назад
Nie da się. Podstawka zif jest za długa, i zahacza o slot na pamięć flash
@gibon139
@gibon139 2 года назад
@@__MINT_ no to może 2cm przewody zakończone męskim goldpinem dolutować do podstawki, spiąć razem później to nie problem. Tylko przydała by się "mała dobódówka obudowy" z wklejonym zif
@__MINT_
@__MINT_ 2 года назад
Ta budżetowa podstawka po "modyfikacji" wygląda na trwałą, nie ma co kombinować z dolutowywaniem goldpinów i jakimiś dobudówkami, bo z programatora zrobi się dziadostwo
@lukasz19884
@lukasz19884 2 года назад
Elektronika musi cię kosztować sporo czasu i pieniędzy
@__MINT_
@__MINT_ 2 года назад
Czasu tak, ale pieniędzy niekoniecznie. Roczne wydatki to raptem kilkaset zł, nie więcej jak 500. Z samego elektrozłomu wyciągam części warte więcej
@pawedomadalski5379
@pawedomadalski5379 2 года назад
Tobie sie nudzi,taki wydatek:)Takie grosze u nas gram kokainy kosztuje 100euro
@krism3151
@krism3151 2 года назад
👍
Далее
Komunikacja po I²C, odczyt i zapis pamięci EEPROM
25:22
PUBG Mobile СТАЛ ПЛАТНЫМ! 😳
00:31
Просмотров 108 тыс.
MERA-400 - zagadka prędkości
42:28
Просмотров 14 тыс.
Komunikacja po SPI, odczyt i zapis różnych pamięci
26:25
OSZUKANY na AliExpress! Pierun rozwalił TV :(
53:18
Просмотров 104 тыс.
Dlaczego 230V? [RS Elektronika] #111
16:05
Просмотров 864 тыс.
Radio bez prądu [TOWARY MODNE 106]
22:04
Просмотров 177 тыс.
POTĘŻNA karta graficzna z kasy fiskalnej
17:54
Просмотров 32 тыс.