Nie możesz jeden po drugim, bez żadnego czekania odczytywać czy wysyłać kolejnych bajtów przez I2C. Pomiędzy każdym wysłaniem lub odebraniem muszą być sprawdzane stosowne flagi wskazujące czy transmisja danego bajtu się już skończyła. Początek każdej transmisji musi zaczynać się warunkiem startu, a kończyć warunkiem stopu. Razem z adresem urządzenia...
Ustaw: CKSEL[3..0]=1111 (FusebitA987) CKOPT=0 (Fusebit H) a M8 będzie pracował na zewnętrznym kwarcu, np 16 MHz.
Inne miejsce z manuala: "Modules that are disabled via their clock gate control bits in the PCC/SIM registers disable the associated AIPS-Lite slots. Access to any address within an unimplemented or disabled peripheral bridge slot results in a transfer error termination." Teraz pytanie, czy "error termination" oznacza faulta. No ale generalnie zegar...
A czy [url=http://www-s.ti.com/sc/ds/ads1110.p... to już przeczytałeś?
4. Blokowy układ pamięci wynika z ograniczonej przestrzeni adresowej. Dany układ nie pozwala na adresowanie każdego bajtu z osobna więc stosuje się bloki np po 64 lub 128 bajtów. Zatem wybierając adres powiedzmy 32, zaglądasz do szufladki w pamięci do której możesz zapisać te 64 lub 128 bajtów. Adres 33 wskazuje na inną "pustą" szufladkę w której jest...
Witam. A ja tylko dodam że jest tam eeprom 24c32. W sieci jest dużo programatorów bardzo łatwych konstrukcji do odczytu tej pamięci I2C. Pozdrawiam.
na fuse bitach wyłacz JTAG-a
Każdy zapis ma wymagany czas. Chyba że urzywasz trybu stronicowego to tylko raz odmierzasz ten czas na stronę.
IC address: 110 0000b
Brakuje Ci załączonego nagłówka (stdlib.h).
Dla F4 niestety tak - errata sheet, str. 16 pkt 2.3.2 - najbardziej denerwujący bug nie został w żaden sposób poprawiony w stosunku do F1. W F2 - to samo. Wszędzie gdzie jest ten zonk będą działy się cyrki gdy magistrala zostanie jakkolwiek zakłócona, w tym: - stop w trakcie trwania transferu bajtu (nie wazne czy adres czy dane) - stop w ack slocie...
Zgodnie z opisem na http://www.kamami.pl/index.php?productID... jest to dokładnie LIS35DE, a więc DS: http://www.st.com/internet/com/TECHNICAL... . Zgodnie z tekstem na stronie 18, adres układu to 0b00111000 | ( SDO << 1) | (R/~W) (że tak symbolicznie napiszę), czyli adresy, jakie może przyjąć...
Program jest następujący: Mam strukture dla czujników a w niej tablice dla której zapisuje odczytane dane z danego czujnika: [syntax=c] typedef struct { // jakies inne zmienne volatile uint8_t dataToCalculate[6]; // do zapisu danych } czujnik; [/syntax] Tworzę 3 globalne zmienne 'czujnik' (używam 3 czujników): [syntax=c] czujnik Zyroskop = { ...}; czujnik...
o ile wcześniej dobrze ustawiłeś rejestry to zadziała: Odczytaj_czas: I2cstart I2cwbyte 208 I2cwbyte 0 I2cstop Waitms 10 I2cstart I2cwbyte 209 I2crbyte Sekunda , Ack I2crbyte Minuta , Ack I2crbyte Godzina , Ack I2crbyte Dzien , Ack I2crbyte Dzien , Ack I2crbyte Miesiac , Ack I2crbyte Rok , Nack I2cstop Waitms 10 Rok = Makedec(rok) Miesiac...
Funkcje bascomowe - nie. Trzebaby zastanowić się nad takimi rozwiązaniami: 1. Podpięcie się do wyjść układów PCF 2. zdublowanie układów PCF (o ile funkcjonują tylko jako wyjścia) 3. napisanie własnego programu dekodującego transmisję. PS. Podaj link do tego projektu do podglądania transmisji.
może jest jakiś prosty test sprawdzający czy urządzenie o podanym adresie jest na magistrali ?? tylko taki ze start - adres - i jak jest ack to stop a jak nie to dalej - oczywiście pomijając adresy specjalne.
Witam! Bawię się czujnikiem ultradźwiękowym mierzącym odległość, z którym komunikuje się za pomocą interfejsu I2C. Dane z czujnika za pośrednictwem amtegi8 (8MHz) wyrzucam na kompa za pomocą RS-232 (9600 baudrate). Problem polega na tym aby obliczyć czas jaki upływa pomiędzy kolejnymi pomiarami i wyświetlać go z resztą danych na komputerze. Trochę poczytałem...
Cześć, Kilka dni próbuję coś zapisać jak i odczytać z eeprom at24c256. Problem polega na tym że program zatrzymuję się na [syntax=c]while (!(I2C1->SR1 &(SR1_ADDR))){}[/syntax] w funkcji i2c1_burst_write. Sprawdzałem rejestr DR i adres jest dobry. Pamięć eeprom ma adres 0x50 sprawdzałem skanerem i2c. Dodałem nawet przerwy czasowe pomiędzy inicjalizacja,...
Zrób sobie najprostszy debugger. Przyczep dwie diody LED z rezystorem 1k do SDA i SCL. Ustaw opóźnienia na 1s i wtedy obserwuj co się dzieje na magistrali. Licz cykle na SCL, sprawdź sekwencje START, STOP itp. Jeśli już to doprowadzisz do porządku to ustaw opóźnienia na takie jak należy. No chyba że masz oscyloskop....
Nic sie nie dzieje, bo to nie ma prawa działać :D Gdzie rezystory podciągające linie SDA,SCL do plusa? Dostaw tam dwa rezy 10kR... Powinno to rozwiązać problem. Twój program wisi na komunikacji I2C, procek czeka na ACK lub NACK pod koniec transmisji i z powodu braku podciągania nigdy tego nie dostaje...
Dokładnie. Ja bym tą "bibliotekę" wzbogacił o cokolwiek związanego z diagnostyką - przynajmniej sprawdzanie ACKów i NACKów. Bez tego nie wiesz nawet czy układ coś odpowiedział. BTW, pamiętałeś o właściwych rezystorach podciągających na SDA i SCL?
Zamiast Dodano po 5 To samo dotyczy Wire.requestFrom(). W tym wypadku też dobrze jest poprzedzić odczyt z I2C sprawdzeniem (z oczekiwaniem) przez Wire.available(), czy faktycznie żądana liczba bajtów nadeszła.
Może coś z resetem masz źle?
Witam Zobacz na pierwszą odpowiedz: https://stackoverflow.com/questions/3704...
Tak, wszystko się zgadza. Jeśli łączyłbyś potem np. 2 kości to wtedy w jednej dajesz oba piny do masy, a w drugiej jeden do VCC i masz 2 pamięci pod 2 różnymi adresami. Można w ten sposób połączyć do 4 pamięci typu at24c04
wszystko znajdziesz tu http://mikrokontrolery.net/avr_kursy.htm
Kiedyś miałem podobny problem ze szpilkami. Przyczyną okazały się być fatalnej jakości przewody od analizatora.
Mogę się zapytać w jakim celu potrzebujesz podłączyć osobną pamięć 4kb? Jedna pamięć w ESP8266 12F już jest i ma 4Mb, a jak tego Ci mało to ESP8266 13 ma jej 16Mb. W Lua wystarczy utworzyć plik, np z rozszerzeniem txt, lub każdym innym, zapisać go do pamięci i pobierać dane czy zapisywać, dopisywać, jednym poleceniem. http://nodemcu.readthedocs.io/en/master/...
Witam serdecznie. Niżej kawałek kodu z pliku main.c W tym kodzie odczytuje sekundy z zewnętrznego układu RTC po I2C. Jak widać stworzyłem sobie funkcję "odczytaj_sekunde" w pliku "main.c" przed funkcją główną: unknown type name I2C_HandleTypeDef Co oznacza, że funkcja nie wie czym jest "I2C_HandleTypeDef" i to jest dla mnie jasne. Próbowałem zainkludować...
W funkcji eeprom_read po drugim I2C_start musisz wysłać jeszcze raz adres układu, tym razem adres do odczytu z wyzerowanym najmłodszym bitem. Marek
Jest to słowo :) określające konkretny adres w pamięci. Jest ono zależne od budowy i sposobu adresowania pamięci. Najczęściej są to słowa 2 x 8 bitów. W dokumentacji pamięci masz dokładnie napisane co które bity oznaczają.
(at)plastus00 Niepotrzebnie zmieniłeś byte na int. To powinno zostać (lub ewentualnie zostać zmienione na const void *). Użyj rzutowania przy zapisie/odczycie: [syntax=c] //zapis int a[] = {100, 20}; i2c_eeprom_write_page(0x50, 0, (byte *)a, sizeof(a)); //odczyt int b[] = {0, 0}; i2c_eeprom_read_buffer(0x50, 0, (byte *)b, sizeof(b)); [/syntax]
Witam mam problem z odczytem danych z cyfrowego magnetometru i akcelerometru LSM303DLHC przy użyciu procesora stm32f3, będącego na razem z czujnikiem na płytce stm32f3discovery. Na początek postanowiłem, że będę odczytywał dane z magnetometru przy pomocy interfejsu I2C. No i napisałem sobie funkcję odczytu i zapisu. Wydaje się, że funkcja wysyłania...
Twoje zmienne data1.data2,data3,data4 zadeklarowałeś jako char (uint8) więc jesli chcesz cokolwiek przesunąć o 24 bity w zakresie 8 bitów, otrzymasz same zera. Albo zmien typ zmiennych na int32 albo robisz tak: wynik=((int32_t)data1<<...
Należałoby napisać, z czym dokładnie masz problem.
... Może Bascom w ogóle nie potrafi tej 16tki odczytać? Pozdrawiam, Damian. Bascom potrafi , tylko Ty nie rozumiesz jak działa instrukcja I2creceive :( A działa tak: I2creceive 68 , W 'i2cstart 'i2cwbyte 68 OR 1 , czyli 69 'i2crbyte W 'i2cstop Z tego jasno wynika , że zawsze odczytasz tylko jeden bajt i zawsze będzie to pierwszy bajt z Twojego PCF-ka...
Dorzucę linka do swojego programu: http://tomeko.net/software/CH341A_tool/. Jest to dosyć przypadkowy zbiór narzędzi pozwalający w obecnej wersji na odczyt stanu Smart Battery, wykrywanie urządzeń I2C, zapis/odczyt surowych danych po I2C i SPI (*), odczyt kilku czujników (BME280/BMP280, BMP180, Si7021, AHT10/AHT20, LM75, AS5600), zapis treści do kilku...
Jak zdobyc program do odczytu SCH
Odpowiedź jest prosta zmień programistę na mniej upartego, lub wymyśl sobie własny protokół transmisji dopuszczający takie odczyty.
Nie wiem w jakim celu miałbym używać przerwania od wysyłania Pewnie po to, żeby się wywołało po uruchomionym przez Ciebie wysyłaniu. O tu: HAL_I2C_Mem_Write_IT(...) Dopiero w callbacku od wysłania możesz wywołać pierwszy odczyt. Potem w callbacku od odczytu możesz sobie odczytać co dostałeś i ewentualnie wywołać kolejny zapis/odczyt.
np. wciśnij pomógł i zamknij temat Pozdro
Witam Kolegów, W swoim, prostym systemie mikroprocesorowym stosuję popularny czujnik Boscha BME280 mierzący ciśnienie atmosferyczne, temperaturę otoczenia i wilgotność. Czujnik pracuje pod kontrolą magistrali I2C. Do wyznaczenia skompensowanych wartości parametrów stosuję współczynniki kompensacyjne przechowywane przez każdy element BME280 oraz wzory...
https://docs.arduino.cc/learn/communicat... https://majsterkowo.pl/i2c-arduino-tutor...
Dałeś tylko zrzut terminala, wklej kod programu, to może ktoś się pochyli. Sprawdź zasilania i piny których użyłeś do komunikacji. To zdaje się gada po I2C, masz oscyloskop?
Optymalizacja kodu opcja -Os do tego musisz przekazać kompilatorowi następujące flagi -ffunction-sections i -fdata-sections, a linkerowi -Wl,--gc-sections (czyli "garbage collect unused sections") Tyczy się to oczywiście AvrStudio 4.xx w AtmelStudio te opcje są do wyboru w ustawieniach jako kwadraciki do zaznaczenia.
Tak mam, całe mnóstwo, jak wyłączę i wywalę printfy to jest ok, niemniej nie mogę poświęcić całego procka dla odczytu i2c :) Pozdrawiam Krzysiek
Próbuję podłączyć wyświetlacz 2x16 z interfejsem i2c do raspberry pi3. i2cdetect -y 1 pokazuje: 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- 27 -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40:...
Przygotowuje się układ do odczytu I2C z modułu SFP na bazie gniazda w https://obrazki.elektroda.pl/2733087800_...
http://www.przetworniki24.pl/pl/katalog/... Chodzi o coś takiego?
Jeśli adres jest 0x1C to przy zapisie powinieneś wprowadzać adres 0x38 a przy odczycie 0x39. W drugim odwołaniu powinieneś czytać, a wysyłasz "D1".
Niestety nie.
Może masz konflikt "programowy" obsługi tych magistral naraz? Jeżeli odczyt jest co 6s i rzeczywiście "co 6s" to zegar działa dobrze. Spróbuj zwiększyć częstotliwość odczytu I2C.
Sprawdzałem i na 5V i na 3,3V
Czy testowal ktos z was cp2112 z smbus i2c do odczytu bateri
Ja mam poprawnie działający I2C z DMA. Wklejam jeśli jeszcze jest Ci potrzebny, jak nie może ktoś inny skorzysta. Konfiguracja I2C ( standardowo) [syntax=c] void Config_I2C() { I2C_InitTypeDef I2C_InitStruct; RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2... ENABLE); I2C_InitStruct.I2C_ClockSpeed = 400000; I2C_InitStruct.I2C_Mode = I2C_Mode_I2C; I2C_InitStruct.I2C_DutyCycle...
chyba w AVRach w takim razie w adresie ostatnia cyfra 0 oznacza ramkę "write", a ostatnia cyfra 1 oznacza "read", czyli adres 0x62 w nocie SCD41 oznacza 0xC4 dla nadawania i 0xC5 dla odbioru Nie w AVR tylko ogólnie w I2C. Najmniej znaczący bit określa typ operacji zapis/odczyt. 7 bardziej znaczących bitów to adres urządzenia. Autorzy not urządzeń I2C...
Wszystko jest w dokumentacji - napisz czego dokladnie nie wiesz. BF
Witam. Mam poprawnie pracujące moduły ESP8266 z wgranym ESP Easy. Moduły współpracują z Domoticzem. Obsługuje poprawnie czujnik i2c BME280. Potrzebuję dodać tam odczyt magnetometru i2c, opartego na układzie HMC5883L. Niestety wgrany soft tego nie obsługuje. Pobrałem najnowszą wersję ESPEasy_mega-20200222. I też nic. Widzę że w źródłach jest ten moduł,...
Tak, można je stosować wymiennie.Oba są na I2C i mogą mieć takie same adresy do odczyt/zapisu.
Witam, Uczę się obsługi mikrokontrolerów PIC. Zbudowałem układ do pomiaru temperatury z TC74A0 i PIC16F872. Mam problem z odczytem temperatury po i2c. Funkcje i2c_read zwraca wartość 255. Funkcje napisałem na podstawie książki o PIC16F Pana Tomasza Jabłońskiego. W załączniku kody i fragment programu. [syntax=c] i2c_start(); i2c_write(0x90); i2c_write(0x00);...
Witam, Po wielogodzinnej zabawie wreszcie udało mi się uruchomić I2C i nawiązać komunikację z akcelerometrem. Jednak mam mały problem - chciałbym w jednym adresowaniu w trybie do odczytu odczytać zawartość kilku kolejnych rejestrów z akcelerometru. Póki co udało mi się napisać działający program odczytujący tylko jeden rejestr, więc do odczytania trzech...
Witam. Według opisu to Twój programator nie ma w spisie odczytu pamięci szeregowych. Jedyne tylko to I2C i SPI. Więc zostaje Ci kupienie lub zrobienie takiego programatora. Pozdrawiam.
Powinieneś najpierw poczytać o zakresie zmiennych lokalnych i globalnych. unsigned char bitCount = 8, temp; w poście powyżej jest zmienną lokalną - istnieje tylko w obszarze funkcji unsigned char I2C_Read(bit ack) (a dokładnie jest przechowywana na stosie). Po opuszczeniu funkcji temp jest niewidoczna i nie możesz się odwoływać do niej z pętli...
Jesteś pewien że odbierasz dwa bajty z czujnika po I2C? Czy wysyłasz dwa bajty do PC?
Schemat to po prostu, podlaczany LCD i uklad PCF8563, takze filozofii niema. Jak juz pisalem linie SCL i SDA sa podlaczone przez rezystory 4,7k do VCC. Linie CLKOUT i INT wisza w powietrzu. Oczywiscie przy PCFie jest kondensator 100n. Fragment kodu podesle jak wroce do domu. Ale sa to znalezione polecenia z tego forum
:o Poszukuję odczytanych adresów testerem magistrali z tego modelu.Mam pewne podejrzenia co do szyny I2C,ale brakuje mi tych danych.Pozdrawiam :P
https://obrazki.elektroda.pl/1164711900_... Dla interfejsów miedzianych Ethernet typowym złączem jest RJ45 (8P8C) natomiast dla łączności optycznej urządzenia sieciowe najczęściej wyposażone są w gniazda na moduły SPF/QSFP. W zależności od modułu możemy uzyskać różne prędkości transmisji ale także zasięgi od setek metrów do wielu kilometrów...
To tylko potwierdza że trzeba jednak kwarc zewnęrtzny. Ja przeprowadziłem wiele prób i doszłem do wniosku że ten wewnętrzny to można ustawiać dla magistrali I2C,1wire tylko dla odczytu numeru (pomiar temperatury już jest błędny). Pozdrawiam i czekam na efekty pracy.
FT232 jest dla UART, a układ działa na I2C. Nie podłączysz bezpośrednio. Inne protokoły.
Czyli jest to układ SERIAL 2K (256 x 8) EEPROM po i2c ? Tak jest to EEPROM po I2C. Odczyt I zapis zadziałał będzie jak znalazł do jakiegoś projekciku. Wcześniej zasugerowałem się inną firmą gdzie dostęp do pamięci odbywa się po SPI.
Posprawdzam później w notach jak to programować i ci podam później. Najważniejszy tak czy inaczej będzie rozmiar i adres jeżeli to naprawdę jest i2c.
Nie pamietam z kad sciagnalem kod zrodlowy po przerobieniu dla swoich potrzeb program 100% dziala. ;***************************************... ; I2C zapis i odczyt do EPROM 24C02 ; ;***************************************... $NOMOD51 $INCLUDE(REG517.INC) SDAEQU P4.7;LINIA DANYCh SCLEQU P4.6;LINIA ZEGAROWA ;***************************************...
Trochę posiedziałem nad tą deską i ustaliłem kilka rzeczy, może komuś się przydadzą i może ktoś może pomierzyć to w swoim Hoverboard dla weryfikacji. Egzemplarz deski którą robiłem, ma problem z odczytem prawego żyroskopu, chociaż żyroskop sprawny, zamiana miejscami nie przynosi poprawy. Odczyt danych z płyt żyroskopów jest realizowany po szynie I2C...
Bo pewnie to nie jest 63115 tylko ((63 * 256) + 115)
Witam, Niestety natrafiłeś na ogólnie znany problem :-) I2C w stm32f103 jest po prostu ... nie działa najlepiej. Jeżeli dobrze pamiętam przy próbie odczytu nie ustawia mu flagi IV5 i można tak czekać i czekać. Jeżeli masz nowe biblioteki to spróbuj zmienić prędkość transmisji na 50kB. Jeżeli to nie pomoże to zostaje ci bitbanging :)
znalazłem kilka możliwości połączeń i niewiedziałem które wybrać Tu nie ma wróżek. Pokaż jaki sposób połączeń wybrałeś. Z jaką prędkością się łączysz? Jeśli używasz I2C jakie masz podciąganie? Jak masz I2C, slave zawsze daje ACK?
Odczytana z HMC5883L seria danych po 2 kolejne bajty (starszy i młodszy) każdej współrzędnej musi zostać połączona w word, ale do wyświetlenia trzeba przekonwertować word na znaki ASCII i dopiero wysłać na wyświetlacz.
problem jest taki -gdy mam podpieta jedna czyjke nie moge z niej odczytac temp program do sprawdzania magistrali wyswietla ze jesdt tylku otwarty port do zapisu a do odczytu zamkniety - przy 2 czujkach z jednej moge odczytac temp a z drugiej nie monitor magistrali wyswietla ze z 1 czujki sa otwarte 2 porty a z drugiej tylko jeden i to znow ten do zapisu...
Dalej walcze z ta pamiecia! Jedyne co udalo mi sie uzyskac to dzialajaca procedura odczytu... Moze i ona od poczatku dzialala ale w ktoryms momencie zaczela mi odczytywac, ze w komorce pod adresem 1 jest wartosc 13, ktora tam w innym momencie wpisalem... Na wszystkich innych adresach mam FF. Probuje na tysiac sposobow wpisac na miejsce tej 13-stki jakas...
W pilku przykladowym z Bascom'a (i2c.bas) jest powtorzony start w procedurze odczytu, pozatym moze masz zle ustawiony adres, "nozki" adresowe w twoim przypadku powinny byc dolaczone do masy(wszystkie) Mozesz miec jeszcze problem z resetem, ale tu wystarczy kondensator do plusa, lub ukladzik ds1812 Pozdrawiam
Masz zły adres I2C [syntax=c]#define AS5600_ADR 0x36[/syntax] zmień na [syntax=c]#define AS5600_ADR (0x36 << 1)[/syntax] Dla układu z którym działa komunikacja masz już przesunięty adres o jeden w lewo, aby zostawić miejsce dla R/W. Dla AS5600 tego nie masz. A na przyszłość, dla I2C sprawdzasz co odpowiada na magistrali odpytując wszystko po kolei,...
Na próbę przestaw odczyti2c przed wiatms 100. Jak nie pomoże to zaremuj linie makedec(...) w procedurze odczytu.
Dzisiaj się jeszcze raz "ze świeżą głową" wziąłem za projekt i odkryłem swój błąd. Źródła nie działały, gdyż wszystkie waliły do I2C1, a ja układ mam podpięty pod... I2C2. Mogłem sobie przekopywać google do śmierci. Cóż zmęczenie/rozkojarzenie potrafią powodować nawet tak głupie błędy.
Witam Mam pytanie dotyczące pamięci szeregowych EEprom Czy istnieje mozliwość zablokowania takiej pamięci aby podczas jej odczytu dane były źle zczytywane (niby jest Ok ale gdzieś są zamienione jakieś komórki i wgranie tego softu do innej pamięci nie przyniesie takiego samego efektu) Chodzi mi o tzw ID pamięci (numer seryjny) w którym miejscu taka informacja...
ja mam jeszcze lcd. co prawda już działa, ale raz udało mi się już przekroczyc 4 kb kodu. niestety Bascom Demo nie sygnalizuje tego w cywilizowany sposób, tylko pokazuje błędy syntax w kodzie , gdzie wcześniej wszystko było OK. a tylko wprowadzenie zapisu i odczytu I2C , 1 wire i LCD zajęło mi na dzień dobry spory kawał pamięci.
Cześć, Napisałem program do obsługi MPU6050 przez mikrokontroler PIC16F882. Program odczytuje dane z akcelerometru z trzech osi, natomiast nie odczytuje mi temperatury. Zmienna MPU6050_temperature zawsze wynosi zero. W załączniku przesyłam program oraz pliki do obsługi MPU6050 oraz modułu i2c.
prosze to procedura napisana w C pod atmege16 działa na 100% - w DIY jest mój zegar który z nia pracuje ten sam RTC, procedura odczytuje sekundy minuty godziny //>>>>>>>>>&g... procedury obsługi I2C <<<<<<<<<<...
Witam 1-wire ma taki system nadawania bitów, że za pomocą komparatorów nic byś nie odczytał. Praktycznie w obrębie jednego bitu, zwiera i master i slave. W I2C jest bardzo prosto sczytać dane, wystarczy jak podłączysz obie linie do odpowiedniego portu w PC i będziesz miał program do odczytu I2C. Analiza transmisji jest banalnie prosta, jak wie się jak...
No dobrze to fajny "działający ale źle" program ;) SUPER .... i jakie fajne dziwne liczby - no dla mnie bomba a szczególnie, że nie ma regularnego wzoru.
Do lini podłącz oporniki 4,7k względem +VCC,sprawdz długośc magistrali I2C,jak będzie długa będziesz miał błedy,i jakmasz mozliwośc to podstaw drugi układ ja ostatnio kupiłem nowy wstawiłem i lipa po zmianie na inny wszystko ruszyło,do magistrali I2C masz podpięte jeszcze jakieś urzadzenia ?
Wykonuję Kolejno czynności: -Inicjuję I2C (I2C_Init) - Wysyłam START transmisji i adres układu z 1 na końcu czyli zapis (I2C_SendStartAndSelect) - Wysyłam adres rejestru do odczytu (I2C_SendByte) - Wysyłam START transmisji i adres układu z 0 na końcu czyli odczyt (I2C_SendStartAndSelect) - Odczytuję dane z rejestru I2C_ReceivData_NACK(); Zapis to 0...
Można odczytać zawartość pamięci I2C 24XX i SPI 25 XX, i z wsadu wygenerować kod.
unsigned char ds1307_get(unsigned char addr) { unsigned char ret; //i2c_Start(); i2c_WriteTo(0xD0); i2c_PutByte(addr); i2c_Stop(); //i2c_Restart(); i2c_ReadFrom(0xD1); ret = i2c_GetByte(I2C_LAST); i2c_Stop(); return ret; } najpierw start po adresie zapisu znów start i...
No i już zaczynają się schody... Na TME mają te przetworniczki ale o jednakowym adresie odczytu po I2C... W jednym układzie ma ich pracować 5szt...
Witam Sprawdz ustawienie przelacznikow dip switch ,musza byc wszystkie off, w przeciwnym przypadku podczas odczytu pamieci I2C bedzie taki komunikat . Pozdrawiam
Hmm, być może tak późno zadane pytanie może zdawać się bez sensu... ale widzę już przynajmniej jakieś konkrety :) Pisałem o max'ie bo miałem na myśli podpięcie przez rs'a - w takim przypadku raczej bez max'a sie chyba nie obejdzie ? Mam rację zapewne... (nie jestem specem ani od max'a ani od i2c)... znalazlem gdzies info że istnieje mozliwosc przeczytania...
ADS1115 wypróbowałem i działał całkiem dobrze, tylko on nie ma odrębnej masy analogowej, więc trzeba używać dwóch wejść podłączonych do końców bocznika. Poza tym nie jest zbyt szybki, odczyt przez I2C może zakłócać pomiar, więc jak ma być dokładnie, to najwyżej 400 odczytów na sekundę.
Tak wysyłam, zgadza się.
Czy jest jakies odganiczenie co do predkosci odczytu danych z pamieci EEPROM bedacej na magistrali I2C, oczywiscie oprocz ograniczenia zegara do 100KHz.
Program ponyprog nie spełnia moich oczekiwań, używałem go do programowania pamięci typu 24XX. Program ten ma na stałe zapisane typy układów, chodzi mi głównie o uniwersalny program obsługujący komendy I2C np. odczytaj komórkę o adresie XX, zapisz do komórki XX daną YY.
odczyt 95040 zdalny odczyt odczyt wodomierza
numer karty sieciowej candy instrukcje obsługi samsung skraplacza
skuter elektryczny schemat plany buggy
Lokalizacja bezpiecznika tablicy rejestracyjnej w Volvo XC60 po liftingu Komunikat AL failed na sterowniku MTDC do solarów: przyczyny i rozwiązania