Trzeba by poczytać troszku o RS485. Jeśli chodzi o sprzęt, to w zasadzie masz dwie główne możliwości. Pierwsza to półdupleks, czyli transmisja naprzemienna po tej samej parze przewodów, druga dupleks w układzie czteroprzewodowym (para przewodów od mastera, para do mastera). Dodatkowo korzystnie z punktu widzenia linii może być pociągnięcie między układami...
Również nie jestem Bascomowcem ale być może moje uwagi okażą się cenne. Po instrukcji Print "{008}5r", dane jest 10 ms opóźnienia. W tym czasie slave mógł już przesłać wszystkie swoje dane - a master jeszcze nie rozpoczął nasłuchu. Inną sprawą jest to, że 100 obiegów pętli w procedurze Odczyt_zn może trwać krócej niż transmisja jednego znaku przez UART...
Patentów jest wiele, ale chyba najleprzy to zastosowanie RS485, który z założenia jest zrobiony dla sieci do 32 urządzeń. RS485 opisuje elektryczną stronę komunikacji, a nie protokół, który jest z regóły identyczny z RS232, jedyne czym się całość różni z punktu widzenia procesora, to transmisja ma sterowany kierunek, czyli jest half-dupleksowa, procesor...
Dosyć odważnie sobie poczynasz na mikrokontrolerze mającym 2kB Flash i 128B SRAM :D ale do odważnych świat należy. Odchudziłem Ci trochę kodzik. Obsługa przerwania timera została stuningowana moim programem NoSave Tool. Teraz mikrokontroler nie odkłada na stos większości rejestrów a tylko te potrzebne - w tym przypadku tylko jeden :D Przekłada się to...
Niby to proste ale spędziłem 2h bez jakichś specjalnych efektów. Robię tu jakiś głupi błąd - zapisywałem to na wiele sposobów Print , Makemodbus(&H01 , 16 , &H0004 , &H010400040002300A); ale to co zwraca mi terminal to jedynie 20 30. Prośba o jakąś podpowiedź
Problem w tym że nieprawidłowo sterujesz portem , uart jest urządzeniem peryferyjnym i print coś tam sprowadza sie do wysłania do właściwego rejestru wartości kodu ASCII przestawiając port na odbiór wyłaczysz nadajnik zanim skończy gadać ... tak samo trzeba odpowiednio sterować nadajnikiem od strony komputera . Przerobiłem to zagadnienie w bascomie...
:/ ale w nocie katalogowej to pisze tylko jak go podlaczyc jak dzia i co wytrzymuje :D a ja chce wiedzec jak go obslugiwac pod bascom :) te komendy print i input.. i co wiecej?? co tam mam dokladnie wpisac? jak odbiore jakas dana to skad uP ma wiedziec co dostał?? przeciez to trzeba jakos adresowac chyba... pomozcie prosze!!!!! pozdrawiam Marek
#1 - chodziło mi o RS485 i kilka urządzeń na jednej linii z transmiją w jedną stronę. Czy #1 oznacza, że jakbędzie kilka urządzeń to input #1 odbierze z urządzenia któro nadaje print #1 ?
Co właściwie wysyła instrukcja PRINT w składni Print A jeśli A - zmienna zadeklarowana jako Word i aktualna jej wartość wynosi 1002? Kiedy mam spięte dwa komputery kablem NULL-MODEM, i na obu uruchomione terminale z pakietu Bascom AVR, widzę po prostu przesłaną zmienną, np. liczbę 1002, ale potrzebuję wiedzieć co tak na prawdę przesyła się po łączu...
Witam, potrzebuję zrobić komunikację miedzy 2 procesorami ATmega16. Jeden wysyła zmienną typu Byte (Status) z informacją o stanie wejść, a 2 to odbiera. Natomiast 2 będzie wysyłał do 1 także zmienną Byte (Settings) z informacjami konfiguracyjnymi. Dodatkowo chciałbym wysyłać sumę CRC w obu kierunkach. Transmisja w obu kierunkach jednocześnie! Bity będą...
I teraz jeszcze takie pytanie, jak master wyśle komendę print 0103, to wysyła on na wszystkie układy podłączone do magistrali i tylko w slave o numerze 01 (na przykład) wykona się instrukcja 03??? Tak to rozumiem. No i czy instrukcja INPUT nadaje się do odebrania danych z magistrali?? Dokładnie tak ale musisz w procedurze obsługi odebranych komunikatów...
$regfile = "m128def.dat" $crystal = 16000000 $baud1 = 38400 Config Com2 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Dim Znak As String * 5 Open "com2:" For Binary As #2 Print #2 , "start" Wait 1 Pg: Input #2 , Znak Waitms 500 Print #2 , "Odebrano znak : " ;...
Witam. Mam małe pytanie, chciałbym sterować kartami przekaźnikowymi przez PHP (www) Karty które mam to są klony KITu [url=http://sklep.avt.pl/p/pl/487832/uni... pracuja na RS485 spięte są za pomocą KITu [url=http://sklep.avt.pl/p/pl/481894/klo...
Witam! Państwa bardzo serdecznie, jednocześnie zwracając się do Państwa z poniżej opisanym problemem. Otóż chcę zrealizować transmisję w oparciu o standard RS485 między dwoma mikrokontrolerami ATtiny2313 firmy ATMEL Corporation. Schemat zestawionego układu przedstawiono na poniższej rycinie. http://obrazki.elektroda.net/61_12469992... Próbując...
jeżeli mam transmisje miedzy wieloma uP na jednej płycie, to używam dodatkowych pinów i robie synchroniczną transmisje, sposób z dioda jest powszechnie stosowany w takich sytuacjach, zresztą podpatrzyłem to dawno temu w naświetlarce gdzie na jednej płycie siedziało kilka Z-80 i właśnie tak gadały ze sobą. kod który wkleiłem jest terminalowy, serwerowy...
Witam Andy74 zakupiłem dzisiaj nawet nowego uP i jest to samo, błą weryfikacji. Jak mi przyjdzie jeszcze budować nowy programator, to się chyba zastrzelę, jakiś nie fart pod koniec tego tygodnia? A było tak pięknie RS485 działał, na SLAVE dałem wartość która się zmieniała i wysyłał ją do ATmegi, wszystko łądnie i pięknie, aż do momentu następnego proghramowania,...
Witam. Od pewnego czasu zajmuje się wykonaniem sterowania na mikro-kontrolerach AVR. Nadajnik pracuje na atmega 8 a odbiorniki na atmega 16. Mój system to zestaw 15 odbiorników i 1 nadajnika. Połączone jest to wszystko za pomocą magistrali RS485 za pośrednictwem Sn75176 z przełączaniem odbiór nadawanie. To tyle odnośnie układu docelowego. Do celów diagnostycznych...
Bo jak ja zacznę coś tworzyć to mi flash-a w procku nie starczy a pewnie potrzeba do tego dwóch linijek kody aby coś wysłać i odebrać z tego nieszczęsnego FT232RL :) ale dlaczego nieszczęsnego FT232RL - przecież komunikacja za jego pomocą to dokładnie to samo co przez MAX232 - tyle że tu masz o wiele lepszy samochód - mercedes - bo pozwala łączyć się...
Zamiast 'Print' użyj 'Printbin'
Teraz nic nie wyświetla. W nadajniku nadaje tak: [syntax=basic4gl] Print Chr(42) ; 12345 ; Chr(13) [/syntax]
Łap bo jak zaczniesz z tym Multimaster to się nigdy z tego nie wygrzebiesz a odkrywasz tu koło na nowo :D Po pierwsze nie zauważyłem wcześniej, że już skonfigurowałeś Serial in 0. Błędem natomiast jest jest używanie Serial out 0 a potem zamiast to wrzucić do bufora to wycinasz po jednej literce ze stringa i nadajesz pojedynczo... Po prostu napisz Print...
Też miałem z tym problem i kolega z Elektrody doradził mi żebym zastosował zamiast Input to Inputbin. I tak samo zamiast Print to Printbin, tyle, że ja to robiłem na RS485. Pozdrawiam
Proszę skompilować program w tej wersji : [syntax=basic4gl]'**********************... '************************************* '** Karta wyjœæ z interfejsem RS485 ** '** Firmware v1.2 (06.08.2009) ** '** Projekt: Mariusz Ciszewski ** '** Publikacja: EP ** '** mariusz.ciszewski(at)elportal.pl ** '** poprawki Arnoldziq(at)eletroda.pl...
W Bascom jest to załatwiane automatycznie kiedy skonfigurujesz sobie pin który jest odpowiedzialny za przełączanie. Kiedy masz włączone IDE Bascom naciśnij klawisz F1 na klawiaturze i w nowo otwartym oknie Helpa wpisz "Config Print" Alternatywnie możesz to samo zobaczyć Online pod tym linkiem [url=http://wiki.mcselec.com/bavr/CONFIG... albo...
Poczytałem trochę mam kilka wniosków a mianowicie problemem nie jest warstwa fizyczna RS485 a warstwa protokołu. A także zdecydowanie powinienem zając się instrukcją Printbin a nie Print i muszę wysyłać dane typu byte a nie jak ja mam tu wyżej za pomocą znaków ASCII czy mam racje czy się mylę oświećcie mnie.
Spróbój ustawić kierunki portów TxD i RxD w attiny na odpowienio wejściowy i wyjściowy-może to to. Po 2 spróbój dać większe opóźnienie po: [syntax=basic4gl]Print "MOD001" ; I1 ; "," ; I2 ; Chr(13); Waitms 1 [/syntax] Nie 1ms a może 10ms...nie liczyłem czasu wysyłania danych, ale może w ciągu 1ms dane nie zdążą przejść?
Przede wszystkim w komunikacji po Usarcie to przeszedł bym na przesyłanie ASCII, a wyrażenie kończyłbym znakiem CR (13). Wtedy możesz wysyłać odebrane ciągi na wyświetlacz, bez używania stałych. Używaj do tego zwykłego Print zamiast printbin. Tak swoją drogą nie wiem czemu większość początkujących próbuje komunikować się poprzez Printbin zamiast używać...
Jakby ktoś szukał gotowego rozwiązania wklejam to bazujące na obsłudze UART w przerwaniu zamiast Input. W pełni działający kdo poniżej: [syntax=basic4gl] $regfile = "m32def.DAT" $crystal = 8000000 $baud = 4800 Nadawanie Alias Portd.7 Config Nadawanie = Output Enable Interrupts Enable Urxc On Urxc Odbierz Dim Kod_znaku As Byte Dim Tekst As String * 1...
Witam wszytkich, Od kilku dni próbuję się nauczyć obsługi modbus rtu w bascomie i na podstawowym programie z helpa się wyłożyłem. Poradźcie dlaczego wpisując mój procesor w poniższy kod wywala mi błędy? Czy ta biblioteka jest tylko pod dany procesor? Proszę podpowiedzcie. https://obrazki.elektroda.pl/7527367800_... [syntax=vbnet]'-------------------------...
Witam, od jakiegoś czasu opracowuję urządzenia komunikujące się po RS485 w protokole PELCO-D. Urządzenia komunikują się albo jedno albo dwukierunkowo-tutaj to nie istotne... Wszystko działa wyśmienicie i komunikuje się bez najmniejszego błędu gdy nadaje jedno z urządzeń. Urządzenie to nadajnik i odbiornik. Gdy nadają 2 nadajniki jednocześnie (jednocześnie...
Niektóre radiolinie mają wbudowane kodowanie transmisji, ale większość z nich nie. W Bascomie można kodować dane za pomocą Xtea, ale zobacz, co się dzieje, gdy wysyłasz te same dane. Zakodowany ciąg Hexstring zawsze wygląda tak samo. Jeśli więc ktoś nagra twoją transmisję, to gdy zostanie ona odtworzona, urządzenie zareaguje tak samo. https://obrazki.elektroda.pl/7576017000_...
Witam. Robię trzycyfrowy wyświetlacz led sterowany przez rs 485 (na razie 232) i zastanawiam się nad sposobem przesyłenia danych , poczytałem posty na tym forum + specyfikację gotowego protokołu i postanowiłem że chciałbym przesyłać: 1 bajt startu , 2 bajty adresu , 1 bajt rozkazu , 2 bajty danych , 2 bajty sumę kontrolną , 1 bajt koniec ramki . Pytania:...
Witam. Miałem dwie atmegi spięte przez port szeregowy. Full duplex. Master, wysyłał do slave znak "Q" a w odpowiedzi otrzymywał stan wszystkich ośmiu bitów wybranego portu. Master odebrany komunikat wysyłał na port i zapalał LEDy. Ukłąd prosty. Wszystko działało przepięknie. Odbieranie znaków w układach master i slave realizowałem przerwaniem od URXC...
Witam Mam następujący problem: Posiadam w swojej sieci RS485 kilka pracujących modułów. Znajduje się w niej jeden Master i 6 Sleave-ów . Problem jest następujący. Jeden z modułów działa prawidłowo zaraz po podłączeniu do zasilania , tzn. odpowiada poprawnie na zapytania Master-a ale po kilku minutach zaczyna krzaczyć. Ale co śmieszniejsze krzaczenie...
Witam serdecznie. Pisać w Bascomie zacząłem w lipcu br. To mój pierwszy program. Oto mój problem. Sieć Master-Slave na platformie RS485. Master - PC z dedykowaną aplikacją Slave - ATmega64 [syntax=basic4gl]'----------------------... Dim Tmpstr As String * 50 'dane odebrane Dim Tmpout As String * 50 'dane do wysłania '------------------------------------...
Dzieki za radę, nie miałem pojęcia ze to jest istotne, sugerowałem się tym schematem http://www.elektroda.pl/rtvforum/topic21... a tam nie są nigdzie podłączone. Jak połączę te nóżki to po prostu omijam układ 4053 i wtedy działa więc programowo jest ok. Ale podczas prób z układem zrodził się inny pomysł na zwiększenie ilość urządzeń połączonych...
W tym urządzeniu pętla główna jest praktycznie pusta. Obsługuje tylko wyświetlanie na LCD na którym na razie wyświetlam tylko to co odbiorę z Uart-a. Jeśli chodzi o tą pętlę Do Loop to wiem że to chore. Ale działa. Wiem że tak być nie może i muszę uruchomić "Config Serialin". Ale mam spore problemy. W tej chwili nic się nie wiesza i wszystko funkcjonuje...
Witam! Usilnie próbuje opracowąć protokół komunikacji miedzy wieloma węzłami w sieci RS485 multimaster. Ramka wyglada tak: 1 bajt - długosć ramki 2 bajty - adres odbiorcy (word) 2 bajty - adres nadawcy (word) x bajtów - dane właściwie 1 bajt suma kontrolna z wszystkich poprzednich Transmisja odbywa się na prędkosci 19200bps przy użyciu transcieverów...
Witam Mój problem wiąże się z zaprogramowaniem "Echa" które obijało by sygnał w standardzie RS. Układ buduję w celu sprawdzania poprawności działania konwertera USB-RS485. Aby nie programować układu dla każdej szybkości transmisji chcę użyć pinów PB0-PB3 gdzie za pomocą zworki możliwy byłby wybór jednej z 4 przygotowanych szybkości transmisji: 921600,...
Panowie, Panie potrzebuję pomocy bo siedzę i siedzę i nie mogę sobie dać rady z kodem BASCOM. Jestem początkujący, a raczej raczkujący w AVR, programowaniu itd. :( Próbuję zbudować sterownik do pokoju który ma wykonywać: -sterowanie światłem (8x) -sterowanie piecem/kotłem gazowym (temperatura noc i dzień-dwie różne temperatury) -każdy przycisk ma dwie...
Witam, Na własne potrzeby chciałem zbudować monitor temperatury z 4 dallasami 18B20. Dane są odczytywane z czujników po RS485 i wysyłane do mastera. Kiedy odpytuję czujniki po kolei, muszę czekać standardowe 750ms na odpowiedź każdego z nich, co nie zadowala mnie. Zależy mi na tym, aby po wysłaniu komendy odpytującej, każdy z czujników bezzwłocznie...
Ma ktoś jakieś pomysły jak to przeskoczyć? Zainstalować najnowszą wersje BASCOM'a (2.0.7.6.001) :). Tak z ciekawości uruchomiłem program na swoim zestawie, dane odbierał terminal. Za pierwszym razem skompilowałem program wersją 2.0.7.5.003, program wysyłał jedną ramkę (printbin) i stanął. Przy drugiej próbie użyłem BASCOM'a 2.0.7.6.001 i ramki zostały...
pgnige --> tak patrzę sobie, patrzę - temat się toczy - a ty sam nie dość, że nie wiesz czego chcesz to nie masz pojęcia o żadnych sposobach transmisji. Dlatego snujesz jakieś fantasmagoryczne plany o rozjeżdżająych się kwarcach, zegarach i tym podobnych banialukach. Dlaczego tak sądzę - bo wystarczy poczytać o twoich pomysłach na komunikację między...
Witam! Usilnie próbuje opracowąć protokół komunikacji miedzy wieloma węzłami w sieci RS485 multimaster. Węzły zbudowane są za pomocą AtMega8. Ramka wyglada tak: 1 bajt - długosć ramki 2 bajty - adres odbiorcy (word) 2 bajty - adres nadawcy (word) x bajtów - dane właściwie 1 bajt suma kontrolna z wszystkich poprzednich Transmisja odbywa się na prędkosci...
Witajcie Z bootloaderem na 485 to nie tak prosto... :-( Trzeba oczywiście bootloadera przerobic by obsługiwał TX/RX - należy pamiętać że z tym RS mam SIMPLEX a nie DUPLEX. Deklarujemy który pin steruje transceiverem RS485 Config Print0 = Portd.4 , Mode = Set Config Pind.4 = Output Trzeba zastrzec z zwykłym protolole pewne znaki które są zarezerwowane...
Witam Napisałem program, który dekoduje sygnał DCF77 ( ustawia flagę ), następnie zapisuje ( przy pierwszym uruchomieniu ) wartości zmiennych do PCF8563 i cztery razy na dobę wysyła przez RS485. do tego dwa razy na dobę koryguje czas w PCF8563. I to działa bez problemu. Do celów testowych mam podłączony LCD. Chciałem dołączyć możliwość pomiaru i wysyłania...
Witam forumowiczów ... Piszę dość zaawansowany program na Atmege64, większość rzeczy wykonywane jest w przerwaniach programowych i jest wszystko OK. Komunikację zrobiłem na RS485 i działa dobrze (protokół MODBUS RTU) ale mam problem z wysłaniem danych: - jak wiadomo RS485 - więc na czas wysyłania muszę uruchomić nadajnik - wysyłam dane - po ostatnim...
Sprawdziłem problem kolizji i też nie działa jak ma działać. Otóż sytuacja ma się dokładnie tak: Jeśli nadaje jakikolwiek znak do slave-ów to reagują na znak tak jak chce. Podam kod którym realizuje to co pisze: (dodam, że pisze w Bascomie) Kod centralki: ... Do print "q"; wait 1 loop ... kod slave-ów : ... Dim A as Byte Do A = Waitkey()...
Dziekuję za odpowiedź. Czyli rozumiem, że kupuję MAX485 podłączam do Atmegi tak jak pokazano na rysunku bez żadnych innych elementów i mam już układ do nadawania/odbierania w standardzie RS485? :D Odnośnie punktu 1 - chodzi Ci o linie X1-1 oraz X1-2 tak? Połączone powinny być faktycznie z tego co widzę to między kolejnymi odbiornikami? http://www.roboternetz.de/wissen/index.p...
zmieniłem kod w następujący sposób #define F_CPU 1000000UL // 1 MHz // prędkość transmisji 9600 #define UART_BAUD_RATE 9600 #include <stdlib.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <avr/pgmspace.h> #include <util/delay.h> #include "uart.h" // częstotliwość CPU w...
Sporo tego ( obsługa SD, PCF8563 + menu do ustawiania daty, obsługa PCF8574 w przerwaniu INT1 )- ale nie ma problemu - zmieniła się tylko zawartość podprogramu Pomiar była taka, jak w pierwszym poście oraz wyłączyłem w wyświetlanie na LCD tych wartości wskazań z DS18B20, oczywiście dostosowałem pozycje wyświetlania do LCD 4*20 - załączniku spakowany...
bascom print rs485 rs485 print bascom print bascom
sterownik wielofunkcyjny brother instrukcja dedra komunikacja między sterownik
telewizor sencor telewizor sencor
Peugeot 206+ 2010 – kabel diagnostyczny OBD-II, ELM327, Lexia 3, Diagbox, PSACOM Pakiet akumulatorów 18650 21V 4A – schemat 5S2P/6S2P, BMS, Molicel, Samsung, Sony