User Tools

Site Tools


jdmprog

Programator MCU PIC z portu COM (c) JDM

Informacje z ds pic16C84:

  • RB6 - zegar dla programowania
  • RB7 - dane dla programowania
  • MCLR - wejście w tryb programowania

R1, R2 i Q2 służą do wysyłania danych w stronę do MCU i od MCU do komputera. CTS musi być wejściem o wysokiej impedancji. GND jest od komputera jest na poziomie +5 V względem masy MCU (Vss), czyli to jest zasilanie MCU, DTR może zmieniać się od -10 do +10 V to jest sterowane z komputera.

Transfer danych z MCU do komputera

Schemat poniżej pokazuje jak tranzystor Q2 jest wykorzystany do przesyłania danych z MCU do komputera. Linia DTR musi być w stanie wysokim.

dane z MCU do komputera

  • Przy stanie wysokim na wejściu, tranzystor jest wyłączony (Ube = 0 V), czyli napięcie na wyjściu jest napięciem z DTR przez podciągający rezystor.
  • Przy niskim stanie wejścia, tranzystor jest włączony (Ube = 0.6 V), i końcówka rezystora R2 będąca przy Q2 jest podłączona do wejścia, a na panuje nap. 0 V.

Zmieniający się stan 0 / 5 V na wejściu odpowiada 0 / DTR + 5 V na wyjściu. Biorąc za punkt odniesienia masę z RS232, wyjście zmienia się od -5 do DTR.

Transfer danych do MCU

Przy transferze danych do MCU, DTR pełni role wejścia, a emiter Q2 wyjścia.

dane z komputera do MCU

  • Kiedy DTR jest w stanie wysokim, to Q2 pracuje jako wtórnik emiterowy i na emiterze jest nap. 4.3 V, co MCU odczyta jako stan wysoki.
  • Kiedy DTR jest w stanie niskim (-10 V czyli -5 V względem masy MCU) złącze baza-kolektor jest spolaryzowane w kierunku przewodzenia. Jeżeli oba złącza są spolaryzowane w kierunku przewodzenia, to tranzystor jest w stanie nasycenia i napięcie Uce można pominąć, czyli Uwe = Ue = Uc. Napięcie na kolektorze można obliczyć patrząc na schemat poniżej i wyniesie to około -3.7 V.

Wejście w tryb programowania

TxD odpowiada za podciągnięcie MCLR do napięcia Vhi. Kolektor Q1 ma potencjał 8.2 + 5.1 = 13.3 V względem Vss.

Stan niski na TxD ma wartość -0.6 V względem Vss, dzięki zabezpieczającej diodzie D5. Dioda D7 zabezpiecza Q1 przed za dużym odwrotnym napięciem baza-emiter (5 V). W stanie niskim na TxD oba złącza tranzystora są spolaryzowane zaporowo czyli jest on wyłączony.

Stan wysoki na TxD, czyli około 15 V względem Vss, polaryzuje złącze baza-kolektor w kierunku przewodzenia i włącza tranzystor, który pracuje chyba w odwrotnym rejonie aktywnym. Po co to tak jest zrobione do końca nie rozumiem, być może tranzystor pracujący w ten sposób ma większy zakres napięcia baza-kolektor przy jakim będzie przewodził?

Przy właczeniu stanu wysokiego kondensator C2 ładuje się do wartości Vdd / GND + 8.2.

Zegar i napięcie Vss

RTS odpowiada za przebieg zegarowy dla MCU, czyli musi się zmieniać ze stanu wysokiego na niski. W stanie wysokim, przewodzi dioda D4 i napięcie RTS wynosi Vdd / GND + 0.6 V.

Kiedy RTS jest w stanie niskim, to Vdd / GND ma większy potenciał i prąd płynie przez szeregowe połączenie diod D2 i D3. Dioda D2 ma spadek 5.1 V i o taką wartość napięcia Vss znajduje się poniżej Vdd / GND. Wartość napięcia RST wynosić będzie -0.6 V względem Vss. Kondensator C3 jest równolegle połączony z diodą D2 i ładuje się do napięcia diody D2, a służy jako stabilizacja Vss.

jdmprog.txt · Last modified: 2015/09/06 10:09 by dominik