www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

RS485/USB komunikacija

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
matic91
Neznanec
Neznanec



Pridružen-a: Tor 05 Jan 2010 17:43
Prispevkov: 4
Aktiv.: 0.02
Kraj: Velenje

PrispevekObjavljeno: Pon Sep 13, 2010 11:39 am    Naslov sporočila:  RS485/USB komunikacija Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
eddie
Član
Član



Pridružen-a: Sre 10 Dec 2003 21:02
Prispevkov: 723
Aktiv.: 3.05
Kraj: Severna primorska

PrispevekObjavljeno: Pon Sep 13, 2010 11:59 am    Naslov sporočila:   Odgovori s citatom

Č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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
matic91
Neznanec
Neznanec



Pridružen-a: Tor 05 Jan 2010 17:43
Prispevkov: 4
Aktiv.: 0.02
Kraj: Velenje

PrispevekObjavljeno: Pon Sep 13, 2010 12:51 pm    Naslov sporočila:   Odgovori s citatom

Takole imam povezana MAX485 in ATMEGA16.

Pretvornik je http://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_USB_RS485_PCB.pdf

:adminedit:



shemaatmegars485.png
 Opis:
 Velikost datoteke:  10.98 KB
 Pogledana:  39 krat

shemaatmegars485.png


Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
eddie
Član
Član



Pridružen-a: Sre 10 Dec 2003 21:02
Prispevkov: 723
Aktiv.: 3.05
Kraj: Severna primorska

PrispevekObjavljeno: Pon Sep 13, 2010 1:17 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
red_mamba
Član
Član



Pridružen-a: Ned 20 Feb 2005 17:56
Prispevkov: 1486
Aktiv.: 6.27
Kraj: Yogyakarta

PrispevekObjavljeno: Pon Sep 13, 2010 3:25 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
tonko
Član
Član



Pridružen-a: Sob 25 Jun 2005 13:45
Prispevkov: 541
Aktiv.: 2.28
Kraj: Črnomelj

PrispevekObjavljeno: Pon Sep 13, 2010 3:45 pm    Naslov sporočila:   Odgovori s citatom

Probaj zamenjati med sabo signala A in B na eni strani npr. pri mikrokontrolerju.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.71
Kraj: Kranj - struževo

PrispevekObjavljeno: Pon Sep 13, 2010 6:22 pm    Naslov sporočila:   Odgovori s citatom

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 Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
keops1
Član
Član



Pridružen-a: Sob 10 Maj 2008 21:42
Prispevkov: 48
Aktiv.: 0.23
Kraj: Ljubljana

PrispevekObjavljeno: Pon Okt 04, 2010 7:30 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
matic91
Neznanec
Neznanec



Pridružen-a: Tor 05 Jan 2010 17:43
Prispevkov: 4
Aktiv.: 0.02
Kraj: Velenje

PrispevekObjavljeno: Sob Okt 30, 2010 3:36 pm    Naslov sporočila:   Odgovori s citatom

Živijo.

Zadeve mi še ni uspelo rešiti. Zanima me pa kateri pretvornik uporabljaš za pretvarjanje iz RS485 na USB?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Ler
Član
Član



Pridružen-a: Tor 04 Maj 2010 20:53
Prispevkov: 198
Aktiv.: 1.08
Kraj: NM

PrispevekObjavljeno: Pon Nov 29, 2010 10:45 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3387
Aktiv.: 16.00

PrispevekObjavljeno: Pon Nov 29, 2010 2:23 pm    Naslov sporočila:   Odgovori s citatom

Č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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Ler
Član
Član



Pridružen-a: Tor 04 Maj 2010 20:53
Prispevkov: 198
Aktiv.: 1.08
Kraj: NM

PrispevekObjavljeno: Pon Nov 29, 2010 3:05 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.71
Kraj: Kranj - struževo

PrispevekObjavljeno: Pon Nov 29, 2010 7:46 pm    Naslov sporočila:   Odgovori s citatom

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 Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
Ler
Član
Član



Pridružen-a: Tor 04 Maj 2010 20:53
Prispevkov: 198
Aktiv.: 1.08
Kraj: NM

PrispevekObjavljeno: Pon Nov 29, 2010 11:40 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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