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...
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ń.
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...
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.
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...
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.
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?...
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....
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.
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.
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...
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)...
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
A samo Buf też jest volatile? W TWDR mastera masz adres slave, bo po prostu master nic nie odebrał. Jesteś pewien, że slawe wchodzi w tryb slave transmit (ST) wielobajtowy? Masz sprzętowy debugger? Jakie są stany rejestru stanu na masterze i slave po kolejnych bajtach? Czysty kod przykładu, bez żadnych modyfikacji działa?
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...
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...
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.
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 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
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ł...
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?
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...
Mam 2 czujniki I2C, które osobno działają na każdej z Atmeg. Mam jeden UART, którym wysyłam dane do PC. Chciałbym zmodyfikować kod do tego stopnia abym miał jedną atmegę obsługującą oba czujniki jednocześnie. Od razu jaśniej :) Czy jeżeli kompas działa jako slave i żyro jako slave to razem też mogą być jako slave a wówczas atmega jest masterem? Teraz...
Czy ustawiłeś jedną atmege jako master a drugą jako slave?
Po wysłaniu jednego bajtu (i sprawdzeniu SPIF) trzeba ręcznie wyzerować SPIF przed następną transmisją. Poza tym SS (ten od mikrokontrolera, nie od DAC) powinien być ustawiony jako wyjście przed włączeniem SPI (ustawieniem bitu SPE), bo jak nie to mikrokontroler będzie przechodził w tryb slave. Poza zaznaczonymi fragmentami pozmieniałem trochę rejestry...
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, 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...
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...
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...
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 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...
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.
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...
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...
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".
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...
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...
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...
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...
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...
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
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...
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).
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:...
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ć
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...
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...
Widzę że slave 1-wire pomimo przechwałek nie chodzi jak trzeba. Zdziwię ci bo działa . Przy 18MHz wzorcowo, przy 16 i 14,7 jeszcze nie sprawdzałem, ale prawdopodobnie pojawi się "piczek" przez upływem 2us, czyli przed pobraniem próbki przez mastera (według protokołu, sprawdzę w nocie DS248x kiedy to tak naprawdę robi). <ciach> 3.1.11. Nie wysyłaj...
Cześć, Ostatnio zainteresowałem się działaniem magistrali I2C/TWI w MCU Atmega328PB (Arduino Nano). Na razie tylko testuję jak to działa i do linii SCL/SDA podłączam się do analizatora stanów logicznych (podróbka SALEAE) przewodami typu Jump Wire. Gdy napisałem program do komunikacji po stronie mastera i wgrałem go do Atmegi to uzyskałem przebiegi na...
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ę...
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.
Nie, poczytaj jak działa SPI - w skrócie każda transmisja to wymiana 8 bitów między urządzeniami. Wymianę kontroluje MASTER. Czyli, żeby coś odebrać musisz NADAĆ 8 bitów - w tym samym czasie SLAVE też prześle ci 8 bitów. Tu sytuacja jest nieco bardziej skomplikowana, bo układ współdzieli MISO z MOSI. Ogólnie ja bym rozwiązał to podpinając SIO do pinu...
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...
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ść...
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...
[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...
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ść...
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...
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...
Można slavem emulować pamięć dla mastera i zapis/odczyt wywoływać zewnętrznymi liniami przerwań, ale lepszym pomysłem byłby wspólny bufor na układzie 62xxx (SRAM) i wymiana paczek za pośrednictwem tego bufora wraz z tym, aby każdy procesor sprawdzał "zajętość" bufora, czyli, czy drugi procek akurat teraz z niego nie korzysta.
Według mnie można spróbować bez jakichkolwiek translatorów. W I2C stan wysoki na liniach SDA i SCL wymuszany jest przez rezystor podciągający. Urządzenie, także master pracują w trybie otwarty kolektor. Wystarczy więc, że swoją linię SDA podciągniesz do 3V, ATmega już sobie poradzi z odczytywaniem stanów, a także ich wystawianiem.
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...
Nie znam bascoma :) Jeżeli wysyłasz lub odbierasz bity po magistrali rs możesz komunikować sie z wieloma urządzeniami np za pomocą max485 napewno 32 urządzenia, jedno urządzenie pracuje jako master reszta jako slave. Master wysyła poszczególny adres do danego urządzenia (slave) i czeka na odpowiedź itd.
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...
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...
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...
"z tym serwem są problemy" - może uszkodzone, ja mam sześć sztuk TowerPro (może nie ten model) i wszystkie działają, tylko trzeba im sygnał podać. Co do sterowania: http://mil.ufl.edu/~achamber/servoPWMfaq... Jeszcze sugestia żeby serwo i układ zasilać osobno ze wspólną masą. Kod, zaznaczam że pisany dawno i NIE PAMIĘTAM CZY DZIAŁA!! (chyba lepsze...
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...
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]'-------------------------...
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 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...
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...
Czy ktoś miał problem z działaniem SPI w ATmega ( ja używam ATmega32) w trybie Master, gdy pin SS ustawiony jako wyjście w stanie 0. W dokumentacji pisze że jeśli pin SS w trybie MASTER jest ustawiony jako wyjście to nie ma to wpływu na interfejs SPI. Należy także uważać gdy pin SS ustawimy jako wejście a zewnętrzny układ ustawi stan tego wejścia na...
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...
Być może źle rozumiesz pojęcie "fullduplex", inaczej przecież nie zastosowałbyś I2C. Właśnie wszystko jest ok, chcę wykorzystać jakiś inny protokół, taki, żeby slave mógł dać znać nie tylko masterowi ale i innemu slave, pomysły co do tego narodziły się podczas wykorzystywania wersji v1. Pomyśl o lepszym zabezpieczeniu przed zakłóceniami niż pojedyncza...
zrobiłem tak: Atmega328 - Master Do Config Serialin = Buffered , Size = 24 Enable Interrupts If Ischarwaiting() = 1 Then ' sprawdź czy jest jakiś znak do odebrania w buforze lub HW UART Gosub Odczyt_rs End If '***************************** wysyłanie żadania danych do modułu 001 If Flaga_001 = 1 Then Set Re_de Waitms 2 Print "MOD001"...
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...
Witam ;)! Do mojego robota potrzebuje zorganicowac siec zlozona z mastera jako Amtega8 i 3-ech slave'ow tez jako Atmega8. Chce to zrobic na protokole I2C i mam pyatnie jak przydzielic slave'om odresy w sieci I2C? Musze zatosowac jakiegos ukladu, ktory mi nada te wartosci, np PCF8584..? Czy da sie to jakos programowo zrobic? Zamiast projektu takiej sieci...
atmega slave toshiba master slave inwerter master slave
chrysler diagnostyka miernik uszkodzony pomiar rezystancji lodówka bosch rozszczelnienie
zderzak naprawa zderzak naprawa
Jak podłączyć radio Marantz 2050 do wzmacniacza Marantz 1050? Reset fusera w Konica Minolta bizhub C252 - jak to zrobić?