Witam! W załączniku masz biblioteki do sprzętowej obsługi magistrali TWI, układu PCF8583, wyświetlacza lcd, oraz przykładowy plik projektu. Testowane na takim samym sprzęcie (EvB 4.3). W pliku config.h masz napisane do jakich pinów podpięty jest wyświetlacz. Możesz podpiąć tak samo lub zmienić. Pozdrawiam.
Przecież wystarczy zajrzeć do dokumentacji obu układów..... PCF8583: adres I2C ustawiany jako 0xA0/0xA2 (pinem zewnętrznym) 24C04: adres I2C ustawiony "na sztywno" jako 0xA0 dla pierwszych 256 bajtów i 0xA2 dla drugiej połowy. Masz ewidentny konflikt adresów! Te układy nie będą razem działać! Wstaw sobie EEPROM 24LC256, jego adres będziesz mógł sobie...
No tak, to święta prawda. Do tego Bascom sam z siebie dodaje sporo zbędnych procedur. Najgorszym przykładem jest obsługa LCD - ok 1kb kodu. Ja teraz kończę obsługę I2C Slave bo Bascom oferuje to tylko za dopłatą. Bascom , jest jak ... klucz uniwersalny. Potrafi odkręcić wiele śrubek , ale jest jest duuuuużo większy od np. ósemki oczkowej ;) Tą z kolei...
Sub Odczytaj_pcf8583 Dzien = Makedec(dzien) Miesiac = Makedec(miesiac) H = Makedec(h) M = Makedec(m) S = Makedec(s) I2cstart I2cwbyte &HA0 I2cwbyte 2 I2cstart I2cwbyte &HA1 I2crbyte S , Ack I2crbyte M , Ack I2crbyte H , Ack I2crbyte Dzien , Ack I2crbyte Miesiac , Nack I2cstop I2cstart I2cwbyte &HA0 I2cwbyte 100...
Ten PCF nie może poprawnie działać. Jest &B10100000 = 160 - adres PCF8583 dla zapisu &B10100001 = 161 - adres PCF8583 dla odczytu danych Powinno być odpowiednio &B10100010 lub 162 -adres PCF8583 dla zapisu &B10100011 lub 163 - adres PCF8583 dla odczytu danych
W dokumentacji 24c02 jest podany adres 160-zapis, 161-odczyt z bloku pierwszego, 162-zapis do bloku drugiego a 163-odczyt z bloku drugiego.... wiec jak mozna zapisywac do drugiego bloku jak pcf8583 ma adres 162 ????moze mi to ktos wyjasnic....
Sda i Scl są skonfigurowane w kompilatorze (używam Bascom Avr). Adres się zgadza. A sprawdziłeś czy Twój PCF odpowiada ACK , po wysłaniu jego adresu na magistralę :?: Piotrek
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...
Oki Dzięki, sprawdzę może to coś z adresem!
np: PCF8583 ma do wyboru 3-y adresy Jak się uzyskuje 3ci adres?
No w niektórych wersjach płytki jest poważny błąd z urządzeniami I2C - pamięć at24c16 + pcf8583 = konflikt adresów => nie da się korzystać ani z eeprom ani z zegara
...bardziej mi chodzi o sam fakt, że nawet ręcznie (programowo) można wymusić takie dziwne wartości godzin i minut a scalak dalej będzie odliczał czas ;) nie zdając sobie sprawy że godzina w nim jest np 43:77. Tak sobie czytam ten wątek i ... nie mogę wyjść ze zdumienia 8-O Dlaczego "przyczepiłeś się" do PCF-a , a nie do swojego kodu :?: Nawet gdyby...
Tu masz kody źródłowe do interfejsu I2C, może tam coś znajdziesz. Pozdrawiam. http://www.programmersheaven.com/downloa... http://www.phanderson.com/jkmicro/8583_1... Układ PCF8583 jest widoczny pod adresem 80D (50H) magistrali I2C. Ponieważ najmłodszy bit adresu I2C określa typ operacji (odczyt/zapis) wiec układ PCF8583 jest “widoczny”...
Proszę bardzo...z zegarem wszystko na tym kodzie śmiga bez problemu //********** funcje obsługi TWI dla PCF8583 #define ACK 1 #define NOACK 0 static void TWI_start(void) { TWCR = (1<<TWINT)|(1<<T... while (!(TWCR & (1<<TWINT))); } static void TWI_stop(void)...
No właśnie chcę żebyś zrozumiał - wiesz jak raz zrozumiesz to potem wszystko będziesz dał radę zrobić sam i chyba satysfakcja też większa ;) Ja też, patrząc na mnie całkiem na zimno, jestem samoukiem ;) Też zaczynałem od różnych pytań - możesz sam sobie poczytać i pośmiać się z moich pierwszych postów na forum. A więc ten rysunek pokazuje poszczególne...
... Adresy są dobre (160 i 161) ale problem tkwi w tym, że PCF8583 wysyła dane w postaci BCD... Nie wiem czy tylko mi się tak wydaje ale A0 jest podłączone do VCC zatem adresy mają postać: 101000 1 0/1
ja niedawno odpaliłem rtc na twi i działa świetnie na stronie radzio.dxp.pl są podane procedury do twi sprawdzałem je i działają nie wiem czy wiesz ale PCF w przeciwieństwie do eeprom adres+1 to odczyt więc jeśli masz adres A2 to do niego zapisujesz a z pod A3 czytasz
Na schemacie pin A0 PCF8583 jest dołączony do masy, więc adres powinien być 160 i 161.
Sprawdź czy masz sda i scl podciągnięte rezystorami, u mnie brak takiego szczegółu powodował, że ten sam pcf czasem odpowiadał, a czasem nie
Zakładającego temat , patrząc na datę , sprawa już nie interesuje. Ale ..... PCF8583 może mieć adres 160/161 lub 162/163, ustawiane jest to nóżką A0 24C04 może mieć adres : 160/161 , 164/165 , 168/169 , 172/173 , ustawiane jest to nóżkami A1 i A2 Można sobie wybrać żeby się nie pokrywały. Adres układu jest czym innym niż adresy pamięci i ich stron
Mając trochę wolnego czasu napisałem parę funkcji do obsługi układu PCF8583. Funkcja która ustawia godzinę i datę zapisuje też dane potrzebne do obliczenia pełnego roku, dzień tygodnia jest obliczany automatycznie na podstawie daty. Funkcje Pcf8583_write i Pcf8583_read można wykorzystać do zapisywania/odczytywania danych z wolnej pamięci ram. Dostępne...
Niedawno robiłem taki zegarek i proponowano mi napisanie progra,owego roku niz korzystanie z tego z pcf-a. Najpierw musisz ustawić 3 bit w rejestrze kontrolnym np tak: Dim B1 As Byte Set B1.3 I2cstart I2cwbyte 162 I2cwbyte 0 I2cwbyte B1 I2cstop Potem żeby ustawić podstawowe wartości musisz je zamienić na kod bcd a następnie wysłać tak: I2cstart I2cwbyte...
Witam, Próbuje w ramach nauki zbudować zegarek w oparciu ATMegę168 i PCF8583. Zbudowałem następujący układ: http://obrazki.elektroda.pl/4826984900_1... Napisałem do niego następujący program: [syntax=c] #include <avr/io.h> #include <stdio.h> #include <util/delay.h> #include "HD44780.h" #include "i2c.h" #include "PCF8583.h"...
Miałem podobny problem: Control Status Register (0x00) ustawiony na 0x04 Alarm Control (0x08) ustawiony na 0x90 chciałem uzyskać alarm codziennie o określonej godzinie, a skorzystać chcę z wyjścia INT PCF8583. Wszystko ustawione, a flaga się nie zmienia, nie zmienia się też stan wyjścia INT (ma się zmienić z Hi na Lo) Po sprawdzeniu rejestrów okazało...
Trzeba koledze uswiadomić że przyjęto aby wszystkie pamieci na szynie I2C maiły adresy $Ax a ustawienia adresów wykonuje sie przez odpowiednie podłaczenie pinów adresowych. PCF8583 jest traktowana jako pamiec i może miec adres $A0 lu A2, natomiast 24c moze miec adresy $A0,$A2....$AE I tutj może byc źródło konfliktu.
Kod jest przerobiony, z innego ale go ogarniam, a teraz co znaczą komentarze. jeśli chodzi o wartość 0xa0, która jest w kodzie, a ja napisałem że to nie działa, natomiast działa dla 0x50. 0x50 = 01010000; 0xa0 = 10100000; Według noty katalogowej PCF8583, adres scalaka jest 10100000 = 0xa0, z czego 1010 - to adres stały 000 - to adres zmienny i zależy...
Faktycznie podlaczenie rezystorkow oraz poprawienie schematu pomoglo. Udaje mi sie wpisac dane i je prawidlowo odczytac. Niestety odczytuje caly czas to samo... tak jakby zegar byl wylaczony... co zrobic? EDIT: I2C_Start(); // inicjalizacja zegara I2C_Send(0xA0); // adres PCF8583 do zapisu I2C_Send(0x00); // adres w RAM I2C_Send(0x00); czy I2C_Send(0x80);...
Zamienić adresy na 160 i 161?
No to wychodzi na błąd w sprzęcie. Sprawdź wszystkie połączenia (szczególnie linie SDA i SCL), sprawdź czy nie ma zimnych lutów itp. A i czy przy zegarze PCF8583 ten program do szukania adresu działa poprawnie?
Zegar działa prawidłowo Czyli po włączeniu zasilania jest odczytywany PCF8583, na wyświetlaczu idą sekundy, minuty. Co by wykluczyło: "Czy adres sprzętowy PCF8583 pin3 A0 ustawiony jest prawidłowo - pin do masy ?" "Czy linie SDA SCL są podciągnięte rezystorami zewnętrznymi ?"
Powtórna inicjalizacja (sygnał START) wymagany jest tylko w momencie w którym Master zapisuje do układu adres rejestru z którego następnie chce odczytać wartość (FIG. 17 z dokumentacji). W przykładzie z pierwszego postu powtórna inicjalizacja podyktowana była "cechą" układów na I2C - automatyczna inkrementacja licznika rejestru. Jeśli wpisujesz wartość...
RTC posiada własne zasilanie 3V, które obsługiwane jest przez MAX690CPA. Procek to AT89S52 zaprogramowany w asemblerze przez ISP. Kwarce są wszystkie OK, itd. Dzieję się tak bardzo rzadko i tylko wtedy, gdy przez RS-485 przesyłam baaaardzo dużo danych w nieodpowiednim czasie. Układ PCF podłączony jest pod osobne linie, które łączą się tylko z AT24C02,...
Mam kłopot z niedziałającym poprawnie kodem i szczerze mówiąc nie potrafię znaleźć przyczyny. I2C chodzi poprawnie godziny,minuty,sekundy i dzień pokazuje poprawnie natomiast miesiące i dzień tygodnia to porażka. Kod proszę umieścić w znacznikach code. Robak
Hmm, ale typ układu? Jak to się ma np. do PCF8583 (zegar) i pamięci At24Cxx (eeprom) - adresy bazwoe takie same...
Pomogło - program nie jest uwięziony w pętli, komunikuje się z PCF i wyświetla poprawne informacje - na razie tylko sekundy, mam nadzieję, że z dalszą rozbudową nie będzie problemów, jak jednak się pojawią zwrócę się o pomoc. Dzięki wszystkim za wszystko i pozdrawiam :).... kod po przeróbkach: ldi r21, 160 ' adres zapisu PCF8583 (A0 = 0) ldi r22, 161...
Dorzucę TEN ZESTAW ODRADZAM. Firma GOTRONIK wypuścił wadliwą serię z układami AT24C16 i PCF8583 = konflikt adresów na I2C. Poza tym jest to to samo co And-Tech, a tu WSZYSTKO jest SMD, a w And-Techu można sobie pamięć i zegar wyjąć i wymienić. A różnica parę złotych. (ok. 30 zł)
Zamiast PCF8583 zastosuj DS1307 lub podobne. Wyprowadzenia chyba te same,a adresy nie będą się gryźć.
Na schemacie znalazłem błąd. Linia A0 układu PCF8583 powinna być połączona z plusem, a nie masą. Inaczej układy I2C będą się nawzajem zakłócać, ponieważ pamięć EEPROM i układ RTC będą miały ten sam adres bazowy.
... W takim wypadku czy rejestr daty/roku to wg pdfa 05H ale mnie jednak to nic nie mowi:( Kolejny raz wołam o pomoc... Jeżeli masz kłopot ze zrozumieniem co zawierają rejestry 05 i 06 , to ustaw w rejestrze kontrolnym(adres 00) bit nr.3(mask) i wtedy Twój kod zadziała - pomiń odczyt Year.Zmianę roku , musisz załatwić wyłącznie programowo. Piotrek
Nie, te zmienne co podałem to tylko przykład... Potrzebowałbyś jednej dodatkowej - tymczasowej, czyli tmp ... Nie jestem teraz w stanie sprawdzić, ale mogłoby być tak: tmp = Rok - 2000 tmp = tmp mod 4 ' operator mod zwraca resztę z dzielenia przez 4, 'czyli jeśli byłby rok 2007, to 2007 - 2000 = 7-> 7 mod 4 = 3 ;) i w momencie zapisu roku do...
linia A0 służy do ustalania adresu układu. Radzę poczytać notę katalogową którą można ściągnąć z internetu. W zależności czy linia A0 jest podłączona do zasilania czy do masy, zmienia się adres układu. Pozdrawiam !!
Zgadzam się adres SHT na linii to 10000000 adres innego urządzenia na przykład PCF8583 to 10100000 Czyli da się :)
Witam, 1. Nie podałeś jaki jest rozmiar pamięci EEPROM a od tego zależy sposób adresowania. Linie A0,A1,A2 masz podpięte do +5V (logiczna 1) czyli jeżeli masz pamięć mniejszą niż 24C16 to adres 0xA0 jest niewłaściwy. 2. Linia WP dla normalnego trybu pracy powinna być podpięta do GND (logiczne 0). 3. Aby zdiagnozować problemy na I2C po zakończeniu każdej...
Znowu prawie dobrze . Dlaczego ten termometr podpiołeś tak dziwacznie ? Linia A0 w PCF8583 to jest linia ustalająca adres układu i takie podłączenie spowoduje że nie odczytasz ani temperatury ani godziny .
a jaki to eeprom? bo jeśli 24c16 to wtedy jest na 100% konflikt adresów, a jeśli inny mniejszy z rodziny 24cXX to sprawdź jakie masz adresy ustawione nogami Ax w PCF8583 i pamięci
Nie analizowałem dokładnie kodu, ale na pierwszy rzut oka brakuje mi ustawienia częstotliwości taktowania magistrali (rejestr TWBR i bity TWPS1:0 w rejestrze TWSR). Maksymalna częstotliwość taktowania SCL układu PCF8583 to 100kHz. Nie napisałeś jaką częstotliwością jest taktowany procesor. Po starcie procesora te rejestry są ustawione na wartość 0 i...
A dlaczego adres PCFa masz 0x50 a nie 0xA0 ? [syntax=c]#define PCF8583_ADDR 0x50[/syntax] JarekC
generalnie w CVAVR jest przykład dla PCFa ... Jest także PCF8583.LIB ;) Wystarczy rzut okiem i wszystko staje się jasne. Jak już wspomniałem , PCF-ek przechowuje w rejestrze (adres 0x05) 2 najmłodsze bity roku , a pozostałe 14 bitów CV przechowuje w RAM-ie PCF-a , w komórce o adresie 16(0x10).Wniosek z tego jest prosty - wpierwej należy zapisać datę...
Witam Doczytaj w nocie o adresowaniu tego układu, bo coś mi się wydaje że masz adres nie taki. Pozdrawiam
Mama takie pytanko otoż w ukladzie mam zamontowane 3 uklady pracujace na magistrali I2C. Sprawdzalem czy wszystkie mi odpowiadaja i adresy za pomoca programu Dim Adres As Byte 'deklaracja zmiennej Adres = ( 0 - 255)- 1 bajt Config Scl = Portc.5 ' konfiguracja magistrali i2c Config Sda = Portc.4 I2cinit 'Config Lcd = 16 * 1a ' konfiguracja wyświetlacza...
Tak, na 100% ( zerknij na fusebity ). Tak jak napisałem wcześniej dodanie zewnętrznego epromu 24c02 robi problem - pamięci podmieniałem i dalej to samo http://obrazki.elektroda.pl/6675331400_1... Dodano po 5 może źle zainicjowałem I²C ? ale przecież PCF8583 chodzi, a adresy zapisu i odczytu z epromu są wg. mnie dobrze
Pin A0 układu jest używany do zmiany adresu układu na szynie TWI. http://obrazki.elektroda.pl/8835933200_1... Podłączając go do Vcc bądź GND zmieniasz po prostu jego wartość pomiędzy 1 a 0, co powoduje zmiany adresów. Ostatni bit jak to w adresach TWI, służy do oznaczenia kierunku transmisji.
No tak dwa bity z lewej to rok dalsze 2 to 10 dni i ostatnie 4 to dzień zrobiłem taki program Zapisuje na starcie godzinę 23:59:58 i datę 31-12 dzień wpisuję tak &B00110001 , daję mi to 31 dzień miesiąca , kiedy przechodzi data na 1-01 to zmienną dnia wyświetla mi tak &B00000001 ale bity roku nie uległy zmianie. Jak do tego nie dojdę chyba zmienię...
EEPROM i PCF łączysz równolegle na szynach SDA i SCL i nogi adresowe A0, A1, A2 łączysz tak żeby utworzyć dla każdego urządzenia osobny adres (format adresu urządzenia jest objaśniony w PDF"ie do niego). Pin Dallasa oznaczony jako DQ łączysz pod dowolny port mikrokontrolera i podciągasz do zasilania przez jakiś opornik (schemat jest w PDF'ie do tego...
Chciałem uzyć RTC jak w temacie. Wszystko pieknie i ładnie tylko ze jest jeden problem nie wiem czemu ale ukłądzk ten zlicza 2x za szybko (tzn incrementuje minute co 30s). Uzyłem nowego kwarcu 32,768KHz Umieszczem lisning programu w Bascomie.Dziwne jest to ze zegarek chodzi akurat 2 x szybciej, gdyby był kwarc uszkodzony to raczej by wcala nei działało...
no to jest ewidentnie 24c16! więc korzystaj z tego datasheetu: http://dhost.info/ky3orr/funkcje/downloa... czyli innymi słowy mówiąc masz pamięć o adresie 0b1010PPPW, gdzie PPP to 3-bitowy adres strony w pamięci, a W to bit R/W co też jednoznacznie oznacza, że w układzie nie możesz mieć m. in. zegarów typu...
Na pierwszy rzut oka I2cwbyte 15 'rejestr timera wg mnie adres to 7.
spróbuj jeszcze adres przesunąć o bit w lewo i dodać bit R/W czyli chyba (0xA0<<1)+1 To operacja, której nie wróżę powodzenia, ale sugestia odnośnie adresu jest dobra, bo teraz sprawdziłem adresy w w dokumentacji i jest: "I2C-bus slave address: read A3H; write A2H" Adres 0xA0 to ma PCF8583 - frajerski błąd z przyzwyczajenia po poprzednim RTC,...
"single"-zajmuje cztery bajty - a Ty wykorzystujesz jeden. Więc nie single a byte-chyba że naprawdę trzeba. Dla pcf8574 można ustawić 8 adresów sprzętowo-jak mię pamięć nie myli-ściągnij datasheet. A0-A3 do + lub gnd.(to adresy) Jest jeszcze pcf8574A-jeszcze 8 adresów. Urządzenie peryferyjne-to nie jak ja to rozumiem-tylko jak jest. Peryferia w procesorze-przetworniki...
Witam! Proszę o pomoc w rozwiązaniu problemu. Jedyne dane jakie dostaję od PCF-a to 165 dla wszystkich danych (godzina, miesiąc,.....) '$sim 'praca w emulacji sprzętowej $crystal = 4000000 $regfile = "m32def.dat" Config Sda = Portc.1 'konfiguracja linii SDA magistrali I2C Config Scl = Portc.0 'konfiguracja linii SCL magistrali I2C Config Lcd...
Podpowiem jedną rzecz. :) Nie definiuj nowych zmienny i nie pisz nowych funkcji żeby zapisać/odczytać rejestry alarmu, to jest gotowe. Przyglądnij się fragmentom pliku Config_PCF8583.bas : Config_PCF8583.bas jest: _clock_alarm , podczas kompilacji zmienne do obsługi alarmu zostaną dołączone. Teraz przykład jak odczytać jeden bajt Alarm Control Register...
ale nie chce mi znaleźć adresu tego PCF-a gdzie np PCF8583 znajduje bez problemu Adres PCF-a znajdziesz najprędzej w Datasheet: http://www.nxp.com/documents/data_sheet/... -> strona: 7 pkt 8.1.3 Device Adressing Sprawdź (najlepiej oscyloskopem, ewentualnie próbnikiem stanów logicznych "dioda+rezystor") jak zmienia się stan ( i czy w ogóle...
Mozliwe ze PCF8583 i 24c02 masz ustawiony pod tym samym adresem. W chwili wpisywania danych do pamieci 24c02 zegar szaleje i zawiesza sie. Sprawdz i wrazie czego zmien adres jednego z nich.
Na stronie 6 masz opisanie adresowania poszczególnyuch wartosci, i data i czas znajdują sie pod róznyymi adresami. I tak samo jak w PCF8583 z tego co widze jest to adresowane. Nie powinno byc problemów, Najlepiej sprawdź doświadczalnie, ile zajmuje zaprogramowanie czegoś takeigo, kilka minut i będzie wszystko jasne, zmien po prostu adresr R/W i zobacz....
Odpal program do sprawdzania adresu scala na szynie , może on ci nie widzi PCFa
Oki pomylilem sie chodzilo mi o pin WP czyli write protect. Jest tez jeden problem otoz programem do zczytywania adresow magistrali odczytywal mi kilka adresow a nie jeden jak pin A2 wisial w powietrzu a po podpieciu go do plusa adres zmienial sie na jeden 168. Wczesniej zczytal mi adresy 160, 162, 164, 166, jednak adres 162 gryzlby sie z adresem PCF8583....
Ad.1, Ad.3 Kondensator może być podpięty do masy lub do zasilania. Odpowiednia wartość kondensatora umożliwia precyzyjne ustawienie stałej czasowej tak aby zegar pracował dokładnie. Ad.2. A0 określa adres elementu. Jeśli podepniesz do masy, to odpowiednio wartość zero należy przesłać w ramce danych i2c. Dzięki temu do jednej magistrali i2c można podłączyć...
Witam wszystkich, Otóż napotkałem następujący problem przy obsłudze wspomnianego w temacie zegara PCF8583. Godzina obsługiwana jest prawidłowo (stąd też wnioskuje, że metody konwersji BCD <-> DEC są ok). Najpierw zamieszczę kod, później opiszę problem: Odczyt: [syntax=c] { //-------- odczyt godziny--------------------------------- char a_s[3];...
Jeżeli połączyłeś tak jak na schemacie, to używasz złych adresów. Zamień $A0 na $A2, a $A1 na $A3. Jeżeli chcesz korzystać z adresów $A0 i $A1, to nogi układu (A0) musisz podpiąć GND, a nie VCC.
jezeli nikt nie wie co gra to mam pytanie....Jezeli na PCF 8583 adres Ao= 1 układ pracuje jako licznik???wiec zeby pracowal jako zegar musi byc tam 0....czy to moze blad w dokumentacji???? Adres i tryb pracy to dwie niezależne rzeczy, w specyfikacji poprostu jest taki przykład że jeśli byś chciał mieć do jednej magistrali dołączony i zegar i licznik...
1. Jeżeli to ma być typowa sygnalizacja świetlna - czyli sekwencyjne przełączanie świateł to po co RTC ??? Wystarczy zwykłe przerwanie od Timer'a ! 2. Jeżeli jednak ma być RTC to jakie "impulsy" kolega chce zliczać ??? - w programie to raczej w takim wypadku trzeba odczytywać non-stop RTC i czekać na odpowiednią godzinę:minutę:sekundę......etc. 3. W...
Chciałem jeszcze raz na początek uruchomić PCF8583. Problem mam przy zapisie adresu rejestru (0x01), do którego chcę zapisać setne części sekund (po prostu 0 chcę wpisać). Program czeka w pętli while na ustawienie flagi TWINT. Próbowałem zapis od rejestu 0x02. Zawsze to samo. Próbowałem odczytać wartości tylko z układu PCF8583. Także program "zawiesza...
Witam, mam problem z obsługą PCF8583 pod atmege16. Podczas proby zaadresowania zegara do zapisu (0xa0), nie dostaje bitu potwierdzenia.
(at)dondu Twoje artykuły czytałem dokładnie ;-) Z kodu poniżej wycięte ustawianie portów (bonie widziałem żadnej różnicy w zużyciu prądu). Procek ustawione fusami na 8MHz wewnętrzny z podziałem przez 8 [syntax=vbnet] $crystal = 1000000 ' ustawiamy prędkość zegara $baud = 9600 ' ustawiamy prędkość transmisji $hwstack = 220 ' ustawiamy wielkość stosu...
Dorzucam coś od siebie - gotowe i sprawdzone (napisałem je do własnych projektów) funkcje w C na 8051 (kompilator Keil) do obsługi poprzez I2C pamięci EEPROM 24C16 i RTC PCF8583, a także (przy okazji) wyświetlacza LCD. Ponieważ adresy EEPROM-u i RTC pokrywają się, nie można było ich podpiąć pod tą samą magistralę.
A0 nie robi różnicy czy to podpięty do masy, vcc, a czy w ogóle wisi nie podpięty nigdzie. No to coś nie tak... Bo to powinno zmieniać adres...
Sęk w tym że i z tymi Atmela bywało różnie. Ale już znalazłem rozwiązanie. Należy zmienić adres pamięci tak aby nie był sąsiadujący z adresem PCF-a. Działa OK z kostkami z którymi były problemy.
dziala widzi go pod adresami 160 i 161 liczy na lcd widać 0-60 a A jest 0
Jeśli w rejestrze kontrolnym 00h bit b2 jest wyzerowany to śmiało można adresować 08h do 0fh jako pamięć RAM. Co do resetu programowego, to po wpisaniu b00000000 pod adres 00h rzeczywiście powinien on nastąpić. Proponuję zrobić taki myk techniczny: wpisy do rej kontrolnego (00h): - najpierw b00000000 czyli nieszczęsny reset; - potem b10000000 (128dec)...
Witam Mam dziwny problem z działaniem zegara PCF 8583 na magistrali I2C. Używam procedur do obsługi I2C ze strony: http://cyna.barlinek.biz/index.php?stron... Skleciłem na własne potrzeby procedurkę do odczytywania danych z zegara (poniżej). Problem polega na tym iż pierwsze wywołanie procedury działa ok ale kolejne już nie działa, procedurka I2C_Start...
Wygląda, że funkcje TWI_read_buf/TWI_write_buf są już dostosowane do 8583 i ustawiają startowy adres - jest on chyba przekazywany jako drugi parametr. Niestety pytający nie załączył tych funkcji w pokazanym kodzie. W takiej sytuacji może faktycznie działać nieco lepiej, jednak dlaczego czytane są tylko 3 bajty zaczynając od dziesiętnych częsci sekundy?...
Witam, poniżej zamieszczam kod z Bascoma mojego sterownika BMS, w tej chwili kontroluje temperaturę, czas, Rs232, LCD 2x16. Obsługa z klawiatury lub pilota RC5, w obecnej chwili rozwiajm go o dostęp przez internet. zajmuje ok 8kb pamięci więc w A162 będziesz miał jeszcze drugie tyle pamięci. Ja kożystam z A32 Pozdrawiam. PS. daj znać jak zakończysz...
To czy gwiazdka jest przy typie, czy przy zmiennej nie ma znaczenia. Jedni stawiają przy typie, bo gwiazdka w tym kontekście oznacza "typ wskaźnikowy na obiekt typu...". Drudzy stawiają przy nazwie zmiennej, bo np: int *a, b; to osobna deklaracja wskaźnika (*a) i zmiennej (b). Do wskaźnika można przypisać adres obiektu. Adres uzyskujesz korzystając...
Witam. Mam taki problem. Napisałem krótki programik podający adres układu I2C. Z układem PCF8583 działa prawidłowo ale jak podepne DS1307 niewidzi go. Niewiem już w czym może tkwić problem. Może jakoś pomożecie? '---------------------------------------... ' DS1307.BAS ' Moje ds1307 clock on the Mega16 futurlec board...
więc adres jego to 160 (zakładając ze A0 podłączone do masy) a nie 2 jak u Ciebie w kodzie ;)
http://obrazki.elektroda.net/79_12772194... Witam serdecznie! Ostatnio dużo zajmowałem się układami z RTC i duże utrudnienie stanowiło każdorazowe ustawianie zegarów po odłączeniu zasilania. Nie chciałem modyfikować i przy okazji psuć wyglądu obecnie posiadanych płytek testowych, więc postanowiłem wykonać na uniwersalnej płytce moduł zegarów...
Witam wszystkich serdecznie, Chciałbym prosić o pomoc w analizie błędów inicjalizacji i komunikacji z zegarem RTC, który wszyscy znają. Chciałbym przedstawić kod, który nie działa - opisać objawy i spytać o parę rzeczy, które mnie nurtują. A więc do rzeczy. Najpierw Kod: [syntax=c] #define PCF8583_ADDR ((uint16_t)(0x50)) #define I2C_SCL GPIO_Pin_6 #define...
Witaj. Najciemniej pod latarnią ;). Te flagi są na bicie 0 i 1 rejestru statusu (adres 00). Oczywiście jeżeli bit zezwolenia alarmu jest ustawiony. Pozdrowienia - teedd
Temat nie dotyczy na wprost maszyny CNC, ale chodzi o trzyosiowy napęd oparty na mikrokontrolerze sterowany aplikacją na PC, docelowo RPi i ten działa wydaje się być najbliżej tematu. Jeśli jest jakiś lepszy dział do takiego zagadnienia to prośba o przeniesienie. Generalnie mam pomysł na całość, ale zostało kilka pytań bez odpowiedzi. Koncepcja jest...
Ten zegarek ma wyprowadzenie adresowe musi mieć na nim masę dla adresu &HA0 VCC dla &HA2. A w programie to nie jestem pewien czy z tymi adresami coś nie jest też pomieszane. Najprościej podłącz zamiast zegarka eeprom o takim samym adresie i się dowiesz czy masz zegarek sprawny. Na początek możesz zmasować wyprowadzenie SDA i zobacz czy program wyświetli...
Gdzie można znaleźć taka kartę? czy naprawdę aż tak ciężko odczytać adres strony producenta z PCB - a przynajmniej wklepać nazwę producenta w google?
W układzie PCF8583 informacja o czasie zapisana jest w kodzie BCD. Ponadto najstarsze bity też są wykorzystywane. Do poprawnego działania programu konieczne jest wyzerowanie tych najstarszych bitów i przejście z kodu BCD na ASCII (np. 27 sekund zapisane jest w rejestrze jako 0x27 binarnie 00100111 przy czy najstarszy bit może mieć dowolną wartość czyli...
Zbudowałem sobie zegarek z tiny26 + pcf8583 + wyświetlacz nokia3310. Trochę mało pamięci na znaki i kod programu ale w wersji minimalnej działa poprawnie. Dla ciekawostki dodam, że wyświetlacz działa przy zasilaniu 5V i jeszcze się nie uszkodził (mimo zaleceń na 3.3V). Niestety jak na zegarek naręczny byłby drogi w eksploatacji. Pożera mi 1 baterię...
program napisany jest w asmemblerze według takiego schematu jak ty dałeś. wiem tylko jedno. program odczytuje tylko jeden bajt (pierwszy). czyli jak ty masz adres komurki =2 to mi odczyta sekundy- reszta będzie=0, jesli adres będzie równy 3 to odczyta minuty, następne bedą równe zero....
Przepisałem kod ale TO TYLKO NIE FUNKCJONUJĄCY SZKIELET do wglądu.. [syntax=c] #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include <avr/delay.h> #include "i2c_twi.h" //********** funkcje konwersji char dec_na_bcd(char num) {return ((num/10 * 16) + (num % 10));} char bcd_na_dec(char...
Witam. Mam problem z zegarem na wyświetlaczach 7-segmentowych. Minuty po 09 wyświetla 16 zamiast 10, sekundy tak samo. Zawsze tak się dzieje, więc musi to być błąd w programie, ale ja już się poddałem, co może być nie tak. Config PortA = Output PortA = &HFF Config Portd = Output Portd = &Hff Config Portb = Output config portc.0 = output config...
Po pierwsze, jesli jeszcze nie masz, to pobierz sobie dokumentację pdf, tego scalaka, na przykład stąd: http://katalogi.iele.polsl.gliwice.pl Jeśli dobrze pamiętam, to w PCF8583, trzeba skonfigurować bajt control/status (adres 00H), ustawiając bit 2, co odblokuje rejestr kontrolny alarmu (adres 08H). W tym rejestrze trzeba ustawić odpowiednie bity,...
A co z adresem 0x08. Co wpisać do niego żeby uruchomić odpowiedni alarm. Czytałem już datascheeta z tysiąc razy i ciężko z niego coś wywnioskować.
Myślałem że to działa jak zegarki PCF8583, lub DS1307. Który zegarek jest widziany pod dwoma adresami? Możesz zobaczyć układ pod adresem parzystym (do zapisu) i nieparzystym (do odczytu) ale nie pod dwoma do zapisu. Zmienna Err czemuś służy. Tak właśnie są pisane programy, zakładają, że wszystko działa poprawnie. Nie rozumie takiego podejścia. Byle...
Witam moze ktos mi pomoze, potrzebuje program ktory bedzie pobieral z klawiatury 1234567890#* kod (4 cyfrowy) i zapisywal, dokladnych szczegołów nie znam ;/ ale chodzi o program ktory by po wcisnieciu odp sekwencji klawiszy np #1* pobieral 4 cyfry i zapisywal do pamieci (zeby sie puzniej dalo tez te wpisy kasowac) wiem ze chaotycznie pisze, ale jestes...
adres pcf8583 pcf8583 adres timer pcf8583 asembler
toroid zasilacz impulsowy nadajnik niskich częstotliwości huawei ładowanie
widzenie przez ściany widzenie przez ściany
Migający żółty trójkąt w drukarce HP LaserJet 1320 Radio CD 30 Opel Meriva - brak podświetlenia i stacji