 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
matic91 Neznanec

Pridružen-a: Tor 05 Jan 2010 17:43 Prispevkov: 4 Aktiv.: 0.02 Kraj: Velenje
|
Objavljeno: Pon Sep 13, 2010 11:39 am Naslov sporočila: RS485/USB komunikacija |
|
|
Lep pozdrav!
Imam Atmega16, ki preko UARTa komunicira z računalnikom. Povezano imam UART -> MAX485 -> USB/RS485 pretvornik od FTDI. S tem pretvornikom ustvarim virtualni serijski port.
Koda: |
$regfile = "m16def.dat"
$crystal = 4000000
$baud = 9600
Config Print0 = Portd.6 , Mode = Set
Config Pind.6 = Output 'set the direction yourself
Dim A As Byte
Dim Resp As String * 10
Do
Print "test message"
Wait 1
Config Pind.6 = Input
A = Waitkey() ' get response
Wait 1
Loop |
Ko pošljem podatke računalniku (npr. test message) in z terminalom preberem vrednost porta mi ta vrne čudne znake in ne tistih ki so bili poslani.
Ko poizkušam s terminalom poslati nekaj mikrokontrolerju, ta ne naredi ničesar, čeprav z oscilsokopom izmerim da je bil nek podatek poslan.
Ima kdo kakšno idejo kaj bi lahko bilo narobe? Kakršnakoli pomoč bi prišla prav. =)
Hvala!
Nazadnje urejal/a matic91 Pon Sep 13, 2010 12:51 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
 |
eddie Član

Pridružen-a: Sre 10 Dec 2003 21:02 Prispevkov: 723 Aktiv.: 3.05 Kraj: Severna primorska
|
Objavljeno: Pon Sep 13, 2010 11:59 am Naslov sporočila: |
|
|
Če nič drugega moraš na max485 preklapljati med sprejemom in oddajo.
Priloži še kakšno shemo vezave pa ti bo vedel kdo svetovati.
Lp
|
|
Nazaj na vrh |
|
 |
matic91 Neznanec

Pridružen-a: Tor 05 Jan 2010 17:43 Prispevkov: 4 Aktiv.: 0.02 Kraj: Velenje
|
|
Nazaj na vrh |
|
 |
eddie Član

Pridružen-a: Sre 10 Dec 2003 21:02 Prispevkov: 723 Aktiv.: 3.05 Kraj: Severna primorska
|
Objavljeno: Pon Sep 13, 2010 1:17 pm Naslov sporočila: |
|
|
Kaj naredi tole:
Koda: |
Config Print0 = Portd.6 , Mode = Set |
?
Kaj pa nastavitve kristala in preddelilnika v fuse bitih?
To imaš prav nastavljeno?
Če daš na en izhod ledico in jo "togglaš" vsako sekundo utripa v taktu ene sekunde?
Čudniznaki nekako kažejo na eno izmed sledečih stvari: napačen baudrate ali napačna nastavitev kristala.
Lp
|
|
Nazaj na vrh |
|
 |
red_mamba Član


Pridružen-a: Ned 20 Feb 2005 17:56 Prispevkov: 1486 Aktiv.: 6.27 Kraj: Yogyakarta
|
Objavljeno: Pon Sep 13, 2010 3:25 pm Naslov sporočila: |
|
|
pa še nekaj je, jaz sem imel slabe izkušnje s takšno 485 mrežo.
Pri preklopu iz read/write je namreč bilo potrebno malo počakati, da se niso znaki izgubili predno si kaj poslal.
Potem smo šli rajši na 485 mreži z dvema paricama.
_________________ Bad things happen to good people all the time for no reason!
Blog |
|
Nazaj na vrh |
|
 |
tonko Član


Pridružen-a: Sob 25 Jun 2005 13:45 Prispevkov: 541 Aktiv.: 2.28 Kraj: Črnomelj
|
Objavljeno: Pon Sep 13, 2010 3:45 pm Naslov sporočila: |
|
|
Probaj zamenjati med sabo signala A in B na eni strani npr. pri mikrokontrolerju.
|
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.71 Kraj: Kranj - struževo
|
Objavljeno: Pon Sep 13, 2010 6:22 pm Naslov sporočila: |
|
|
Citiram: |
Config Pind.6 = Output
Dim A As Byte
Dim Resp As String * 10
Do
Print "test message"
Wait 1
Config Pind.6 = Input |
Tole bo napaka.
Ti moraš s pinom D6 preklapljati med sprejemom in oddajo. Ves čas mora biti nastavljen kot Output, vrednost pa mu moraš spremeniti na 1 pred oddajo, po oddaji malo počakati in potem nazaj na 0 preden se začne sprejem sporočila.
Kaj naj bi ta vrstica
Citiram: |
Config Print0 = Portd.6 , Mode = Set |
počela, mi ni najbolj jasno. Da prevajalnik kao sam šofira D6 pin?
Bascom sux
Preveri frekvenco kristala in definicijo frekvence v programu.
V testnem programu pošiljaj ven 0x55 ali 0xAA in na osciloskopu glej (direktno na TX pinu), če je frekvenca (bitrate) ustrezna.
Pa še dva napotka:
- slike se pripenja na forum, ne na čuri-muri serverje - temu služi gumb Dodaj priponko.
- preseli se iz Butal, ker katastrofalno izgleda.
_________________ I'm going to stand outside, so if anyone asks, I'm outstanding  |
|
Nazaj na vrh |
|
 |
keops1 Član


