
Witam was,
Zbyt często nie publikuję swoich urządzeń, lecz ostatnio postanowiłem może pokazać kilka. (te których mnie nie wiążą jakieś umowy)
Dziś zacznę od naprawdę prostego i w sumie nie wiem czy komuś to się przyda bądź spodoba, ale dla mnie jest to obecnie przydatny dodatek.
Jest to adapter programatorów JTAG/SWD z możliwością regulacji napięcia wyjściowego zasilającego układ docelowy z wbudowanym translatorem napięć.
Daje mi to możliwość podłączania się pod układy zasilane napięciem w zakresie 1.2V do 5.2V bez potrzeby posiadania zewnętrznego zasilacza (do mocy około 5W).
Schemat nie jest zbyt skomplikowany:

Złącze Z3 (dolny lewy róg) to wejście z programatora (takie jak ST-LINK czy JLINK) zgodne z ARM Standard JTAG.
Uwaga odnośnie ST-LINK V2 (nie wiem jak inne wersje), pin 1 to pin referencyjny napięcia dla buforów wewnętrznych programatora czy sprawdzania napięcia na procesorze. W ST-LINK z jakiegoś powodu podczas inicjacji komunikacji jest ten pin ustawiony jako ADC-IN a następnie jako GPIO PUSH-PULL w stanie PULL-UP. Powoduje to pojawienie się napięcia zasilania programatora na linii wyjściowej zasilającej do mikrokontrolera który programujemy, z tego tez powodu umieściłem w szeregu z tym pinem rezystor 120k który niestety powoduje przekłamanie mierzonego napięcia.
Pozostałe złącza (Z1, Z2, Z4 i Z5) to złącza wyjściowe na różnego rodzaju złącza programowania w tym TC2030 czy TC2050.
Na pokładzie znajduje się także przetwornica typu buck MPS MPM3804 z zintegrowaną indukcyjnością (miałem mało miejsca).
Jej napięcie wyjściowe regulowane jest potencjometrem bądź ustawiane na stałe na 3.3V przy pomocy przełącznika.
Drugi przełącznik służy do odłączenia zasilania od programowanego elementu.
Zasilanie pobierane jest ze złącza programatora bądź dodatkowego złącza USB.
Umieściłem także interfejs UART aby nie bawić się w podłączanie dodatkowych urządzeń, dzięki temu jednym przewodem mam zapewnione JTAG/SWD oraz złącze debug po UART.
Jeśli chodzi o samą translację napięć na interfejsie komunikacyjnym, to robię to przy pomocy dwóch NEXPERIA LSF0108.
Układy te mogą pracować prawidłowo tylko w przypadku, gdy napięcie na Vref_B > Vref_A co było problemem gdy programator wystawia napięcie 3.3V.
Obecnie rozwiązałem ten problem po przez translację sygnałów z 3.3V na 5V (układ U6) a następnie obniżanie poziomów z 5V na niższe (U4) zgodne z napięciem zasilania układu programowanego.
Z tego powodu musiałem umieścić dodatkową pompę ładunkową ONSEMI CAT3200-5 z wbudowanym LDO aby mieć na wyjściu referencyjne 5V pomiędzy układami LSF0108.
Dodatkowo mogę go używać jako interfejs USB-UART z regulacją napięcia wyjściowego bez potrzeby stosowania programatora (dodatkowe złącze 4pin)
Całość przetestowana przy częstotliwości 4MHz pracuje prawidłowo z pełnym zakresie napięć.
Samo PCB zostało wykonane w jednej z Polskich firmy produkujących PCB, montażu dokonałem sam.
Niestety nie zrobiłem zdjęcia przed zamknięciem w obudowie dlatego wrzucam screen z 3D:

Płytkę zamknąłem w obudowie wykonanej przy pomocy druku 3D w technice SLA.




Miałem problemy z wgłębieniami na napisy, z racji dobrania złego kąta wydruku część z nich się zlała.
Napisy wypełniłem lakierem utwardzanym UV pod mikroskopem przy pomocy kawałka drucika.







Nie wyszła obudowa idealnie ale na moje potrzeby jest wystarczająca.



Gdyby były jakieś dodatkowe pytania, można pytać śmiało.
Cool? Ranking DIY