Witam wszystkich.
Mam dwa proste układy master i slave. Jeden nadaje drugi odbiera. Oba układy to ATmega8 + MAX485. Jedna strona MAX485 zaterminaowana 120R a druga poza 120R podciągnięta do masy i Vcc (linie A i B) opornikami 560R. Oba układy spięte z sobą skrętką długości 10cm.
Wszystko jakby zgodnie z opisami.
Kod nadajnika:
Kod odbiornika :
I teraz tak :
Jak podłączę oba układy bezpośrednio przez UART Rx-Tx to wszystko działa poprawnie. Na LCD odbiornika widzę zmieniające się literki
Jak podłączę przez RS485 to układ działa przez chwilę, następnie przestaje wyświetlać cokolwiek po czym znowu wyświetla litery. Tak jakby "coś" co jakiś czas blokowało transmisję.
Co jest nie tak ??
Mam dwa proste układy master i slave. Jeden nadaje drugi odbiera. Oba układy to ATmega8 + MAX485. Jedna strona MAX485 zaterminaowana 120R a druga poza 120R podciągnięta do masy i Vcc (linie A i B) opornikami 560R. Oba układy spięte z sobą skrętką długości 10cm.
Wszystko jakby zgodnie z opisami.
Kod nadajnika:
Code:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 19200
' LCD ----
Config Lcd = 16 * 2
Cursor Off
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Cls
Re_de Alias Portd.2
Set Re_de
Dim A As String * 1
Dim Stan1 As Bit
Do
Toggle Stan1
If Stan1 = 0 Then A = "A" Else A = "B"
Print A ;
Cls
Lcd "Wyslano " ; A
Wait 2
Loop
End
Kod odbiornika :
Code:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 19200
' LCD ----
Config Lcd = 16 * 2
Cursor Off
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Cls
Config Serialin = Buffered , Size = 1
Enable Interrupts
Re_de Alias Portd.2
Reset Re_de
Dim A As Byte
Do
If Ischarwaiting() = 1 Then
A = Inkey()
If A <> 13 And A <> 10 Then
Lcd Chr(a)
Waitms 500
Cls
End If
End If
Loop
End
I teraz tak :
Jak podłączę oba układy bezpośrednio przez UART Rx-Tx to wszystko działa poprawnie. Na LCD odbiornika widzę zmieniające się literki
Jak podłączę przez RS485 to układ działa przez chwilę, następnie przestaje wyświetlać cokolwiek po czym znowu wyświetla litery. Tak jakby "coś" co jakiś czas blokowało transmisję.
Co jest nie tak ??