Pridružen-a: Sob 10 Maj 2008 21:42 Prispevkov: 48 Aktiv.: 0.23 Kraj: Ljubljana
|
Objavljeno: Pon Okt 04, 2010 7:30 pm Naslov sporočila: |
|
|
Zdravo!
A si že rešil zadevo?
No, meni stvar deluje, sicer pa takole:
- dobro si poglej datasheet od max485 - med A in B linijo dodaj 120ohm, A in B pa rabita bias (z glave ne vem točno: A na maso prek 1k, B na +5V preko 1k)
- kristal mora imeti eno od pravilnih vrednosti; npr:
$crystal = 11059200 ali
$crystal = 14745600
- Config Print0 = Portd.6 , Mode = Set je pravilno, Bascom sam poskrbi, da se Portd.6 deaktivira pravi čas
- na shemi ne vidim, ampak Portd.6 mora biti vezan na pina 2 in 3
- portd.6 pusti ves čas kot output
- portd.6 na začetku obvezno resetiraj (Reset Portd.2), sicer ne bo 'štartali' iz pravega stanja
- predvsem pa imej najnovejšo verzijo Bascoma!
To je to..
Sporoči, če gre.
LP
andrej
_________________ AndrejK |
|
Nazaj na vrh |
|
 |
matic91 Neznanec

Pridružen-a: Tor 05 Jan 2010 17:43 Prispevkov: 4 Aktiv.: 0.02 Kraj: Velenje
|
Objavljeno: Sob Okt 30, 2010 3:36 pm Naslov sporočila: |
|
|
Živijo.
Zadeve mi še ni uspelo rešiti. Zanima me pa kateri pretvornik uporabljaš za pretvarjanje iz RS485 na USB?
|
|
Nazaj na vrh |
|
 |
Ler Član

Pridružen-a: Tor 04 Maj 2010 20:53 Prispevkov: 198 Aktiv.: 1.08 Kraj: NM
|
Objavljeno: Pon Nov 29, 2010 10:45 am Naslov sporočila: |
|
|
Da ne odpiram nove teme
bom prosil kar tukaj za pomoč. V RS485 mrežo ima povezan mikrokontroler in RS485/USB pretvornik. Kodo v mikrokontrolerju sem uporabil predstavljeno v Svetu elektronike 2009/10 in 11 avtorja Vilkota. Na računalniku preko programa Terminl opazujem kaj se mi dogaja na RS485 mreži. Vse lepo deluje če pošiljam iz mikrokontrolerja na računalnik, ko pa želim isto zadevo poslat nazaj npr. nek ukaz iz PC -> uC pa se ne zgodi nič. Zdaj ne vem ali moram ukaze poslat v drugačni obliko kot sem jih prejel ali pa so mogoče kake nastavitve narobe pri programu Terminal v1.9.
|
|
Nazaj na vrh |
|
 |
lojzek Član



Pridružen-a: Pet 25 Jan 2008 8:00 Prispevkov: 3387 Aktiv.: 16.00
|
Objavljeno: Pon Nov 29, 2010 2:23 pm Naslov sporočila: |
|
|
Če uporabljaš terminal, ki je implementiran v windowse, potem vedi, da v oknu vidiš samo tisto, kar dobiš v računalnik.
Kar pa ti pošlješ (natipkaš), pa na ekranu terminala ne vidiš. To mogoče izgleda, kot da nič ne pošiljaš.
Če je temu tako, priporočam drugi terminal program, npr. Brayev terminal. O njem poišči malce tu na forumu -> iskalnik.
|
|
Nazaj na vrh |
|
 |
Ler Član

Pridružen-a: Tor 04 Maj 2010 20:53 Prispevkov: 198 Aktiv.: 1.08 Kraj: NM
|
Objavljeno: Pon Nov 29, 2010 3:05 pm Naslov sporočila: |
|
|
Mogoče sem mal nerazumlivo napisal. Uporabljam točno ta program "Terminal software - version 1.9b 20100630". Podatke (ukaze) poslane iz uC mi pravilno izpiše, ko pa jih v obratni smeri iz taistega program pošljem na uC, ta ne sprovede poslani ukaz. Zaenkrat s pomočjo LCD-ja na uC ugotavljam samo, da ne prejmen pravilnega niza.
|
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.71 Kraj: Kranj - struževo
|
Objavljeno: Pon Nov 29, 2010 7:46 pm Naslov sporočila: |
|
|
Vprašanje, kako je v USB vmesniku krmiljen tisti TX-Enable signal.
Mogoče te heca tudi zaključitev linije (nedefinirano stanje, ko nihče ne oddaja, ni v redu). Osciloskop bi zelo koristil.
_________________ I'm going to stand outside, so if anyone asks, I'm outstanding  |
|
Nazaj na vrh |
|
 |
Ler Član

Pridružen-a: Tor 04 Maj 2010 20:53 Prispevkov: 198 Aktiv.: 1.08 Kraj: NM
|
Objavljeno: Pon Nov 29, 2010 11:40 pm Naslov sporočila: |
|
|
Aly, hvala za namig z osciloskopom. Ko sem priklopil osciloskop sem opazil, da časovni potek sprejemnega signala iz uC na PC in oddajnega signala iz PC na uC nista časovno usklajena - enaka (da se razuemo sem v obe smeri pošiljal enak podatek.) Ne vem zakaj ampak zgleda, da pri oddajanju, oddaja z nekim drugim baud rate-om. Po uporabi drugega programa "Hercules" pa zadeva dela brez težav.
|
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|