Pamiętaj, że rejestry SPI, w zależności czy to jest M/S, czy realizujesz przez USART, mają bufory. Jeśli więc coś nadajesz, a nie odczytasz SPDR, to ta wartość i tak tam jest, zostanie odczytana przy kolejnej okazji. Stąd możesz mieć opisane problemy z odczytem jakiś wcześniej przesłanych bajtów. Stąd też najlepiej albo jednocześnie zapisywać i odpisywać...
IMHO jeśli się krzaczy to wyraźnie jest problem z rzeczywistym baudrate. ATMega jest taktowana z zewnętrznego kwarcu? Przy synchronicznym USART normalnie ustawia się szybkość, przy czym slave jest taktowany z mastera, więc na slave szybkości ustawiać nie trzeba.
Witam uruchomiłem połąłczenie między prockami na SPI MASTER I SLAVE. ATMEGA 8535 - Master ATMEGA 8 - Slave. Jeśli ktoś chce programy do obsługi to proszę o info. Teraz będę łączył trzeciego proca jak azdziała to podzielę się informacjami. Dziękuję wszystkin za pomoc i wymianę informacji w temacie komunikacji. Dodano po 41 Witam uruchomiłem połąłczenie...
Witaj , wydaje mi się że rozwiązanie problemu leży w pkt 16.3.2 datasheet'u. Jeśli urządzenie jest w trybie master a na pinie SS czyli PB4 będzie stan niski to atmega interpretuje to jako istnienie innego urządzenia w trybie master i przełącza się w slave. Spróbuj utrzymać na pinie PB4 stan wysoki (podciągnij go) lub sprawdź czy nic w układzie nie wymusza...
Wystarczy, że jedna atmega będzie masterem a reszta to slave'y (lub w twoim wypadku 1). Master musi wysłać komendę i zacząć nasłuchiwać na odpowiedz [i tak w kółko] - a slave cały czas nasłuchiwać i nadać komunikat tylko po otrzymaniu komunikatu od mastera po czym znowu tylko nasłuchiwać. Można to zrealizować bez przerwań.
Zastosuj bufory 74HCT125 na liniach SPI sterowane z Mastera i gdy Master je wyłączy to Slave nie będzie dostawał "dziwnego" zasilania po liniach SPI.
Może przedstawisz kod programu?
Witam, Ostatnio sporo się piszę o magistrali CAN. Czy korzystając z ATMEGA 168 i układu MCP2515 można zbudować stację slave i podpiąć do przemysłowego mastera. Czy ktoś z Was coś takiego zrobił? Gdzie szukac informacji na ten temat. Pozdrawiam
SPI działa tak, że tylko w trybie master generuje sygnał zegarowy. Taka jest "natura" interfejsu;) I jeśli ATmegę wprowadzisz w tryb slave, to będzie ona oczekiwała na sygnał zegarowy od układu master.
No ale w miarę wysyłania z MASTERa do SLAVEów, każda ATMega Slave odsyła dane do MASTERa (czy coś wpiszesz do SDR czy nie, najwyżej wyśle krzaki). Czyli będziesz miał jedno wielkie zwarcie na linii MISO. Jeżeli chcesz tylko wysyłać to nie podłączaj nigdzie pinów MISO. Wtedy to przejdzie.
Co prawda Kolega pisał, że szuka czegoś co będzie działać na jednej linii, ale może warto by się zastanowić nad I2C (TWI)? Zajmie dwa piny, a nie będzie problemu ze slave'ami. Jedna ATmega będzie masterem, każdy slave będzie miał swój adres i po kłopocie. Komunikacja jest ładnie dopracowana sprzętowo, a program do obsługi tego wszystkiego nie powinien...
RS485 to tylko standard elektryczny. Zwykle po tym standardzie dane przekazuje się za pomocą transmisji szeregowej, z odpowiednią hierarchią master/slave. Po stronie komputera będzie więc to port COM/RS232 (może być wirtualny na bazie FT232RL) + odpowiedni interfejs sprzętowy.
Witam, Arbitraż na szynie I2C jest potrzebny tylko w przypadku implementacji układu MultiMaster. W przypadku gdy jest jeden Master i wiele układów Slave (najczęściej spotykany przypadek) arbitraż nie jest potrzebny. W układach ATMEGA szyna I2C (TWI) jest zaimplementowana sprzętowo ale tylko na najniższym poziomie (typu "wyślij START, wyślij STOP, odbierz...
MISO z MOSI nie powinno się zamieniać. Wynika to z nazwy - MOSI = master output slave input, miso = master input slave output.
Czy jeżeli ustawiłem długość słowa na 8bitów to bufor UDR przyjmie każda 8bitową liczbę? Każdą poprawną z bitem startu i stopu. Są symulatory MODBUS'a działające jako master lub slave.
tak tylko jeden i tylko oznajmia innym masterom że teraz mogą pracować. następnie czeka aż ten master któremu pozwolono działać zamelduje koniec działania. jeżeli nastąpi zwiecha mastera to jest zonk, lecz trzeba po prostu dobrze napisać soft. przy master'ze masterów jest sygnalizacja piszczykiem i lcd który pokazuje który master zdechł. w ciągu 3-ch...
Układ 74LS07 zawiera bufory z wyjściem OC - które w tym schemacie jest podciągnięte do 3V3 (przez rezystory 4k7). Na tym polega to dopasowanie. Zauważ, że na schemacie który zamieściłeś - linię MISO (Master Input Slave Output) masz odłączoną, więc nie masz informacji z układu który podłączasz (nie odbierzesz nic od twojego RFM70 jeśli jej nie podłączysz...
Na tym moim schemacie jest niestety błąd, Rezystor R33 1K - zrobione podciąganie do GND (bez sensu niestety) powinno być podciąganie do VCC. Poza tym jest ok i działa to właśnie tak w rzeczywistym układzie - zarówno w modułach Slave jak i z układem FT232RL, który stanowi przejściówkę USB/RS485. Nie wiem co poza tym drobnym błędem może być niezrozumiałego?...
Sprawdz też czy w czasie wysyłania na końcówce ss (PB.2) jest stan wysoki. o ile się nie mylę to jeżeli w czasie pracy master pojawi się tam stan niski to układ przechodzi do pracy slave.
Bo jest SPI programowe. Tego się nie konfiguruje, tylko w programie odpowiednio steruje piami. W locie. I samo w locie wychodzi czy to MASTER czy SLAVE jest.
No nie wiem jakie to procesory, ale można by je spiąć za pomocą drugiego sprzętowego SPI (UART in SPI mode - bo zwykły UART to trochę za wolno, a tymczasem tu mamy transmisję 1 bajta danych w kilku taktach uP) i robić komunikację, żeby master nakazywał slaveowi odczyt - to już moim zdaniem lepsze rozwiązanie, z tym, że slave będzie wtedy raczej zajęty...
Namieszałeś :wink:. ...odpowiada poprawnie na zapytania Master-a ale po kilku minutach zaczyna krzaczyć. Ale co śmieszniejsze krzaczenie widać na LCD Mastera , ale kiedy jednocześnie podglądam w terminalu na PC co się dzieje w sieci to ów moduł odpowiada jednak poprawnie To co "krzaczy"? Master dostaje poprawną odpowiedź i "krzaczy"? Czy Slave wysyła...
Cały problem jest w tym żeby te dwie ATmegi się zsynchronizowały. Przerwanie od SPI występuje po zakończenia transmisji pierwszego bajtu. Zanim nastąpi obsługa przerwania to pierwszy bajt zostanie utracony. Nie mamy też gwarancji że dwie Atmegi "wystrzeliły" :) równocześnie i Slave nie czyta np. 4 bajtu nadanego przez Mastera. Jeżeli to by była np....
Zdecydowanie nie polecam tego typu sterowania magistralą I2C. Jest to magistrala typu "wired-and" i każdy nadajnik i odbiornik powinien mieć I/O typu "open collector". W przypadku zewnętrznego podciągnięcia pinów magistrali do Vcc sterowanie magistralą I2C lepiej jest rozwiązać w ten sposób, że bity SDA i SCL w rejestrze PORTx (w Twoim przypadku PORTB)...
No zobaczę. Właśnie próbuję sam napisać ten UART. O tym SPI też myślałem, ale jako np. atmega jako master i ileś attiny2313 jako slave'y, każdy slave odbiera swoim uartem, analizuje dane i daje przez spi.
Witam, Mam taki dylemat. W projekcie muszę wykorzystać Attiny2313 i Atmege32. Będą musiały ze sobą się komunikować. Wybrałem, że za pomocą SPI. Attiny jako slave i atmega jako master. Będzie jeszcze jeden slave - enc28j60. Połączyłem MOSI z MOSI, MISO z MISO, SCK z SCK no i dodatkowo dwie inne linie, INT w jedna, i INT w druga stronę - tak w razie czego...
Jedne ważne pytanie, czy ktoś wie kto w transmisji SPI ma być Master a kto slave? W przykładach jest niby że Enc pracuje jako Slave, a Atmega jako master // initialize SPI interface // master mode and Fosc/2 clock: SPCR = (1<<SPE)|(1<<MST... SPSR |= (1<<SPI2X); Czy nie powinno być czasami tak, że Masterem...
Witaj Nie ma to znaczenia czy pracuje jako slave czy master i to chyba w żadnym protokole. jeśli juz jest jakieś taktowanie synchronizujące to i tak generowane jest przez Master'a Pozdrawiam
Witam, Mam system modułów ZigBee, gdzie występuje jeden Master i wiele układów Slave. Master obsługiwany jest przez procek ATmega dzięki interfejsowi TWI (I2C). Układy Slave mogę wysyłać dane w dowolnej chwili do Mastera a ten informacje przesyła do mikrokontrolera-hosta, który albo aktualizuje sobie stan znanych mu układów Slave, albo pozwala użytkownikowi...
2. RS232 to połączenie tylko dwóch urządzeń. Przynajmniej z założenia. A jeśli się uprę, i podepnę pod DTE (komputer) 16 urządzeń (DCE)? Na wysłaną daną oczywiście zareaguje tylko jedno DCE, które dokona programowej identyfikacji adresu, ukrytego, na 4 pierwszych bitach otrzymanej danej? Kierunek PC>>Odbiorniki OK pod warunkiem, że obciążalność RS232...
Witam. Master to programator, a slave to uC, czyli MOSI to wyjście z programatora i wejście do uC i odwrotnie z MISO. !SS jest używany w przypadku komunikacji z większą ilością układów. Wtedy stan wejścia !SS decyduje czy odbierać dane, czy nie (Slave Select). Ciebie to narazie nie interesuje, więc niech wisi :). Teraz Cię wystraszę. Również próbowałem...
wysłać poprzez rs485 polecenie np: firmware_1 i to polecenie było by znakiem że moduł 1 będzie aktualizowany i pozostałe moduły mają siedzieć jakiś tam określony czas tylko na nasłuchu i czekać aż moduł 1 potwierdzi że jest zaktualizowany . . A dlaczego miałyby jakoś specjalnie siedzieć na nasłuchu - a co tak normalnie sobie nadają wg życzenia ? ;)...
Witam, Posiadam dwa aplikację zaprogramowane na dwóch mikrokontrolerach Atmega 328p-pu: 1. Pierwsza to obsługa magnetometru na szynie TWI, działająca na zewnętrznym kwarcu 16 MHz, Baudrate:9600, TWI 40kHz 2. Druga to obsługa żyroskopu na szynie TWI, działająca na wewnętrznym rezonatorze 8MHz Baudrate:14400, TWI 40kHz Chciałbym scalić te dwa programy...
Witam wszystkich! 1. Czy przy komunikacji dwóch procesorów poprzez UART można dopuścić sytuację, że jeden procesor (atmega 8 ) będzie pracował na wewnętrznym oscylatorze z tą samą częstotliwością co atmega 16 na rezonatorze kwarcowym ? Tak, ale możliwy transfer będzie zależał od dokładności tego oscylatora - wewnętrzny jest mniej dokładny. Config Com1...
Witam serdecznie W sieci znalazłem przykład dla modbus rtu tylko avr jest jako MASTER [url=https://wiki.mcselec.com/bavr/MAKEM... a potrzebuję zobaczyć jak wygląda przykładowy program gdzie mikrokontroler jest jako SLAVE w modbus RTU czyli dysponuję jakimś adresem gdzie mogę zapisywać i odczytywać z mastera
Mam pytanie dotyczące UART i RS485 jak można zrobić taki układ: dwie atmegi, dwie diody i dwa przyciski. przycisk zapala diodę w przeciwnym uC przez RS485. Jak rozwiązać problem zamiany pary slave-master na master-slave niejako dynamicznie?
W sumie sprawa prosta. Oba procesory łączysz magistralą I2C (SCK obu procesorów razem i SDA też razem połączone). Atmega 8 musi pracować jako MASTER natomiast ATmega16 jako SLAVE. Czyli procesor ATmega8 będzie wysyłał dane do ATmega16. Oczywiście można i odwrotnie to zrobić tzn. że ATMega16 jest MASTER i ATmega8 SLAVE. Wówczas to ATmega16 będzie zgłaszał...
Program się nie wiesza. Nie odpowiada tylko na swój adres. Podstawiłem układ master na ATmega, zamiast urządzenia X, który odpytuje mój slave podobnie jak X i transmisja rusza bez problemu. Tak jak napisałem wcześniej, kod jest z noty, wiesz może którymi błędami w statusie powinienem się zainteresować? Na razie dodałem reset magistrali przy błędzie...
Czy ustawiłeś jedną atmege jako master a drugą jako slave?
Tzn. chyba w helpie Bascoma widziałem taki rysunek z wieloma układami SLAVE, tylko ( chyba odnosił ) się do SPI SOFT. Czyli zarówno w SPI SOFT jak i HARD nie ma ograniczenia układów SLAVE ? Tzn. jedynym ograniczeniem jest ilość pinów potrzebnych do identyfikacji układu, czyli CS ? A czy SPI SOFT i HARD mogą razem wykorzystywane ? Tzn. np w takiej sytuacji...
poto max485 bo jest duża odległość i będzie docelowo więcej odbiorników 1 x master x x slave
Analizator dawal wyniki niejednoznaczne (tzn losowe fazy transmisji w trakcie zwiechy). Poradziałem sobie przez reset interfejsu i dotaktowanie razem po stronie mastera. Nie wiem dlaczego samo dotaktowanie, lub samo zresetowanie mastera nie dawało wyjścia i dlaczego master (i2c doskladnie bo master zyje) sie zawiesza. Dziwiaczny objaw - jeszcze z taką...
Witam, przepraszam, że sie nie odzywałem - pochłonęły mnie świąteczne obowiązki. Dziękuję za Wasze podpowiedzi. Udało się zmusić wszystkie czujniki do współpracy i wypuścić to w LAN. Jedyny problem jaki pozostał to jedna szyna SPI na której pracuje moduł Ethernet i powinien pracować wyświetlacz matrycowy. Niby to działa ale gdy chce coś wypuścić na...
A może linie od SPI, powinny być podciągnięte rezystorami ? Nie. Rezystory w szereg też nie, kondensatory tym bardziej... ;) Skupiając się na kodzie : - Dlaczego w ATtiny nie jest używane USI w trybie SPI ? Przykłady w C są w nocie katalogowej... (Three-wire Mode) - Gdzie jest ustawiany bitrate dla SPI mastera ? - Ustaw tryb slave w ATmega (I tak jest...
Witam Uruchomiłem kod z książki tmf`a do obsługi i2c w avr jako slave. Problem w tym, że o ile przesłanie pojedynczych danych działa doskonale. To jeżeli chcę przesłać dane na podstawie odebranej wartości to bit TWDR przyjmuje wartość adresu odbioru, a master zawiesza się. Przerwanie: [syntax=c]ISR(TWI_vect) { uint8_t status = TW_STATUS; switch(status)...
Witam, natknąłem się na następujący problem: w [url=http://www.propox.com/products/t_77... standardu wtyczki SPI widać czarno na białym, że są wykorzystywane sygnały: MOSI SPI - sygnał danych Master wy / Slave we, LED - Sygnał sterowania diodą LED i multiplekserem RST - Sygnał RESET układu docelowego SCK SPI - sygnał zegarowy MISO SPI...
Właśnie myślę nad takim rozwiązaniem, osiągami zajmę się później jak wszystko zacznie działać, nic tylko zostaje mi przystąpić do testów: Na początek, jedna atmega jako slave(SPI) + LCD, druga jako master(SPI) podlaczona po comie do PC't napisze proste softy do przesyłania i zobaczę co z tego wyjdzie czy transmisja będzie stabilna, także biorę się za...
LCD. Myślę, że dobrze. ATmega zostaje zaadresowana w trybie odczytu SLA+R (Slave Transmitter Mode, bo bit-0 będzie ustawiony), wystąpi przerwanie TWI a w rejestrze TWSR będzie wartość 0xA8 (Own SLA+R has been received; ACK has been returned). Teraz aplikacja powinna wczytać bajt do TWDR i go wysłać, bo to sugeruje adres w trybie odczytu...a tutaj Master...
Tak, da się. Jeden z procesorów (ważniejszy) jest zawsze masterem I2C, natomiast drugi, który uznasz za mniej ważny, konfigurujesz jako slave i nadajesz mu adres nie będący w konflikcie z niczym innym co jest podpięte do tych linii. I wtedy master może przesłać i/lub odczytać jakieś dane z układu slave, którym będzie druga "atmega".
Wiesz, nie tak łatwo znaleźć przykład na ATmega, w którym NIE MA komunikacji po UART (np. RS232 i połączenie z PC). Pozostaje dorzucić wyłączenie wyjścia po wysłaniu bajtu i oczekiwanie na odpowiedź po stronie MASTER i komplementarny kod po stronie SLAVE (czekamy na daną z master, wyłączamy odbiór, włączamy nadawanie, nadajemy, wyłączamy nadawanie i...
Witam mam problem - usiluje zrealizowac na atmedze 8 odczyt danych z tablicy po spi do mastera .. tylko nie jestem w stanie odpalic spi na atemedze w trybie slave tj : chce aby atmega wysylala ciagle dane mastera < nie uzywam MOSI w masterze > poprostu atmega robi swoje i podczas podania stanu 0 na pinie SS powinem odczytaj sobie bajty... ale...
Szanowni Koledzy, stanąłem w konieczności połączenia kilku procesorów magistralą I2C. Jako slave'y będą pracowały atmegi. Ogólnie przystosowane są do pracy jako mastery, ale wiem, że jest biblioteka, która może je skonfigurować do pracy jako slave'y, jednak masterem będzie inny procesor niż atmega. No i procesorów będzie więcej niż 2. Wobec tego zastanawiam...
WItam, czy możliwe jest zrealizowanie komunikacji między procesorem atmega 8 pracującym z wew oscylatorem 8mhz Jak już ci napisano w przypadku ATMegi nie jest zalecana praca z generatorem RC, potrzebny jest kwarc. Chyba, że... zastosujesz synchroniczny interfejs USART. Wtedy oprócz Tx i Rx masz jeszcze linię CLK. ATMega to całkowicie wspiera, a USART...
tadzik85 dziękuję za błyskawiczna odpowiedź. Próbowałem tego rozwiązania i niestety gdy w przerwaniu od SPI umieszczę flagę i bez względu gdzie realizuję odbiór czy w przerwaniu od timera czy w pętli głównej drugi bajt wraca do mastera czyli wydaje mi się, że ATmega nie nadąża z odczytem.
Witam, Temat wszędzie wałkowany, a jednak nigdzie nie znalazłem rozwiązania mojego problemu. Mam funckję, która w domyśle ma odbierać dwa bajty ze slave'a. Robi to tak: SPDR = addr; while(!(SPSR&(1<<S... d=SPDR; SPDR = addr; while(!(SPSR&(1<<S... d+=SPDR<<8; addr jako...
Nie możesz znaleźć żadnych sensownych informacji na temat OpenGL na ATmega8A, ponieważ to taka sama sytuacja jak brak wyników dotyczących ilości pole position w wyścigach Formuły 1 dla Fiata 126p. Nie ta klasa, nie ta liga. Brak sprzętowego dzielenia, nie mówiąc o braku FPU, dyskwalifikuje te uC z takich aplikacji. Podziwiam sama ideę karkołomnych kombinacji...
W Slave wpisujesz bajt do SPDR dopiero, gdy wchodzisz do przerwania. Czyli w momencie, gdy transmisja została już zakończona! (Nastąpiła wymiana danych DO i Z) To jest trochę dziwne, ale w przypadku Slave, w momencie wejścia do przerwania od SPI dane z bufora SPDR już zostały wysłane. Oznacza to, że w pewnym sensie trzeba przewidzieć co chcesz wysłać,...
Tak, są podciągnięte. Problem się robi po dodaniu tej jednej linijki. Wydaje mi się że to będzie problem ze zmiennymi. Dodano po 10 Wystarczy że np. usunę całe menu ustawiania zegara i wtedy adc wyświetla - ale przecież jakoś ten zegar muszę ustawiać. Podobnie ma się sytuacja jak zostawię ustawianie zegara a usunę linijki odpowiadające za wpis do pamięci...
Zbytnio nie rozumiem co ty tam podciągasz? :) Czy master i slave są podłączone w taki sposób?: RXD - TXD TXD - RXD GND - GND
A w jakim celu tak okrutnie komplikujesz zupełnie prostą rzecz? Potrzebujesz tylko masy, RX i TX, wspólnych dla wszystkich slave. Resztę łatwiutko załatwi oprogramowanie - każdą wymianę informacji rozpoczyna Master wysyłając polecenie z numerem Slave, z którym chce pogadać. Typ użytego uC nie ma tu żadnego znaczenia. Z drugiej strony - jeśli odległość...
fakt równoległe nie szeregowe wieczorem przetestuje bez rezystora i dam znać czy działą To może zadziałać wyłącznie pod dwoma warunkami: 1. Procesory wiedzą, który kiedy ma nadawać, tzn. że nigdy nie próbują nadawać dwa jednocześnie. Np. komunikacja jest typu master/slave i PC robi za nadzorcę. 2. TxD konfigurujesz jako wejście, procesor nadający ustawia...
Z tego co piszesz to najwyraźniej nie rozumiesz ani jednego ani drugiego, sorki, ale taka prawda. Przejrzyj noty aplikacyjne Atmela, masz tam ładnie opisane I2C master i slave. Zrobienie tego sprzętowo jest o tyle prostsze, że ATMega sama wygeneruje właściwe sygnały, robiąc to programowo nie będziesz wiedział czy problem leży w samej transmisji, czy...
No to juz twoja glowa zeby wiedzial, kazdy uklad ma zbior instrukcji ktore okreslaja co ma w danej sytuacji zrobic, np jak dostaje 0x45 to odpowiedziec 0x35 a jak 0x25 to zapisac nastepny bajt jaki otrzyma itd itp... Jako ze kazdy uklad ma swoj zestaw instrukcji, a avr takowego nie ma by moc pracowac w dowolnej konfiguracji, to sam musisz taki zestaw...
Dobrym rozwiązaniem byłby układ ADM2483BRWZ (RS485) + protokół Modbus. Aplikacje testujące znajdziesz w sieci (Modbus tester). Napisanie programu dla mikrokontrolera też nie jest niezwykle trudne. Najpierw napisz program dla slave (serwer), przetestuj go, no i potem można by napisać dla Master (klient).
Atmega jako interfejs SPI (dedykowane piny) posiada: PB5 SCK (SPI Bus Master clock Input) PB4 MISO (SPI Bus Master Input/Slave Output) PB3 MOSI (SPI Bus Master Output/Slave Input) PB2 SS (SPI Bus Master Slave select) Na moim wyświetlaczu EA_DOGM081-A: CLK, SI, RS, CSB http://lcd.elementy.pl/pdf/matrycowe/dog... nie wiem jak to podłączyć
Nie, już jest zaimplementowany w module. Co ciekawe np. Meshnetics ma moduły oparte na ATMega1280, więc możesz swoją aplikację zintegrować z kodem Meshnetics w jednym module. Dodano po 20 Tak jak kiedyś pisałem mam Ravena z Atmela, Meshnetics sprzedaje moduł, który jest do tego podobny - chip RF + ATMega - dobudowywujesz do tego tylko potrzebną ci elektronikę...
Zapewne nie wczytałeś się zbyt dokładnie w dokumentację do SPI, mianowicie jeśli pin SS jest wejściem i panuje na nim stan niski, to SPI kasuje bit MSTR. Jeśli pin SS jest wyjściem, to bit MSTR nie jest nigdy modyfikowany. -- edit: 19.3.2 Master Mode When the SPI is configured as a Master (MSTR in SPCR is set), the user can determine the direction of...
Ty czy Kardaś? No ta w zasadzie popodmieniałem nazwy komend w przypadku mastera, ale w tym przykładzie nie ma dużo więcej do roboty, jak uda się stworzyć własną apkę na kompa to trochę pozmieniam (dodam więcej case'ów xd). Dużym problemem było to, że nie zaznaczyłem zapisu eepromu w eclipse, ale nadal są błędy teraz już chyba tylko po stronie slave'a:...
To o czym piszesz to jest implementacja konkretnego algorytmu którego się trzymasz. Najwidoczniej nie najlepszego, skoro 16MHz nie wystarcza żeby odpowiedzieć na prosty impuls. Jak wrócę do projektu (może jeszcze jutro) to pokażę kluczowy fragment programu w C, rozwinięcie assemblerowe i oscylogramy. Dodano po 9 No i przy okazji jestem prawie pewny,...
Może źle podpięte linie. Zamień MOSI z MISO. Ja miałem coś podobnego. Ale i tak narazie mam transmisje tylko w jedną stronę. Od mastera do slave'a. Nie działa w drugą stronę, tzn odbieram master'em to samo co wysyłam do slave/a P.S. Jeśli ktoś ma napisany prosty i dobrze działający programik na transmisje po PSI między dwoma atmega'mi prosiłbym o udostępnienie...
Wiesz, nie znam się na BASCOMie, ale z tego co tu widzę : Slave = &H55 To jest w BASCOMie zapis heksadecymalny ? Bo jeśli tak, to : 55h = 0101 0101b i tu masz błąd. "Pierwszym bajtem jest zawsze nadawany przez urządzenie master adres urządzenia slave, który oprócz 7 bitów właściwego adresu zawiera bit kierunku transmisji na najmłodszej pozycji. Wartość...
Witam, Mam problem i nie mogę znaleźć odpowiedzi, sam nie wiem co może być nie tak i w internecie na forach nie widziałem podobnego problemu. Mianowicie. Zaprojektowałem układ elektroniczny do sterowania zaworami, zawór działa na 24V i prąd około 63mA. Zawór załączany jest przez tranzystor 2N2222A. Sercem sterownika jest ATMega328P-PU, wszystkie podstawowe...
Rozumiem, że każde odwołanie do SPI powoduje automatyczne wystawienie na PB0 stanu niskiego Nie. W trybie Master pin SS nie jest wykorzystywany, może służyć jako dowolne wyprowadzenie, choć dla wygody (bo tak ładniej wygląda :] ) oczywiście wykorzystuje się go do sterowania linią /CS w urządzeniu Slave, ale nie ma takiego przymusu, inny pin też może...
Właśnie... Jest jeszcze motyw taki, że PIN, którym podłączam się do 1Wire to INT0, przerwania na oba zbocza. Zbocze opadające zeruje timerek a zbocze narastające sprawdza ile upłynęło czasu (ile trwał impuls). Jeśli czas trwania impulsu oznacza RESET PULSE od mastera, zaczyna się cała obsługa w moim SLAVE. W nocie katalogowej jest napisane, że jeśli...
[syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 Config Lcdpin = Pin , Db4 = Pordc.3 , Db5 = Pordc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Lcd = 20 * 4 Config Serialin = Buffered , Size = 15 Config Pind.2 = Output Kierunek Alias Portd.2 'zmienia kierunek transmisji Enable Interrupts Dim A As Integer...
daxeno, jak już wszystko polutujesz spróbuj przetestować moduł w trybie master. Mi ciągle nie udało się zmusić modułu do pracy w tym trybie. Robie tak: atr0, atd0, ato0 i dostaje trzy razy OK i nic się nie dzieje, a w zasięgu jest drugi moduł BTM220 w trybie slave (komórka go znajduje). Ktoś ma pomysł co robie źle? Po atf? w trybie master ciągle ERROR...
A wiesz co oznacza skrót MISO i MOSI? MISO- Master input Slave output MOSI- Master output Slave input W twoim przypadku Masterem jest programator, Slave to uC. Dlaczego więc Wyjście mastera czyli MOSI porgramatora podłączas do wejścia mastera czyli MISO? http://obrazki.elektroda.pl/8627925500_1... Pin 17 Czyli MOSI - linia wyjścia urządzenia...
Witam ponownie po dłuższej przerwie, problem SPI udało mi się rozwiązać i nie było to związane, jak sugerował zumek, z błędną inicjalizacją bloku SPI. Błąd polegał na tym, że jeśli w trybie master nóżka SS jest zaprogramowana jako wejscie, to służy ona innym układom zewnętrznym do przełączenia układu nadrzędnego w tryb slave. Ja w swoim układzie nie...
Rozwiązanie wymagające 11 wyprowadzeń, z czego 8 w całym jednym porcie (w obu procesorach): szyna danych bezpośrednio pomiędzy całym portem procesora A a portem procesora B - dwukierunkowa szyna umożliwiała by transfer całych bajtów w dowolną stronę. 3 dodatkowe sygnały do sterowania transmisją: 2 od mastera, 1 od slave: master mógł by ustalać kierunek...
I2C albo 1-wire jest dobre do takich zastosowań - bezkonfliktowe. Jeśli mamy master-slave to wszystko jest bezkonfliktowe. W sieci peer-to-peer byłby kłopot i istotnie I2C miałoby przewagę (chociaż I2C w ATMEga chyba nie wspiera arbitrażu). 1-wire slave z kolei łamie licencję na 1-wire - protokół ten możesz wykorzystywać wyłącznie z produktami 1-wire...
8051 nie ma możliwości konfiguracji poszczególnych wyjść a poza tym ma inną obciążalność wyjść (i ich charakterystyką prądowo napięciową). A może problem jest w tym sprawdzaniu wejść, bo skoro usunąłeś funkcje if i problem zniknął, to problem jest z czytaniem wejść A jeszcze sprawdź czy masz zgodne wersje oprogramowania, bo może tu się gryzie: http://www.helmix.at/hapsim/...
To nie jest błąd. Piny 11(SCK), 12(MOSI) i 13(MISO) są od SPI, czyli jak byś chciał się komunikować z innym procesorem poprzez SPI, to właśnie przez te piny. Do programowania wykorzystuje się co prawda ten sam pin SCK, ale wejście i wyjście danych umieszczone są pod pinami 2(PDI = Programming Data Input [=MOSI w prog]) i 3(PDO = Programming Data Output...
Teraz testuje programowego uarta na atmedze32 z kwarcem 12MHz i działa wyśmienicie :) Aż zaraz przestawię atmege na wewnętrzny rezonator i zobaczymy jak się będzie zachowywać uart. Nie mam jak tego sprawdzić na razie na attiny13 bo chcąc przestawić zegar, procesor się zablokował... Przestawiłem z 9.6 na 4.8Mhz. W sumie nie koniecznie musi wszystko pracować...
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]'-------------------------...
Stary temat ale podepnę się bo mam podobny problem. Próbuję skomunikować STM32F429 (płytka discovery disco) z Atmegą8 (nie 88). STM Master Reviever <<>> Atmega Slave Transmiter. Wzorowałem sie trochę na kodzie kolegi i trochę na tym tutorialu: http://eliaselectronics.com/stm32f4-tuto... Problem kolegi kolegi...
Problem Poszukuję automatycznego sposobu wymiany (unowocześnienia) oprogramowania w kilku procesorach ATMega8 za pomocą ISP bez odłączania tych procesorów od płytki (będą SMD) oraz bez przepinania kabli i zworek. Proces wymiany oprogramowania ma być wystarczająco prosty aby mógł go przeprowadzić niewtajemniczony użytkownik. Po przeanalizowaniu sporej...
Witam ja ponownie z TWI Slave. Już praktycznie mam to pięknie rozgryzione na ATmegach , ale zauważyłem pewną dziwną dla mnie rzecz bo chyba nie jest ona opisana w PDFkach. Chodzi mianowicie o to jak ATmega ustawiona na sprzętowe TWI Slave reaguje na próbę odczytu z niej danych przez Mastera w trybie REPEATED START otóż gdy robi się zwykły odczyt bez...
Witam Poszukuję pomysłów na pomiar prędkości obrotowej czterech wałów, impulsy z czujnika 2 na obrót, obroty rzędu 1000 - 3000 na minutę. Procesory najchętniej ESP8266, ESP32 lub Atmega, wyświetlacz SPI lub I2C. Układ poza pomiarem nic nie musi robić, choć początkowo myślałem o regulacji obrotów (sterowanie napięciowe 0 - 10V). W sieci znalazłem tylko...
Cały problem leży w zależnościach czasowych i sterowaniu sygnałem nadawanie odbiór . Jeśli chcesz przetestować poprawność transmisji wystarczy połączyć układy pomijając Max 485 i łącząc odpowiednio rx mastera z tx układu czujnika i tx mastera z rx odbiornika . Jeśli będzie działało poprawnie błędy należy szukać w zależnościach czasowych układu sterowania...
Uzywam atmega2560 oraz atmega128. To tylko skorzystasz z MCPC, a sprzętowo dioda i pull up jak koledzy już napisali. Swoją drogą to przy tak "dużych" AMegach, nie prościej i taniej przejść na XMEGA? Procek znacznie tańszy, a oferuje więcej. Chyba, że z jakiegoś powodu jesteś przywiązany do 5V.
Witam ! Już ogarnąłem temat uarta. Bez problemu komunikuje dwa urządzenia. Teraz chciałem połączyć w magistrale i więcej układów. RaspberryPi ma być masterem, natomiast 2 do n atmeg ma być slave. Wymyśliłem połączenie jak na załączonym schemacie. Generalnie chciałbym Rpi wysyłać ramkę która zawierała by adres slave, dane do przekazania/funkcje do wykonania...
twi ma broadcast.. moze tego uzyc do rozpropagowania info o adresie mastera? a master to pierwszy, ktory zajmie magistrale? pozdro, -- migod
Witam mam w projekcie dwa mikrokontrolery połączone ze sobą poprzez SPI. początkowo AT128 jest masterem a AT162 slavem. Teraz master wysyła rozkaz do rozpoczęcia transmisji kilku bajtowy a następnie slave wysyła duży plik danych i zastanawiam się czy można na ten czas by procesory zamieniły sie rolami master<> slave, ponieważ master musi wysyłać...
Może nakierujemy kolegę na jakieś prostsze rozwiązanie, ramka na stałe, prostszy dużo mechanizm, bo nie wiem czy uciągnie full modbusa? Jak wiesz z własnego doświadczenia, jakoś działający Modbus to nie taki wielki problem, trudno zrobić go tak żeby działał w każdej sytuacji. Robiąc obsługę jednego konkretnego rozkazu, jest stała struktura ramki, więc...
Master musi coś wysłać, żeby ruszył zegar: char SPI_Master_Receive(void) { SPDR=0xff; /* Wait for reception complete */ while(!(SPSR & (1<<SPIF))); /* Return data register */ return SPDR; } Układ Master-Slave nie zmienia się mimo, że transmisja jest w obie strony.
Skoro masz infrastrukturę cat 5e to po co na tym rs485, jak już masz ethrenet i można zrealizować komunikację w warstwie IP? Odpowiedz jest prosta-zbyt cienki jestem na ethernet. Nie używam fabrycznych urządzeń, a swoje różne, różniste, mniejsze i większe sterowniki na ATtiny i ATmega :) Wszystko balanga jak trzeba, jest tanio (RS485<ethernet) i...
Witam, zamierzam zrobić projekt, którego ze względu na szacunek na wasz czas nie będę opisywał w całości. Do rzeczy: potrzebuję do Atmegi 16/32 (master) podłączyć kilka attiny2313 lub atmeg8 (slave) i pobrać 1 integera od urządzeń do niej podłączonych. Nie mam doświadczenia w komunikowaniu uC ze sobą i pytam się was jakiego interfejsu można użyć USART...
Ok, z grubsza działa, jedna ATmega pobiera dane z sensora z myszki optycznej, druga je wyświetla, czyli komunikacja przez I2C działa. Ale mam parę śmiesznych błędów, a mianowicie jeśli zrobię żeby 1uC wysyłał jakąś stałą liczbę to drugi uC już tego nie odbiera, dziwne bo powinno działać. Programy są takie nieprzewidywalne- natura zawsze stoi po stronie...
Nie ma możliwości, ale nie ma to znaczenia. Wysyłasz kolejne 8-bitowe paczki i to powinno załatwić sprawę. Widzę tu jeden problem - pamiętaj, że aby ATMega działała w trybie master SPI, przed wejściem w ten tryb pin SS należy ustawić jako wyjście. W przeciwnym przypadku na skutek szumów może dojść do przełączenia się w tryb slave na skutek detekcji...
witam, od godzinki walcze z ustawieniem USART1 w tryb synchroniczny w mojej Atmedze 162. Po przeczytaniu pdf'a wnioskuje, ze ustawiam UMSEL = 1 oraz XCK na 1 lub 0 w zaleznosci od tego czy master czy slave. Czyli ze jak ustawie XCK1 jako wyjscie to atmega powinna generowac sygnal zegarowy synchronizujacy transmisje. Niestety podpinam oscyloskop i nie...
atmega slave toshiba master slave listwa master slave
amica zmywarek zasilanie phantom komputer zwarcie aparacie
schemat prasy hydraulicznej schemat prasy hydraulicznej
Dzwonienie spod maski Mercedesa GLE przy uruchamianiu Jak sprawdzić driver MOSFET-ów: krok po kroku