logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

AT90PWM3B i USART : konflikt z programowaniem przez SPI ?

sundayman 19 Lip 2010 21:47 1091 3
  • #1 8309713
    sundayman
    Poziom 26  
    Tym razem problem, czy pytanie jest następujące :

    Ten procesor ma wejście RXD na pinie 16 - czyli tym samym, na którym mamy SCK do programatora. No to - jak to powinno być podłączone - bo przecież, jeśli dajmy na to będę chciał dać jakiegoś MAXa, to jak podłączę się pod to RXD, to pewnie nie będzie mi działać prawidłowo SCK...

    A chciałbym dodać sobie RS, co prawda przydałby mi się do debugowania, i nie jest absolutnie niezbędny, no aleeee....
  • #2 8310071
    rpal
    Poziom 27  
    np. tak Link z użyciem multipleksera analogowego MC14053
  • #3 8310449
    sundayman
    Poziom 26  
    no tak, no to ja to rozwiązałem z multiplexerem ręcznym w postaci przełącznika, bo już nie mogę pozmieniać PCB, ale ok - rozumiem że inaczej nie da rady...

    A teraz tak, próbuję się skomunikować , i coś mi nie działa...

    próbuję normalnie konfigurować coma (tak mi działało gdzie indziej) :

    [ code ]

    Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8
    Echo Off
    [ /code ]

    i sobie wysyłam testowo coś przez "print"

    Ale - kiedy odbieram to w terminalu w PC , to zamiast wysyłanego tekstu dostaję jakąś "kaszankę". Przy czym powiedzmy robię [ Print "test RS232" ] a w terminalu
    dostaję "QStôÛem™›åë" :)

    Oczywiście ustawienia RS w kompie są ok...
    Jako interfejs od strony AVR dałem SP232ACP, podłączony zgodnie z datasheetem...

    W programie jest deklaracja [ $crystal = 8000000 ], czyli prędkość powinna być też ok... Ale może, podobnie jak to było z timer0, config bascomowy nie działa jednak poprawnie ? Chociaż, jak widzę, kiedy w programie w "[ config com1... ] zmieniam szybkość, to ta szybkość się zmienia rzeczywiście (tyle widzę na oscyloskopie...)

    No i tak, próbuję to skonfigurować ręcznie , czyli :

    Ubrr = 51
    Ucsrb = &B00001000
    Ucsrc = &B00000110

    znaczy chcę 9600 bodów, parity none, stop = 1, data = 8, synchrone = 0

    i kurczę to samo...

    coś pomyliłem w rejestrach ?
  • #4 8315573
    sundayman
    Poziom 26  
    No to sprawa załatwiona - winny krzaczków był konwerter TTL<>RS2232, który zrobiłem na tym SP232ACP - pomyłkowo podłączyłem linie TXD, RXD.

    Po poprawieniu działa OK.

    Przy czy - okazuje się, że ten układ "multipleksujący" sygnałem z RESET nie jest niezbędny, jeśli korzystamy tylko z TXD mikrokontrolera (czyli np. tak jak ja - do debugowania programu). Wtedy SP232ACP może sobie być podpięty "na stałe", i nie przeszkadza w programowaniu (tyle, że w czasie programowania RS w PC odbiera jakieś śmieci).

    Temat zamykam i pozdrawiam.
REKLAMA