Gdzies juz chyba widziałem, jak napisałeś coś w stylu, że "ogólnie wiadomym jest, że bascomowe SPISLAVE nie konfiguruje tak jak potrzeba" . Ja o tym czytałem pierwszy raz... Mogę wiedzieć której wersji Bascom używasz jeśli nie najnowszej 2085? W SPI najważniejsze jest to, że to master taktuje slave`a. Dlatego nie bez powodu w komendzie konfiguracyjnej...
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.
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.
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.
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ń.
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...
Sprawa jest prosta, odpalasz moduł BT w trybie Slave łączysz go z ATmaega przez port szeregowy i to w zasadzie tyle. Następnie parujesz BT z telefonem i w efekcie masz transparentny kanał komunikacyjny (tzn. nie interesuje Cię co się dzieje pomiędzy BT a telefonem). Dalej pozostaje pisanie aplikacji na Atmega i telefon.
Oczywiście, że można. Jedena z ATMeg musi pracować jako slave I2C. Ściągnij sobie z Helionu przykłady do mojej książki, masz tam konfigurację w której połączone są dwa procesory przez I2C.
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...
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....
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...
... Nie wiem gdzie błąd :( Bo i skąd możesz wiedzieć , skoro nie sprawdzasz co Ci mówi TWSR :( Np. i2c_send(0b10100000);//<- adres fizyczy 00, 1 bit adresu słowa 0 + Write A skąd wiadomo , że SLAVE odpowiedział ACK :?: Nie przypadkowo , wszystkie funkcje i2c (prócz i2c_init i i2c_stop) zwracają nam zawartość rejestru TWSR. Pozdrawiam Piotrek
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...
To będziesz musiał się trochę napocić. Po pierwsze jak używasz watchdoga w programie, to musisz w jakiś sposób sprawdzić czy reset aby na pewno służył do upgrade'u. Możesz to zrobić np przez zapis do eepromu jakiejś wartości, odczyt i odczyt jej bootloaderze (pamiętaj żeby bootloader ją resetował). Dobry by był też mechanizm który by pozwolił na zrezygnowanie...
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...
Czy Spi w atmega w trybie slave generuje zegar?
Dla poprawienia rodzielczości proponuje zastosować starą poczciwą metodę skalowania zgrubnego i dokładnego. Tzn. Przełacznik zakresu na jakiejś drabince stałorezystancyjnej lub przełączniku CMOS 4051 i na koniec finish na PWM. Tak jest bardziej kulturalnie. Chociaż z PWM do stabilizacji to troszkę bym polemizował , ale to tylko kwestia klasy urządzenia...
Poczytaj sobie: http://forum.atnel.pl/topic1183.html
(at)kaamil1984 W RTU nie ma żadnych STX ani ETX, a CRC jest 16 bitowe. Chyba pomyliło ci się z innym protokołem. Pełen opis protokołu to zaledwie kilka/kilkanaście stron.
Niestety nie ma prawa działać. Jeśli ATMega działa jako I2C slave to musisz nadać jej adres na magistrali I2C i obsługiwać zdarzenia START, RESTART, STOP i write o read na I2C.
Tak mi się też wydaje bo jest to transmisja synchroniczna ale wolę dopytać bo właśnie robię PCB i nie mam miejsce na kwarc. A szkoda mi potem przewodami dołączać kwarc. Bardzo nie chciałbym umieszczać kwarcu na płytce. Dodatkowe pytanie: czy różnica 16MHz kwarc dla MASTERA i 8MHz generator dla SLAVE nie będzie problemem ?
Może przedstawisz kod programu?
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...
ADS1256 pracuje w mod1- widać to z DS str6. Dlaczego ATMega slave źle pracuje w mod1 to jest dziwne.
http://obrazki.elektroda.pl/6809150300_1... http://obrazki.elektroda.pl/4575909700_1... http://obrazki.elektroda.pl/2450147400_1... http://obrazki.elektroda.pl/2336351100_1... Witam. Przedstawiam projekt w trakcie budowy, może będzie inspiracją dla innych :) Jest to inteligentny dom w...
Jeżeli stan nieaktywny na linii SS wymusza stan Hi-Z w ATMeganch pracujących jako Slave to tak. Każda Atmega SLAVE musi mieć osobny pin SS. Czyli musisz mieć 6 pinów SS.
Witam już po testach - GRATULACJE ;) Jesteś Kolego genialny ;) Wielkie dzięki wszystko teraz śmiga jak trzeba - to jest to. Zrzut analizatora https://obrazki.elektroda.pl/2709336600_... Powtarzalność jest 100% przy tych samych przyciskach ;) Dodano po 2 No to teraz dalej, a może właściwie od początku. Sprzęt audio retro to wieża z 84...
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...
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...
w atmega i2c nazywa sie troszke inaczej poczytaj o TWI jest tego pelno nawet w manualu do atmegi (np 128) sa przyklady zazwyczaj w asm i c wystarczy sciagnac pelny datasheet do procka pozatym nie powinno byc problemu z obsluga w trybie slave poniewaz atmega ma ten interface rozwiazany hardwerowo wiec obsluga jest dosc uproszczona ( atmegi ktore maja...
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...
Prezegladnalem kilka postow dotyczacych rs485 ale rozwiazania nie znalazlem. Moj uklad to PC z przejsciowka do rs485 i dwa atmega 32. Kiedy podlacze jeden slave uklad smiga bez problemow lecz kiedy podlacze drugi slave komunikacja siada ( nic nie gada w zadna strone). Dodam ze ramka zawiera numer slave i odpowiada tylko jeden ( sprawdzalem z jednym...
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. Mam problem z obsłużeniem bibliotek Atmela do magistrali TWI dla mikrokontrolerów z rodziny Xmega. Próbuje odebrać dane z Mastera. Master to Atmega, która jest na pewno skonfigurowana poprawnie, gdyż dane odbierałem na innej atmedze. Problem pojawia się gdy chcę je odebrać na Xmedze, ze względu na moje początki z tym mikrokontrolerem. Może ktoś...
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...
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.
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ł...
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, 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...
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...
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...
Witam. ATmega ma sporą rezystancję wejściową, więc podejrzewam ,że w głównej mierze zależy to od długości przewodów.
witam, próbuję osbłużyć akcelerometr ADXL345 po i2c, ale komunikacja zawiesza się po pierwszej komendzie i w ogóle program nie wchodzi do pętli while(1). jak zakomentuje linijkę: i2cTransmit(ADXL345, POWER_CTL, 0) w mainie; to ATmega wysyła po USARCIE dane bez problemu, w przeciwnym razie zawiesza się. o to listing programu: ATmega168 + 20 MHz, na samym...
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, 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...
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...
Dziękuję za załączniki. Akurat znam je, bo na ich podstawie robię próby opisane w tym wątku. Wciąż nie wiem, dlaczego program nie chce wysyłać kolejnych instrukcji bez (znacznych) opóźnień między nimi. Myślałem nawet, że to Slave nie wyrabia z wykonaniem funkcji, ale jak pisałem "zwykła" Atmega wysyła te dane bez problemu, wystarczą jej opóźnienia "...I2C_WaitTillStopWasSent..."....
MISO z MOSI nie powinno się zamieniać. Wynika to z nazwy - MOSI = master output slave input, miso = master input slave output.
Ja bym to zrobił tak: PCF co 1s wysyła sygnał przerwania do ATMega8 i wtedy ATMega8 odczytuje czas. ATtiny2313 jest skonfigurowany jako slave. To da się zrobić w Bascomie- nie wiem jak teraz ale parę lat temu można było dokupić programik do zrobienia procesora jako slave. ATMega po odczycie czasu z PCF wysyła aktualny czas do ATtiny. Wtedy ATtiny nie...
Z tego co wiem transmisja radiowa w przez moduły RFM01 i RFM02 odbywa się poprzez magistrale SPI. Takie może retoryczne pytanie, jeśli w Attiny2313 pod piny z SPI mam podpięty LCD, to będę miał zakłócenia? Zmienić lokalizacje LCD? Próbuje radiowo połączyć attiny2313 MASTER i atmega16 SLAVE. Na początku chcę połączyć przewodami żeby sprawdzić jak działa...
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.
Jeżeli master nasłuchuje a slave'y nadają to jak wysłać do slave'a sygnał, który ma być reakcją na to co on nadał? To nie master nasłuchuje a slave'y. Master odpytuje po kolei wszystkie slave'y. Jeżeli któryś slave ma coś "do zrobienia" master dostaje odpowiedź od niego i odpowiednio reaguje. Jeżeli jeden slave będzie chciał coś "zrobić" w drugim slave...
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...
Witam Na początku dziękuje koledze BlueDraco za szybką pomoc . Ale również źle wpisywałem adres slave układu BH1750 . Podłączyłem wyjście ADDR do plusa .Poniżej działający kod .[syntax=c] #include "i2c_twi.h" void TWI_start(void) { TWCR = (1<<TWINT)|(1<<TWEN)|(1<&... while (!(TWCR&(1<<TWINT))); } void TWI_stop(void) {...
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...
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 Z tego co zrozumiałem chcesz zrobić komunikację między dwoma AVR-ami na I2C. Czy masz już zrobiony SLAVE ? Czytając na forum o takim połączeniu dowiedziałem się że nikomu nie udało zrobić SLAVE na AVR.
Tak też uczyniłem. Niestety nic z tego. Działa tylko pierwsze pole wyświetlacza (1,1) i zmieniają się na przemiennie dwa znaki - czarny kwadracik i spacja Wrzuciłem też ten programik do testowania lcd4busy który ma wyświetlić "TEST" - ale efekt ten sam. A próbowałem jeszcze zwyczajnie podłączyć LCD pod port D (bez tej biblioteki), i w ogóle nie chce...
Ja ogólnie etap migania diodami mam już za sobą zrobiłem parę projektów prostych wykorzystujących TIMERY, Przerwania zewnętrzne, obsługę klawiatury bądź LCD i teraz zamierzam się właśnie dokształcić w interfejsach a doświadczenia w tym temacie nie mam, dlatego też pytam się was. A co sądzicie aby ten problem spróbować zrobić na interfejsie SPI? Z tego...
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ć
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, czy ktoś korzystał z takiego czytnika kart, jeśli tak proszę o pomoc w jego podłączeniu. Czytnik posiada komunikację po SPI oraz następujące piny Sda który odpowiada za wybór urządzenia slave podczas komunikacji po Spi tylko jeśli mamy jednego slave-a to można podłączyć ten pin bezpośrednio do GND?? Piny Sck, Mosi Miso wiadomo analogicznie do...
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).
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
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...
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 Chciałbym podłączyć do Atmega 8 wyświetlacz 4x led 7 seg. Ponieważ nie chciałem przez porty procesora multipleksowo sterować wyświetlaniem, żeby nie tracić portów wydumłem żeby wykożystać PCF8574AP (expander) przez złączae I2C. Niestety kość PCF kosztuje 3x Atmega8 :O W związku z tym taniej poświęcić inną Atmega8 i nią sterować LEdami chyba. Teraz...
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...
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...
Poczytaj sobie manuala do Atmeg. Albo książkę Baranowskiego "Układy Atmega w praktyce". Oczywiście, sam podłaczałem do magistrali I2C chyba nawet po kilkanaście układów równolegle. Częścią ramki transmisyjnej jest adres układu docelowego. Oczywiście topologia jest taka, że jeden z układów występuje jako master, reszta to slave'y. Tylko master może inicjowac...
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...
ale schemat rs czy 1wire ? RS moze byc "lancuksziem" a moze i byc gwiazda* schemat moge ci machnac wraz z kodem ..jakims ale wiadomo ze w towjej gestii bedzie go poprawic :) 2 mastery w sieci to powazne wyzwanie .. lepiej do tego celu zaprzadz 1 master w formie komputera <zwykla przejsciowka rs232<>rs485 dostepna w avt za grosze> a tu prosze...
Schemat jest prosty Jedno Arduino podłączone do pc przez usb i dwa Arduino podłączone jako slave do tego pierwszego. Na linii mam kabel 2x4 pary. Informacje muszą płynąć z slave przez mastera do pc i w drugą stronę. W kodach tak już namieszałem że są bezużyteczne. Jedno co działa to komunikacja pc - master przez usb. Jeżeli są to Arduino Uno, to tylko...
Witam, drogich forumowiczów. Mam problem z komunikacją kilku urządzeń w sieci rs485. A tak prawdę mówiąc to z komunikacją pomiedzy dwoma, jednym "master" i jednym "slave". Normalnie staram się zadawać pytania w ostateczności na forum Elektroda, ale po prawie 3 tygodniach siedzenia przy problemie, przeglądaniu masy poradników i postów związanych z rs485...
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...
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...
Witam, Mam następujący problem, podpiąłem Atmege8A i Arduino magistralą I2C - oczywiście rezystory podciągające 4.7k zastosowane - prosty układ. Atmega ma działać jako urządzenie Slave a Arduino jako master. Tu listingi kodów: Arduino [syntax=java] #include <Wire.h> byte blad, adres; int urzadzenia; void setup() { Wire.begin(); Serial.begin(9600);...
LosRabinos Nie wiem, czy trochę poniewczasie, ale zawsze to coś. Odnośnie hardware-u: PCF8563 noga 3 (A0) do masy i wtedy (pierwszy listing): [syntax=c]// Funkcja zapisuje pojedynczy bajt danych do układu RTC na magistrali I2C void EEPROM_Write(unsigned char ucAddress, unsigned char ucData) { TWI_Start(); // Wysłanie sekwencji start //tutaj zmien na...
Bit startu na załączonym wyżej screenie wygląda poprawnie, SDA opada gdy SCL jest jeszcze w poziomie wysokim. Ale sprawdzałeś to po obydwu stronach konwertera? Najlepiej sprawdzić bezpośrednio na układzie slave. Po obejrzeniu schematu zaglądnąłem do datasheet modułu BMP085 i widzę coś takiego: The LSB of the device address distinguishes between read...
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...
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...
Czyli błąd w założeniach projektu - źle wybrany mikrokontroler. Wspomagam się sprzętowo przerzutnikiem D/ Należy albo obsługiwać Onewire w sposób nie wymagający mikrosekundowej precyzji przerwań (czyli przez UART, których zapewne Ci zabrakło), 1) Dlaczego zabrakło, AtMega mają po 2 a nawet 4 uarty. 2) W jaki sposób realizujesz slave na uarcie? Master...
(at)Markosik20 Dziękuję za zainteresowanie! :-D Nie zrozumieliśmy się. Nie chcę transmitować znaków w czasie rzeczywistym. Druga sprawa - w RS485 masz wiele nadajników, jeden master reszta slave - nie można sobie tak śmiecić na linii (po znaku), to nie buforowany RS232! Inna sprawa, że docelowo przesył będzie w trybie ASCII (później rozszerzę soft o...
Wszystko wskazuje na to, że rzeczywiście będę musiał pójść w stronę: UART<-- (WiFi)-->UART lub UART<-- (2.4GHz) -->UART, bo 7 urządzeń w sieci to zbyt duże ograniczenie. ESP8622, ma ograniczenie do 5, choć to tylko dane z dokumentacji trzeba sprawdzić fizycznie, bo ten zapis dotyczy wersji z 2013 roku. Przydałoby się, by rozwiązanie było...
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! Mam prośbę o pomoc w poprawieniu kodu. Otóż mam zadeklarowane globalnie następujące zmienne: [syntax=c] volatile uint8_t x; volatile uint8_t recaive_complete; volatile uint8_t block_recaiver; volatile unsigned char bufferin[5]; [/syntax] W programie głównym mam 2 funkcje w pętli while. [syntax=c] while(1) { ReadKeypad(); ComRdFrame(); }[/syntax]...
Ustawiłem w Slave aby wstawił do SPDR wartość 0x80. I pierwsza próba odebrania zwraca wynik 0x80. Natomiast następnej już nie. [syntax=c]ISR(SPI_STC_vect) { uint8_t bajt = SPDR; PORTA = bajt; SPDR = 0x80; // Wartość do następnego wysłania }[/syntax]
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...
ESP8266 jest ze dwa rzędy wielkości mocniejszy od AVR'ów I tu muszę niestety bardzo surowo odpowiedzieć. Po pierwsze nie rozumie kolega wyrażeń, którymi się posługuje. Po drugie nie zna kolega rzeczywistej wydajności rdzenia Xtensa (są porównania do AVR i STM), po trzecie nie rozumie kolega ograniczeń tego SoC/MCU. A w porównaniu do tych "słabych"...
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ć...
Witajcie, człowiek tylko pójdzie do pracy na kilka godzin, a tu taka gorąca dyskusja się wywiązała ;) Co do odległości, to nie jest kosmiczna, około 15, max.20 metrów. Wolałbym, aby komunikacja była na tych samych liniach w obu kierunkach z jednym masterem. Slave (jak nazwa wskazuje) grzecznie słucha i odpowiada tylko jeśli zostanie wywołany "do tablicy"....
Witam kolegów, Postawiłem sobie pewne zadanie do wykonania i wygląda na to, że będę potrzebował jakiejś rady kogoś kto lepiej zna problem. Chodzi o komunikację mokrokontrolerów ATMEGA przez interfejs SPI. Programuję w BASCOM, gdzie są już gotowe instrukcje do tego. Cały problem wygląda tak: - Mamy 2 procesory ATMEGA8 - Mam tablicę 10 elementową X (elementy...
Pull-upy są w BMA220. Teoretycznie konwerter powinien być, i jest już zamówiony, ale to nie może być powód. Dziś uruchomiłem sobie jeszcze ten sam kod na płytce Arduino (zaprogramowałem układ w języku C przez złącze ISP na płytce), gdzie w języku arduino na tej płytce ten akcelerometr działa. Próbowałem z adresami, bo trzeba go przesunąć w lewo i dopisać...
OK spokojnie. Żywym tekstem w dokumentacji nie ma nigdzie napisane że załaczenie opcji oc rozłacza całkowicie sterowanie z rejestru port. Nie jest o tym wspomniane ani przy opisie wyboru trybu oc ani w opisie samej końcówki. Dopiero jak zacząłem przeglądać obrazki ze schematami portu to mozna wywnioskowac ze stan >0 dla trybu oc odłacza sterowanie z...
Jedno co mnie zaciekawiło to to że zarówno nadajnik jak i odbiornik sterujesz jako slave w SPI. Ja transmisję nie robiłem na SPI. Nie wiem jak sobie wyobrażasz odbiór znaków synchronizacji jak ci wypadną na innych bitach. Radzę poszukać na elce bo takie tematy już się pojawiały.
Zastosowałem się do twoich rad stworzyłem klasy uC tak, żeby nie definiować na początku biblioteki port.h tylko w ustawieniach projektu musi być wybrany mikrokontorler: https://obrazki.elektroda.pl/8543232300_... cały plik port.h wygląda następująco pogrubiłem te zmiany które wprowadziłem: #if defined (__AVR_ATmega328PB__) #define UCSRB...
Niestety - położenie dodatkowego kabla nie wchodzi absolutnie w grę. Co do energooszczędności - raczej chyba nie wyda. Potrzebny jest tam minimum atmega + wyświetlacz (LCD, ale lepiej LED 7-segment). Więc zasilanie pasożytnicze (o którym czytałem) - bardzo wątpliwe aby wystarczyło. Co do transmisji jednokierunkowa - niewielkie pakiety danych - aktualizujące...
dzięki! to, że biblioteki są płatne to wiem ale można zainwestować pod warunkiem, że się do tego przydadzą:-) Problem w tym, że te urządzenia nie są naszej produkcji-chcemy je tylko rozbudować. Niestety nie mam kodu źródłowego oprogramowania więc mogę jedynie "dopiąć" do magistrali atmegę z niezleżnym oprogramowaniem. Nie chcę w żaden sposób ingerować...
Witam Andy74 zakupiłem dzisiaj nawet nowego uP i jest to samo, błą weryfikacji. Jak mi przyjdzie jeszcze budować nowy programator, to się chyba zastrzelę, jakiś nie fart pod koniec tego tygodnia? A było tak pięknie RS485 działał, na SLAVE dałem wartość która się zmieniała i wysyłał ją do ATmegi, wszystko łądnie i pięknie, aż do momentu następnego proghramowania,...
Witam Mozesz mi powiedzieć co to jest ten protokól z L3? Rozumiem ze l3mode (na plycie jest zwarty do masy, wiec nie jest wykorzystywany), sluzy do komunikacji 3-przewodowej, jesli jest ustawiony na 0, to dziala tylko i2c. Na przebiegach widac ze "machaja" L3mode, ale u mnie bedzie i jest na masie. Dlaczego Atmega nie nadaje sie do komunikacji i2c?...
atmega master slave rs232 atmega slave modbus slave atmega
przekaźniki programatora pasek pralka spada bosch rozbieralny
Jak dostać się pod bęben suszarki Bosch? Peugeot 508 1.6 THP – lokalizacja zaworów odpowietrzających, wymiana, gdzie kupić