Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[16f688][c] problem z uruchomieniem RS232

slyszu 06 Lis 2010 18:09 1016 3
  • #1 06 Lis 2010 18:09
    slyszu
    Poziom 9  

    Witam serdecznie!!

    Potrzebuję uruchomić RS232 pomiędzy PICem a PC, do PC nic nie dochodzi, nawet 'krzaki' :/

    Fragment kodu gdzie ustawiam RSa:

    Code:

    void init_comms(void) {
       TRISC = 0x30;   //ustawienie RC5, RC4    
       SPBRG = 25;   //ustawienie baud rate 9600, przy 4MHz
       BRG16 = 0;   //8-bit Baud Rate Generator
       BRGH  = 1;   //High speed
       SYNC  = 0;   //asynchroniczny tryb
       TXEN  = 1;   
       SPEN  = 1;   
       CREN  = 1;   
            RX9   = 0;   
       TX9   = 0;   
       RCIE  = 0;      
       TXIE  = 0;   //wyłączenie przerwania od tx
       PEIE  = 0;   //globalne wyłączenie przerwań
    }


    Bity konfiguracyjne zmieniam tylko przy kwarcu na Internal Rc No Clock, ponieważ korzystam z wewnętrznego 4MHz.
    Problem z błędnym połączeniem układu raczej wykluczam..
    Urzywam MPLAB i HI-TECH.

    Będę wdzięczny za wskazanie miejsca błędu lub zasegurowanie rozwiązania.

    Pozdrawiam

    0 3
  • #2 06 Lis 2010 20:36
    gregor7pl
    Poziom 14  

    Witam,

    Aby konkretnie doradzić i rozpoznać błąd to podałeś za mało danych. Na moje oko sprawdź:

    1) Czy dobrze podłączyłeś PICa z komputerem, RxD z TxD (na krzyż). Mnie to zawsze śmieszy, ale zły kabelek jest przyczyną 90% niedziałań transmisji.

    2) Pomiędzy 16F688 a komputerem masz układ MAX232? Ponownie, wiele osób pamięta o wszystkim poza banalnym faktem, ze komp pracuje przy poziomach napięć -12V i +12V a uKontroler z 0V i VCC (5V lub 3,3V).

    3) Napisz jakim programem stwierdzasz, ze nic nie dochodzi do kompa.

    0
  • #3 07 Lis 2010 01:13
    slyszu
    Poziom 9  

    ad. 1 tak jest dobrze połączone

    ad2. tak, jest max i tez jest dobrze połączony

    ad3. jako terminala urzywnam programu terminal v1.9, kabel usb->rs działa na 100%

    Pozdrawiam

    0
  • #4 07 Lis 2010 14:35
    gregor7pl
    Poziom 14  

    Ok,

    Jak możesz to wklej jeszcze fragment kodu, gdzie coś wysyłasz z procka po rs232.

    Ja bym najpierw zaczął od izolacji błędu, nie ma pewności ze błąd jest po stronie praca czy kompa. Trzeba sprawdzić czy proc nadaje cokolwiek. Jeśli masz dostęp do oscyloskopu to obejrzyj przebiegi na TxD proca, na jego odpowiedniej nóżce przed maxem. Jeśli nie masz oscyloskopu spróbuj coś zobaczyć multimetrem, (napięcie powinno w momencie nadawania się nieznacznie zmienić). Możesz tez podłączyć do linii LEDa ( w szeregu z rezystorem do masy lub zasilania), tak aby nie świeciła w momencie ciszy na linii. Ustawiłbym najwolniejszą transmisje i liczyć że LEDa zamruga.

    Z dalszych banalnych błędów to sprawdź czy w terminalu nie masz włączonej sprzętowej kontroli transmisji oraz czy odpowiedni port szeregowy (COM) wybrałeś. Płyta może mieć niewyprowadzony port na płycie.

    0