bj86 czy Ty chcesz odczytywać zawartość rejestrów sterownika XLe z wykorzystaniem protokołu Modbus? Jeśli tak to z poziomu komputera potrzebujesz Modbus MASTER a SLAVE jest urządzenie, z którego chcesz czytać dane (w tym wypadku XLe). W programie do XLe z poziomu CScape definiujesz komunikację przy pomocy odpowiedniego wywołania bloku (Modbus Slave...
Nie potrafię dojść o co chodzi - rozumiem gdyby program zatrzymywał się na while(), ale na return()? Samo przerwanie TWINT nie oznacza, że operacja zakończyła się powodzeniem. Nie podałeś zawartości innych funkcji obsługi magistrali, ale sądząc po funkcji twi_read() nie sprawdzasz poprawności transmisji poprzez sprawdzenie jej statusu w rejestrze TWSR....
Dzień dobry, przekopałem forum ale nic nie umiałem znaleźć. Mój problem dotyczy zmiany jakiegoś rejestru w urządzeniu slave przez inne urządzenie slave. Konkretniej: Falownik LS odczytuje z panelu dotykowego (który jest masterem) wartość np zadanej częstotliwości. Obok jako drugi slave jest sterownik PLC, który kontroluje wejścia/wyjścia. Powiedzmy...
http://obrazki.elektroda.pl/3546939500_1... Konstrukcja będąca tematem wątku powstała jako projekt na zaliczenie przedmiotu na uczelni, którego celem było napisanie sterownika dla systemu Linux do jakiegoś urządzenia. Ponieważ miałem swobodę wyboru tematu sterownika, postanowiłem stworzyć jakieś urządzenie w postaci karty ISA. Złącze...
jeśli wysyłałem pod adres 1 niepodłączonego przetwornika, zgłasza błąd (rozumiem, że niepodłączony przetwornik = błąd), To nie tak. Na adresie 1 program słucha - skonfigurowany jest by odpowiedzieć na funkcję 03 (odczyt rejestrów) i rejestry 0 - 9 Ty wysyłasz mu funkcję 05 (ustaw jedno wyjście) i rejestr 4000 więc odpowiada Ci kodem 85 (błąd dla funkcji...
Spróbuj ustawić transmisję: 1 bit stopu Even (parzysty) 1 bit startu 8 bitów danych. Trzeba jeszcze przesunąć rejestr danych o 1. np z 21 na 20 lub nie, oczywiście zależy to od slave A także spróbuj zamiast FC3 - FC4. Ja mam PLC od wersji oprogramowania 1.4 Wygląda, że liczby w tym liczniku są całkowite. Jeżeli zawartości rejestrów były by zmiennoprzecinkowe,...
1. Zmienio Biosa na nowszy. Stanowczo za stary. Najnowszy jest 6.4 - na ksa masz wszystkie. Jeśli nie masz dostepu do Biosu na ksa tzn masz niski poziom uprawnien. 2. ". W "drzewie programu" mamy coś takiego jak "Modbus Line". Czy to musi być konfigurowane? " --> Nie musi. To jest taki łatwiejszy konfigurator dla portów. Wybierasz port np BMS1 i konfigurujesz...
Dziękuję. Rejestr już jest odczytywany przed zapisem. Każde przerwanie w slave zapisuje coś do SPDR, więc jeśli slave ZDĄŻY obsłużyć przerwanie i wpisać to zawsze jeden bajt jest wpisany. Przed transmisją przy inicjacji nic nie wpisuję do spdr, pierwszy wpis jest w przerwaniu. Wygląda na to, że oba wyrabiają się z wpisywaniem danych do rejestrów bo...
http://obrazki.elektroda.pl/3207877000_1... http://obrazki.elektroda.pl/9634776400_1... http://obrazki.elektroda.pl/8673988800_1... http://obrazki.elektroda.pl/3005768300_1... Termometr z funkcją pamiętania maksimum i minimum (zapisane w rejestrach, tracone przy braku zasilania). Program...
Hej, Adresy są ustawione w channel configuration. Podaje się tam adres początkowy dla poszczególnych rejestrów. Pozostałe rejestry są przypisane do zmiennych sterownika po prostu z przesunięciem względem adresu początkowego. Wydaje mi się (jutro sprawdzę), że to może być tylko jeden data block dla jednego rejestru modbus, więc jeśli np.początkowy rejestr...
Czy rejestr 0x00 w wyświetlaczu jest dostępny do czytania? Samo skanowanie busa polega na wyłapaniu czy po bajcie z adresem i kierunkiem slave zrobi ACK. Ale może się zdarzyć, że rejestr nie jest przeznaczony do czytania zatem po podaniu adresu urządzenia 0x27 z bitem kierunku i adresu rejestru 0x00 nie będzie ACK co oznacza, żę taki rejestr nie nadaje...
Gapię się w modbusa jakiś czas żeby zrozumieć te rejestry. Mam wrażenie, że poczyniłem pewien progres, ale muszę się upewnić czy to aby nie są bzdury. No i sprawa wygląda tak: urządzenia slave składają się / są widziane jako rejestry z poziomu mastera. Wysyłam z mastera polecenie do slave’a: „odczytaj rejestr R1”. Polecenie leci do...
Witam DS3231 Slave address to 0xD0 Adres rejestru to 0x0E chcę w ten rejestr wpisać zera mam taki kod: [syntax=c] i2c_cmd_handle_t cmd = i2c_cmd_link_create(); i2c_master_start(cmd); i2c_master_write_byte(cmd, (0xD0 << 1) | I2C_MASTER_WRITE, 1 /* expect ack */); i2c_master_write_byte(cmd, 0, 1); i2c_master_stop(cmd); i2c_master_cmd_begin(I2C_NUM_0,...
Pod kątem szyny Modbus można to opisać w prosty sposób: Master - Cobra lub Puma Slave - Spider (adres 5) baudrate 9600 1. Nawiązanie komunikacji M - Zapytanie slave'ów od numeru 1 do 32 o 1 rejestr wejściowy z adresu 0 (funkcja 4) S - Odpowiedź zwracająca wartość 054 147 2. Zapytanie o status GSM i zmiany parametrów pieca M - Zapytanie o 8 rejestrów...
Nie sprawdzałem ale tu masz 01- adres urządzenia 03- rejestr 01 03 00 00 00 01 CRC
Rejestry numerowane są od 1 (0 jest nieprawidłowe). 1 oznacza pierwszy możliwy rejestr w urządzeniu (w slave'ie). Zobacz GFK-2220 i opis komendy 8002. Word 10 – RTU Data Address/Start Address: The one-based offset into the target reference data type on the slave that specifies: The data location for the Force Single Output and Preset...
https://obrazki.elektroda.pl/4089247800_... Pytanie: Czy mogę uzyskać dostęp do niestandardowego interfejsu SPI za pomocą mojego mikrokontrolera? Odpowiedź: Tak, ale może to wymagać trochę dodatkowego wysiłku podczas tworzenia oprogramowania układowego. Wiele współcześnie wykorzystywanych, precyzyjnych przetworników analogowo-cyfrowych...
Jesli chcesz wykorzystac sprzetowe I2C (TWI) w ATmega8 to wszystko ustawiasz za pomoca odpowiednich rejestrow. Jesli ATmega bedzie pracowala w jako SLAVE to za pomoca odpowiedniego rejestru ustawiasz jej adres. Poczytaj w doumentacji od uC.
Witam, Chce połączyć HMI unitronics (środowisko unilogic) z wzmacniaczem/konewerterem belki tensometrycznej Scaime Enod4T. Komunikacja po modbus RTU - RS485. Scaime po RS z komputerem i natywną aplikacją producenta komunikuje się bez problemu. Po raz pierwszy mam do czynienie z Modbus RTU. Przejrzałem specyfikację scaime i nie specjalnie mogę zrozumieć...
Diody podpięte są do czegoś co się zwie "rejestr przesuwny 74HC595". Jeżeli tam masz rejestr 595, to zamiast kombinować podepnij się pod wejście szeregowe tego rejestru - masz tam SCK, MOSI, SS - podpinasz to pod SPI w trybie slave i masz odczyt tego co wysyła procesor do zatrzasku. Nawet jeśli zajdzie konieczność konwersji poziomów, to masz tylko...
https://obrazki.elektroda.pl/5794565700_... Jeżeli chodzi o komunikację pomiędzy sterownikami VersaMax Micro, to można ją zrealizować np. w protokole SNP (SNP-X). Wtedy w jednym ze sterowników należy uruchomić pracę jako Master w tym protokole. Następnie przy pomocy poleceń COMMREQ trzeba oprogramować komunikację – przesyłanie...
Cześć Adres może i dobry, ale jest to adres 7 bitowy - bez uwzględnienia najmłodszego bitu zapisu. Trzeba tą wartość przesunąć w lewo o 1 bit i do tego ustawić lub nie bit zapisu: #define i2c_rw_bit 1 // transmit slave addres I2C1->DR = ( saddr << 1) | i2c_rw_bit ; No i przydałoby się dodać jakieś timeouty w tych pustych pętlach czekających...
Cena jednak niebagatelna;) Taniej wyjdzie jak zawsze, dodatkowe ATmegi jako układy slave po SPI.
Nie za bardzo rozumiem o jakich przerwaniach piszesz. Slave SPI (abstrahując od przerwan błędów itd) ma przerwanie wtedy kiedy rejestr wysyłki jest pusty albo kiedy coś otrzymał (pominę kwestię fifo). Jeżeli jest to przerwanie od pustego rejestru TX to może tam wpisać dane, która zostanie wysłana przy następnej transmisji mastera. Jeżeli jest to od...
register unsigned char counter asm("r3"); Ale jak wskazać kompilatorowi aby używał zarezerwowanych rejestrów w konkretnej funkcji? Zresztą metoda bardzo zła bo ogranicza kompilatorowi ilość dostępnych rejestrów, a problemem jest fatalnej jakości kod. Żadne mikro optymalizaje tu nie pomogą. Należy napisać, albo znaleźć porządny kod. Proszę o cudowny...
Witaj Zgoodie Dzięki za szybką odpowiedź. Tą ramkę znam 01 03 00 00 00 01 84 0A i wiem że to jest zapytanie o 1 rejestr Holding Register, 01 - to id slave'a a 03 to kod funkcji czyli odczyt holding rejestru a 00 00 00 01 to adres 0 i długość 1, później jest kod crc. Ramka 01 03 00 00 00 01 84 0A działa jak również inne typu FF A0 40 38 odpowiadające...
Master decyduje o scenariuszu wymian. Może wysłać 400 zapytań o każdy rejestr osobno. Albo czytać 50 rejestrów od offsetu 100, a później 20 od offsetu 237. Slave ma odpowiedzieć.
"//dla pewnosci zeruje cale AFR by miec pewnosc ze alternatywa zerowa jest" Dla pewności zresetowałeś więc w obydwóch przypadkach nie tą połówkę co trzeba. Odczytaj w programie rejestry statusowe SPI2 i SPI1 - pewnie wyskakuje jakiś błąd. Konfiguruj najpierw slave'a, potem mastera. Użyj debuggera żeby zobaczyć gdzie się wiesza. Racja, mój błąd. Nie...
Zastanawiam się tylko po co sprawdzać to: [syntax=c]USART3 -> CR1 & USART_CR1_TCIE[/syntax] nie rozumiem powodu. Przecież to jest "This bit is set and cleared by software." Programista nie wie czy ustawił to przerwanie czy nie? Dodatkowo ten zapis: [syntax=c]if(( USART3 -> CR1 & USART_CR1_TCIE) && (USART3 -> SR & USART_SR_TC ))[/syntax] wygląda dość...
MISO to Master IN SLave OUT, a MOSI to Master OUT Slave IN. Jak same nazwy wskazują nie ma tu mowy, które urządzenie jest masterem, a które slavem. Linia MOSI zawsze jest wyjściem w Masterze a wejściem w Slavie. Zlinią MISO jest podobnie tylko że na odwrót. Nic nie musisz przełączać, ponieważ jest to robione wewnętrznie. W nocie jest taki rysunek gdzię...
Witam serdecznie Potrzebuje pomocy w komunikacji s7 1200 Posiadam s7 1212 i CM 1241, próbuję pobrać dane z urządzenia podłączonego do procesora komunikacyjnego, adres slave 2, prędkość 9600, bez parzystości, długość 8 bitów stop 1, użyte piny w CM 1241 pin 8 -A pin 3 -B brak terminacji w chwili obecnej długość przewodu ok 1 m, rejestr z którego chcę...
https://code.google.com/p/robotcontrol/s... Diagnoza jest taka: w slave'ie w ogóle nie wykonują się polecenia pętli ciała głównego programu. W ogóle nie jest wykonywane drive_state[0] = 16; gdyż na ekranie LCD wciąż widzę wartość '49'. Transfer SPI działa gdyż po odpięciu jednego z kabli...
Czy istnieje jakiś sposób do zaprojektowania np Master Slave'a JK na bramkach???? Mi z grafu wychodzą nadmiarowe bramki... :/ A niestety profesorek sam nie wiem jak to zrobić.. każe zapamiętać kilkanaście bramek :/ Macie jakieś pomysły??? Zasada jest dosyć prosta. Tego typu przerzutnik składa się z dwóch zatrzasków. Ponieważ z grafu przejść wynika...
Witam Bardziej profesjonalnie jest wszystkie układy potraktować jako slave . Każdy słucha i czeka na przerwanie z uarta , jak je otrzymuje odbiera zawartość z udr porównuje i albo odbiera dalej albo ignoruje i czeka na kolejny adres . Atmel wyposażył układy w tryb multimaster ,który się do tego świetnie nadaje i warto o nim przeczytać w dokumentacji...
(at)chudybyk - niekoniecznie, tzn nie wiem jak z Arduino, ale robiłem projekt na tiny48 i tam jest rejestr maskujący adres przez co jeśli bardzo byśmy się uparli urządzenie skonfigurowane jako slave odpowiadałoby na KAŻDY adres. Niemniej w przypadku arduino jest zapewne jak piszesz. Dodam, że lista adresów dostępnych jest mniejsza niż 127 w przypadku...
Też szukam takiego rozwiązania, i nie bardzo wiem czy Bluetooth się tutaj nada. Bo Bluetooth pozwala stworzyć połączenie prawie przezroczyste dla UARTa. Ale w trybie połączenia bezpośredniego. 1:1 pomiędzy dwoma konkretnymi modułami. A mi chodziłoby o połączenie jednego mastera z np. pięcioma slaveami. Czy takie coś jest możliwe przy UARCie? Tzn. żeby...
Witam. Połączyłem sobie dwa rejestry 74HC595 w kaskadzie i uzyskałem rejestr 16 bitowy. Chciałbym uzyskać na tym rejestrze efekt operatora |= tzn. ustawiać każdy pin z osobna bez zmieniania wartości logicznej pozostałych pinów. Napisałem funkcję aktywujPIN(PINx) gdzie argumentem jest wartość decymalna odpowiadająca za zapalenie kolejno każdej diody...
Witam Holding Registers - 0x03, Czyli np. w trybie RTU: 0x01 - adres slave 0x03 - Holding Registers 0xXX - rejestr początkowy Hi 0xXX - rejestr początkowy Lo 0xXX - Ilość rejestrów Hi 0xXX - Ilość rejestrów Lo Dodatkowy jeśli używamy ModBus TCP należy dodać nagłówek na początek ramki. Proponuje zapoznać się z OPC toolbox w Matlab'e. Pozdrawiam
Nad przekaźnikami też się zastanawiam, ale raczej będzie to ostateczność. Bezpieczeństwo jest tu najważniejsze a przekaźniki mają tendencje do sklejania się styków lub innych, nawet opisywanych przez ciebie uszkodzeń. Zwróć uwagę że, opisywane problemy tyczą się raczej dużych prądów. Przy małych prądach, schodzimy do strat dużo mniejszych niż zasilanie...
Dzięki CervantesJ. Bardzo pomocne materiały mimo że mam starszą wersje. Siadam zaraz i kombinuje dalej. Możesz mnie jeszcze tylko nakierować czy dobrze rozumuje. Chcę połączyć sterownik SAIA z InTouch-em. Z tego co się orientuje to InTouch jest Masterem. Mam już w InTouchu skonfigurowany DAServer Manager. Wysyłam z niego informacje pod rejestrem 40010....
Witam Ja pisałem programu do komunikacji po ModBus'e z miernikiem LUMEL NA6 i moim zdaniem łatwiej by było wykonać komunikacje w trybie RTU. Suma kontrolna CRC16 jest dostępna w dokumentacji do ModBus'a w języku C. Ja przerobiłem ją na C#. Ramka zapytania jest prosta i nie potrzeba nic dodawać dodatkowego np: public byte[] getRamkaStatusNr1(byte...
74164 nie ma zatrzasku ale to nie szkodzi - przy szybkim taktowaniu danych - zmiana jest niewidoczna przecież na czas wpisywania danych można wygasić sygnał wyboru linii (żadna linia nieświeci).. hm.. pomysł bardzo dobry.. można powiedzieć że przewyrzsza mój pomysł prostotą i końcową ceną.. ostatecznie można zrobić tak jak ja to pokazałem ale zamiast...
1. Jeśli ta informacja jest tylko w eds slave to teraz, żeby Master był "uniwersalny" to muszę zarezerwować (lub dynamicznie) przydzielić pamieć dla tych wszystkich transmisji, 2. Może te Informacje są gdzieś w słowniku urządzenia ale nie wiem gdzie. Nie ma czegoś takiego w rodzaju informacji o dostępnych PDO. Jak chcesz to możesz np. za pomocą SDO...
I tu się mylisz kolego, bo w ten sposób nie zmienię trzeba wysłać całą ramkę w HEX. Tak to już próbowałem i nie przyjmuje. 40021 ID HEX 00 14 Length : 4 byte MODBUS Protocol code 10 (16 decimal) writes the contents of the 4X registers. Example The following query will set the Network Node to 60: Field Name Example (Hex) Slave Address 01 Function 10...
SSI i SSM ustawione na 1 nic nie zmieniają. kriss, według Ciebie jak powinna wyglądać ta definicja? Jeszcze jedno nie wiem czy ma to znaczenie ale na SPI1 w rejestrze I2SPR ustawione jest 0, a wartość początkowa powinna być 0x2 i tak jest na SPI2. Niestety nie mogę ustawić w SPI1 wartość 0x2. Da się natomiast wyzerować ten rejestr w SPI2 ale to nic...
Z tego co wiem przerwanie w Slave zostaje włączone po zakończeniu nadawania/obioru. Dlatego wpisując w przezwaniu w rejestr SPDR wartość zakładam że będzie ona wysłana jako następna, przy następnym nadawaniu/odbiorze (przed wywołaniem kolejnego przerwania). Mogę wstawić w while(1) coś takiego: [syntax=c]while(1) { if(!(PINB & (1 << SS))) {...
Mam sterownik fatek FBs-24maj. Falownik LS sv040ig5a-4 Mam tabelę modbus w winproladder z parametrami: Zapis na MasterData rejestr "R10" i "R11"(w domyśle jako druga wartość data size) Slave data to 441217 i data size: 2 Nie wiem dlaczego data size dla tej funkcji ma wartość 2 Odniesienie do falownika dla zarządzanego parametru to: Czas przyspieszania...
Witam. Mam problem z połączeniem rejestrów 74HC595 w kaskadę. Niby robie tak jak opisano w książkach i jak podaje się na internecie ale nadal nie wychodzi. Może najpierw kod programu (kod zawiera sprzętową i programową obsługe SPI, korzystam ze sprzętowej) : http://obrazki.elektroda.pl/3414758100_1... Połączenia G,RCK,SCK,SCLR w dolnym...
Albo wręcz zrobić naked i wykorzystać jakiś rejestr sprzętowy. Co prawda jest to 16 bitów. Ale można to zrobić albo w dwóch 8 bitowych- żeby było atomowo albo jako Atomic Block.
[syntax=c] void ds1307_init() { i2c_start_hard(); i2c_write_hard(0xD0); // adres slave i RW = 0 do RTC i2c_write_hard(0x00); // adres rejestru 0 i2c_write_hard(0x00);// zerowanie sec i CH i2c_stop_hard(); i2c_start_hard(); i2c_write_hard(0xD0); // adres slave i RW = 0 do RTC i2c_write_hard(0x07); // rejestr control i2c_write_hard(0x80);// wylaczenie...
A oto fragment kodu odpowiedzialny za obsluge TWI: //I2C void I2C_init( unsigned int adres) { TWBR=0x20; TWAR = adres ; // rejestr z adresem slave TWCR=0x45; TWSR=0x00; } //************* //********************** SIGNAL (SIG_2WIRE_SERIAL) { Status_I2C = TWSR&0xFC; switch(Status_I2C) { //TRANSMITTER case 0xA8://odebrano bit startu i bajt adresu do odczytu...
a iic nie chce Niestety to trochę zbyt mało powiedziane. Adresy rejestrów TWI są inne, przerwanie jest gdzie indziej. Wypadałoby prześledzić krok po kroku obie wersje programów w miejscach gdzie następuje inicjalizacja i jakieś operacje związane z TWI. Błąd może być też "czeski" związany z wpisami w plikach nagłówkowych (adresy, sposób dostępu). Czy...
W każdej funkcji i2c stosuje czekanie na zwolnienie flagi. To nie to samo co odczyt bitu potwierdzenia. Ty po prostu czekasz tylko na zakończenie transmisji bajtu. Informacja o wysłaniu (lub nie) przez układ slave bitu potwierdzenia znajduje się w rejestrze TWSR po zakończeniu transmisji bajtu wpisanego do TWDR i jest ona bardzo istotna, bo dzięki...
Napisanie własnej biblioteki nie jest takie proste zwłaszcza jak jesteś początkujący. Polecam ściągnąć darmową bibliotekę NModbus W twoim przypadku będzie to wyglądało wtedy tak: [syntax=csharp]namespace NModbus { class SerialMaster { static void Main(string[] args) { ModbusSerialAsciiMasterReadRegisters(); } public static void ModbusSerialAsciiMasterReadRegisters().....
Witam! Mam za zadanie stworzyć symulację automatyzacji magazynu w C#. Polegać to ma na tym, iż stany czujników odczytywane są z aplikacji i wystawiane na modbus oraz dodatkowo za pomocą wartości z coli-ów można uruchamiać elementy sterujące (np. taśmociąg) Wykonałem całą aplikację, a jej wynik przedstawia obrazek niżej http://obrazki.elektroda.pl/4094706800_1...
Master wysyła ramki z zapytaniem o status wykonania rozkazu Jakiego rozkazu ma do tego używać? Przykładowa sytuacja: Master wysyła rozkaz WRTE_HOLDING_REGISTER (0x06) Slave obiera sprawdza poprawność ramki (suma kontrolna, rozkaz, zakres adresów, poprawność danych) i odsyła ramkę zwrotną, rozpoczyna się wykonywanie rozkazu (skutkujące przepisaniem...
Zapoznaj się z AVR które maja TWI np AT MEGA8 , (www.atmel.com) to bedziesz miał IIC 400 kb albo możesz jeśli jeszcze chcesz szybsze zrobić to z pojedyńczych bramkach i rejestru przesównego ( nawet nie było by dużo tych TTL/CMOS) widze to tak jeden przerzutnik do detekcji start resetuje rejestr szeregowy i licznik do 9, po przejściu 9 bit licznik strobuje...
Witam.Musze zrobic monitoring magistrali i2c.Musze to zrobic na procesorze PIC16F877.Ma on wbudowany interfejs i2c (w trybie slave i master) MSSP.Chce uzyc trybu slave do monitoringu i2c.Problem jest taki ze w monitorowanej przeze mnie magistrali jest wiele ukladow o roznych adresach.Kolejnosc wywolywania tych ukladow jest dla mnie nieznana gdyz ta...
No i przecież nie jest rozłączny?? Zawsze po funkcji zapisu występuje funkcja odczytu(chyba że czegoś nie widze) W masterze odbywa się to od razu. Natomiast w slave (który i tak musi czekać z wysyłką na clock z mastera), rejestr DR jest ładowany już przed rozpoczęciem komunikacji. Także w momencie pojawienia się clocka dane mogą być od razu wysyłane.
Dodałem w Attiny2313 linię $baud = 9600 - Ustaw tryb slave w ATmega (I tak jest tylko odbiornikiem), będzie prościej, inaczej linie MOSI i SCK będą walczyć na Vcc i GND... ;) A czasem nie jest on już ustawiony ? tzn w MSTR w rejestrze SPCR domyślnie jest ustawiony na 0 czyli tryb slave. Może pokaże Panu ten rejestr : http://obrazki.elektroda.pl/4179069900_1...
A które urządzenie jest jako Master ? Bo jeżeli AVR to niema żadnych problemów, bo zegar wysyła master. Gdyby był jako Slave to przy 2 bajtach też nie powinno być problemu bo jak już ktoś wspomniał jest jeszcze rejestr przesuwny do którego dane są ładowane jak bufor jest jeszcze zajęty. Po odczytaniu danych z bufora dane z rejestru natychmiast przepisywane...
Spróbuj w kodzie Slave usunąć instrukcję SPIINIT. No to już jest jakaś wiedza szamańska ;) Co do usunięcia przerywań w kodzie Slava, jak rozumiem liczysz na to, że Slave w końcu sobie "trafi" z odczytem, ponieważ nie będzie mógł odczytać rejestru podczas transmisji, a to powoduje konieczność wydłużenia opóźnienia w kodzie Mastera. Taka metoda nie jest...
Tablica LUMEL DL 12. Dokumentacja na foto. Dodatkowo przesyłam programik który służy do konfiguracji. Mam ustawione tak: Tryb 8n1, Prędkość 9600, Adres 1. Wiersz 1 rejestr 7501 , wiersz 2 rejestr 7502. Urządzenie dołączone TimeOut 500, urządzenie 1: adres 1, adres bazowy 7501, liczba rejestrów 1, typ rejestru int. , urządzenie 2 : adres 2, bazowy 7502...
Jak z poprzednich? Jest jeden master, który steruje 20 układami slave. Ponieważ żaden sygnał nie przechodzi przez SPI poszczególnych procków, nie jest regenerowany. Ponieważ nie wyobrażam sobie 20 modułów podłączonych do jednego mastera 20 cm przewodami, z konieczności połączenia będą znacznie dłuższe lub dłuższe + wiele rozgałęzień. Tak, czy tak bardzo...
Od wczoraj męczę się z problemem dwukierunkowej transmisji po SPI. Zegar SPI zatrzymuje się po wysłaniu 8 bitów danych przez MOSI i za nic w świecie nie próbuje wygenerować kolejnych 8 cykli zegara aby dać szansę odpowiedzieć układowi. Układ slave żyje, ponieważ wysyłając drugi raz dane 0x00 tą samą metodą na linii MISO dane odpowiadają wartości z rejestru...
I gdzie tu problem ? właśnie to jest rozwiązanie problemu. Cykl zapisu wymaga owych >= 5ms przed następna operacją A skąd Ty wytrzasnąłeś te >=5ms :?: Czyżby w tym przypadku, slave był pamięcią eeprom :?: :arrow: retner Gubi Cię pewność siebie ;) Założyłeś, że transmisja przebieg bezbłędnie i slave jest zawsze gotów na transmisję, a Twój master, totalnie"olewa"...
Witam mam taki problem. Pod panel HMI LS eXP40-TTA/DC mam podpiętych 17 sterowników z każdego sterownika odczytuje cyklicznie co 10 sec. po ok 5 rejestrów ( temperatura i stany wyjść przekaźników w sterownikach). Wszystkie dane wyświetlane są na ekranie głównym HMI i wszystko działa ładnie ale w przypadku wyłączenia kilku sterowników (wyłączając im...
Wysyłanie danych działa... Jesteś tego pewien? Funkcje, które przedstawiłeś w ogóle nie korzystają z rejestru TWSR, więc nie wiesz, co dzieje się na magistrali. Nie sprawdzają nawet, czy układ slave odpowiedział bitem potwierdzenia. Samo wysłanie danych na magistralę nie oznacza, że transmisja przebiegła prawidłowo i że układ slave prawidłowo odebrał...
Rozumiem, że mają tą samą podstawę czasu (preskaler i ARR), dlatego interpretowałem to w taki sposób, że rozróżnieniem dla poszczególnych kanałów jest właśnie wartość Pulse. W dokumentacji biblioteki HAL (podrozdział 65.1.2 str 868) w konfiguracji Output Compare nie widzę nic odnośnie połączenia kaskadowego dla timera. Natomiast w dokumentacji procka...
Witam, mam problem z utworzeniem Modbus Slave na RS232 ze sterownika OMRON SYSMAC CPM2A. Przyklad pobralem stad: http://www.myomron.com/index.php?action=... , a dokladniej z tego linka: http://www.myomron.com/index.php?action=... . Uzywam opcji z portem RS232. Wykonuje po kolei, nastepujace operacje: 1. Wgrywam pamiec zgodnie...
Witam. Nie potrafię skonfigurować falownika do pracy z pulpitem operatorskim. Może mi ktoś pomoże? Pacjenci to: 1. Falownik firmy LG iG5A 2. Pulpit operatorski AS43TFT07xx Co zrobilem 3. Ustawiłem pulpit jako master falownik jako slave + parametry komunikacji 4. W pulpicie dodałem rejestr do komunikacji z falownikiem o numerze 40005 i zdefiniowałem...
Ale dałem plamę :D Oczywiście, że adresu slave nie wpisuje się do TWAR. Naprawiam swój błąd. Tak jak napisał Jj_Johnys adres podaje się po warunku startu. Dla odczytu będzie to wyglądało tak: 1) start 2) wyslij adres urzadzenia do odczytu 3) wyslij numer pierwszego rejestru do odczytu 4) ponowiony start 5) odczytaj bajt danych i wyslij ack jesli kolejny...
Zdefiniuj nie odbiera -> dostaje same zera, czy same jedynki? Czy włączasz najpierw S, M, czy wszystko razem? Problem jest tego rodzaju, że powinieneś jakoś synchronizować transmisję, bo M nadaje niezależnie od tego, czy S słucha. Jeżeli S np. nie zdąży odebrać bajtu, to wszystko Ci się rozjedzie. Rejestr SDR jest wspólny, dla nadawania i odbioru. Jeżeli...
W układzie slave ustawiłem bity tak samo jak w masterze(oczywiście poza bitem MSTR) inicjacje wyrzuciłem przed pętle i to samo. Po skasowaniu tych poleceń PORTB &= ~_BV(0); i PORTB |= _BV(0); układ działa normalnie jednak cały czas SS jest w stanie niskim. Poleceniem SPDR=0 chciałem wyczyścić rejestr SPDR skasowałem je również nic nie dało;/. Co...
Chodzi o to ze linie SDA i SCL odpowiednich wyjsc procka ktory ma byc monitorem. Nastepnie w sposob pasywny, wykorzystujac sprzetowy interfejs procka obserwuje jakie bajty sa przesylane po magistrali. Wykorzystywanie sprzetowego interfejsu rozumiem jako wykorzystanie dostepnych rejestrow obslugujacych magistrale czyli TWAR, TWBR, TWCR, TWDR i TWSR....
Witajcie forumowicze, może nie udzielam się tu zbyt często, ale tym razem potrzebuję pomocy i nie wiem już do kogo mógłbym się zwrócić. Mam 2 x ATmega8. Łączę je między sobą przez SPI. Master posiada dodatkowo UART do rozmawiania z konsolą na PC, slave ma dołożoną jedną diodę do sprawdzania najstarszego bita w przesłanym bajcie (tak w ramach kontroli)....
Witam. Nie wnikałem za bardzo w kod ale.. zacznij od uproszczenia funkcji odpytywania -tj wysyłania ramek przez UART. Zrezygnuj na początku z przerwań i po prostu wykorzystując pooling wysyłaj w pętli ramki. (Jak dojdziesz co jest nie tak, wtedy zaimplementuj przerwania:) Np by odczytać wartość rejestru spod adresu 100 wysyłasz: Bajt1 (Adres modbus)...
Jezeli chodzi o bufor wysyłający dat_tx to musisz rozwiązac prosty problem. A mianowicie to, że bufor może zostać zapisany z zewnatrz oraz jednoczesnie z kazdym taktem SCK przesuwa się. Najprosciej rozwiazac to poprzez uzycie multipleksera. Niestety w twoim ukladzie jest dodatkowy haczyk! Poniewaz prawdopodbnie wykorzystujesz TYLKO sygnał zegarowy SCK...
Witam, Mam pewnien problem ze zrozumieniem SPI w STM32F0 (dokładnie STM32F030C8T6). Mianowicie, przy takiej konfiguracji: void SPI_Set(void) { RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; // wlaczenie zegara dla SPI1 RCC->AHBENR |= RCC_AHBENR_GPIOAEN; //wlaczenie zegara dla portu A (ponowne) GPIOA->MODER |= (GPIO_MODER_MODER4_1...
Witam, mam następujący problem. Próbuję odpalić komunikację na kształt SPI na tym uC a procek nic nie wysyła. Jak podejżałem nóżkę MISO (uC pracuje jako Slave) to chaotycznie zmienia stan, tak jak by się resetował. Następnie wpadłem na pomysł, że wyłącze WDT, i dalej to samo. Niewiem zabardzo co zrobić, próbowałem pisać w asm, ale nieznam za dobrze...
Hmm, a może Ty byś pokazał kawałek kodu, który napisałeś? Nie wiem czy korzystasz z rejestrów czy SPL'a, ale wrzucam kawałek kodu dla SPL - sprawdzony w realu. [syntax=c] /** ****************************************... * (at)file Project/STM32F4xx_StdPeriph_Templates/ma... * (at)author MCD Application Team * (at)version...
Twój projekt ma 29 kB, nie widzę powodu dla którego nie dałoby się go wstawić na forum. Link do dropboxa jest niezgodny z regulaminem. Krok 0: Inicjalizacja kanału komunikacyjnego rozkazem SASI jest OK. Rozkaz LD dla licznika wykona się tylko przy ACC = H, tutaj tak jest, ale dobrym zwyczajem jest dodanie ACC H przed LD. Zamiast IP_channelA można użyć...
Zadeklarowałeś: adxl_init() w której wysyłasz bufor do ADXL345: ...ponieważ już podczas wysyłania pierwszego bajtu danych z konfiguracją ( adxl_init() ) program zawiesza się nie wychodząc z pętli TWI_stop(), co zaznaczyłem w kodzie programu. Jak sprawdzasz, że akurat ta linijka sprawia problem? Sam fakt wpisania odpowiednich wartości do TWDR i TWCR...
Nie widzę deklaracji zmiennej received_len , ale zakładam, że nie zapomniałeś użyć słowa kluczowego volatile ? TWI_bufPtr zawiera raczej indeks ostatniego elementu w tablicy TWI_buf , a nie ilość odebranych bajtów. Jak odbierzesz 1 bajt, to TWI_bufPtr będzie równy 0. EDIT: Teraz zauważyłem, że chyba się pomyliłem. TWI_buPtr jest jednak zwiększony po...
Nic nie trzeba przestawiać. UARTem jako slave ne generujesz przecież resetu. Pisałeś o wykrywaniu resetu przez uart. Jak jednym uartem wykryję wartość bitu, reset, zgłoszenie alarmu (przedłużony reset) i reset overdrive? Dodano po 18 chyba, że masz kuszącą dla mnie ofertę finansową :) Jeżeli uartem załatwisz wszystkie powyższe stany magistrali to,...
Witam, Mam problem z nawiązaniem komunikacji za pomocą SPI z żyroskopem. Korzystam z płytki testowej ZL11AVR oraz żyroskopu ADIS16100. Chcę odczytać dwa bajty z żyroskopu(SLAVE) i wysłać je przez USART na komputer. Jednak cały czas w otrzymuje znak 0xFF Nie mam pojęcia dlaczego komunikacja SPI mi nie działa. Piny podłączone mam następująco: SCLK <->...
Witam. Mój mikrokontroler (atmega8) odbiera dane z czujnika analogowego poprzez pin ADC3, a następnie przetwarza je i wysyła przez RS232 do mojego komputera. Tu wszystko działa :) Pojawia się problem gdy do układu podłączam minIMU-9 v2. Składa się on między innymi z żyroskopu z którego chcę pobrać dane. Mam problem ze znalezieniem urządzenia slave(l3gd20)....
Przeznaczenie: Konfiguruje pracę programowego interfejsu I2C jako urządzenia podrzędnego (Slave). Ta instrukcja korzysta z biblioteki I2CSLAVE.LIB, która jest rozprowadzana oddzielnie przez MCS Electronics. Składnia: CONFIG I2CSLAVE = adres 'Instrukcja Config I2cslave automatycznie włącza globalny system przerwań! Config I2cslave = &B01000000 'czyli...
Witam Mam kilka pytań związanych z I2C na które nie jestem sobie wstanie odpowiedzieć. 1. Mam taką funkcę: [syntax=c] void I2C_SetBusSpeed(uint16_t speed) { speed=(F_CPU/speed/100-16)/2; //speed=TWBR*4^TWPS uint8_t prescaler=0; while(speed>255) //Oblicz wartoœæ preskalera { prescaler++; speed=speed/4; }; TWSR=(TWSR & (_BV(TWPS1)|_BV(TWPS0)))...
Dziękuje za odpowiedź. Zdecydowałem się jednak na komunikację poprzez I2C. Jeśli prędkość nie będzie wystarczająca to spróbuje po tym SPI. Jednak niestety natrafiłem na następujący problem. Napisałem sobie kilka funkcji pomocnych przy obsłudze I2C. Chcę odczytać dane tylko z żyroskopu na razie z jednej osi. Podczas odczytywania cały czas wyświetla mi...
Witam, Piszę tutaj gdyż jesteście moją ostatnią deską ratunku. Mam problem z układem NRF24L01. Transmisja pomiędzy dwoma takimi układami przebiega bezproblemowo, jednak dodatkowo chciałbym skorzystać z opcji pakietów potwierdzających, czyli PAYLOAD_ACK. Po otrzymaniu zwykłego pakietu na urządzeniu slave (odbierającym), odsyłam z powrotem jakiś pakiet...
W zasadzie freemodbus to implementacja dla urządzeń slave. Ale master może wpisywać dane do Slava .. po prostu ustawia rejestry w urządzeniu Slave. Poszukaj rozpiski - dotyczącej Modbusa - poczytaj zrozumiesz o co chodzi.
Szukaj informacji o mapowaniu pinów w XMega. Twoja wersja (A3) obsługuje mapowanie pinów portu SPI, co może ułatwić Ci zaprojektowanie PCB. Na blogu niestety nie ma artykułu na ten temat. Remapowanie wyjść IO Niektóre mikrokontrolery XMEGA (serii A3, C, E) posiadają związany z portem IO specjalny rejestr REMAP. Rejestr ten umożliwia zmianę przyporządkowania...
Popatrz w notę tam powinno być napisane co się stanie kiedy podasz "0" na SS i układ zacznie "myśleć". Może np. otworzyć sobie porty 3-stanowe więc takie zachowanie może spowodować "myślenie" innych układów. SPI jest proste jak konstrukcja cepa. Twój pin SS kiedy pojawi się tam zero daje tym samym sygnał do odbiornika że ma przygotować się na transmisję....
No cóż poprawiłęm program trochę na miarę moich umiejętności. Dodałem trochę komentarzy, a efekt wrzucam w tym poście. Pomoc by mi się naprawdę przydała. Po kompilacji nie ma błędów ani warningów. #include <avr/io.h> unsigned char word = 0x01; // Adres komórki pamięci unsigned char dane = 0x7A; // Dane wysyłane i odbierane z pamięci int bitstartu(void);...
Witam forumowiczów, zacząłem realizować projekt zegarka, kalendarza i termometrów z owego linku: http://obrazki.elektroda.pl/6128170300_1... Proszę o porady i sugestie jak można rozwiązać ten problem :P
Podejrzewam logiczne uszkodzenie partycji systemowej. Inny system XP nie widzi plików NTFS i chce formatować uszkodzoną 40GBpartycje >widizi pliki *.raw< (na dysku seagate 7200rpm 8mb cache ata) czego nie czynię by nie utrudniać odzyskania plików lub całej partycji. Przyczyną mogła być niezgodność systemów. System Windows 95 z dysku slave 6GB...
Witam Ustalmy coś "palo". 1. Jeżeli miałeś na początku tapetę a teraz nie stety masz czarne tło to nic się tak naprawdę nie zmieniło. Jesteś dalej w punkcie w którym byłeś. 2. Opisz dokładnie lub postaraj się ułatwić nam i sobie życie Nie mamy służb specjalnych pod ręką, która ciebie obserwowała przez ost. 24 godziny : - a - co zrobiła przed tym co...
Witam, Posiadam płytkę SAM3S-EK, z mikrokontrolerem AT91SAM3S4C. Ostatnio próbowałem uruchomić interfejs sprzętowy TWI, lecz niestety bezskutecznie. Podłączyłem do układu pamięć EEPROM 24C02 i najpierw próbuję coś z niej odczytać. Funkcja inicjująca interfejs TWI: [syntax=c]void TWI1_init(void) { PIOB->PIO_PDR|=(PIO_PB4)|(PIO_PB5);//... PB5-TWCK1...
To UL przy każdej stałej, to zapewne po to, żeby kompilator wiedział, że zamiast 32 bitów ma wygenerować 32 bity? Sarkazm jest raczej zbędny. Niepotrzebnie sprawdzasz tak dużo znaczników SPI - wystarczy TXNE przed zapisem, RXNE przed odczytem i BUSY przed zdeaktywowaniem SS. Ale chyba tak napisane sprawdzanie flag nie za bardzo wpływa na niekorzyść...
slave rejestr atmega slave slave output
podciśnienia odkurzacze canon zresetować pilarka pilarka gaśnie wolnych obrotach
odkurzacz electrolux ultra silencer instrukcja telewizorów thomson
Naprawa rozlanego wyświetlacza LCD – czy możliwa bez wymiany? Samsung, LG, matryca LCD Samsung BN44-00339A Power Supply Board Issues and Fixes