Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 26 lis 2024, o 09:41


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 19 lip 2016, o 06:36 
Offline
Nowy

Dołączył(a): 30 paź 2014
Posty: 18
Pomógł: 0

Witam!

Mam ciekawy problem z DS3231 - niezależnie czy Arduino z płytką ArduinoProMini czy też Bascom i Atmega8. Mogę ustawić czas w DS3231, czas jest podtrzymywany przez baterię ale nie rusza się - ani na baterii ani na zasilaniu "normalnym" stoi w miejscu. Nie widziałem ani razu by zmieniła się na nim sekunda. Nigdy.

Co sprawdziłem?

* Testowałem zarówno na Arduino, jak i Atmega 8
* Połączenia lutownicze z układem - są ok, ostrymi szpilkami badałem bezpośrednio przy układzie czy jest przewodzenie
* Zarówno z baterią jak i bez baterii
* Zasilanie zarówno 3,3V jak i 5V (w nocie napisane jest do 5,5V więc OK)
* Podciąganie rezystorów do wyjść INT/SQW, RST, 32khz do plusa
* Inne zasilanie
* Różne kody z różnych stron, oraz własne twory

Co jest zrobione?

* Rezystory 10kom od SDA, SCL (ale to nie ma znaczenia bo komunikacja jak widać odbywa się)
* kondensator 100nF zaraz przy nóżce zasilającej, dodatkowo elektrolit 1000uF
* Bateria w koszyczku (bez baterii też nie rusza się)

Fakty:

* Zegar się nie rusza - nie dodaje sekund
* Mogę ustawić godzinę, datę, - jest ona podtrzymywana przez baterię po odłączeniu zasilania
* Na wyjściu SQW pomimo ustawienia - nie ma sygnału 1Hz
* sygnalu 32khz nie sprawdzę bo nie mam oscyloskopu, ale to raczej nie istotne bo SQW i tak nie daje 1Hz
* Ciągle tylko 1 stycznia roku 2000, 00:00:00...

Została jedna rzecz: układ do podmiany :D , ale może macie jakieś pomysły jeszcze?. Nie widzę winy w kodzie - każdy kod odpala się znaleziony w Internecie.

Przykładowy użyty kod:


Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
[/syntax]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lip 2016, o 08:39 
Offline
Użytkownik

Dołączył(a): 18 kwi 2013
Posty: 181
Lokalizacja: Kraków
Pomógł: 30

Prawdopodobnie w rejestrze Control Register o adresie 0x0E masz ustawiony 7 bit na 1. To jest zezwolenie na pracę oscylatora EOSC (Enable Oscillator). Po ustawieniu czasu powinieneś ten bit wyzerować.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lip 2016, o 11:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 gru 2014
Posty: 77
Lokalizacja: Gorlice
Pomógł: 5

Próbowałeś wg tego poradnika Mirka http://mirekk36.blogspot.com/2013/11/rt ... ek-na.html
Mnie działa bez problemu na Atmedze16 bez dodatków goła atmega + ds gotowiec kupiony + przewody w stykówce.
Poza tym co to masz za ds-a jak gotowiec kupiony czy sam robiłeś płytkę do niego ??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lip 2016, o 11:59 
Offline
Nowy

Dołączył(a): 30 paź 2014
Posty: 18
Pomógł: 0

janusz17 napisał(a):
Prawdopodobnie w rejestrze Control Register o adresie 0x0E masz ustawiony 7 bit na 1. To jest zezwolenie na pracę oscylatora EOSC (Enable Oscillator). Po ustawieniu czasu powinieneś ten bit wyzerować.


Moje rejestry wyglądają w ten sposób:

Register Bit Values

Kod:
0X00      00000000
0X01      00000000
0X02      00000000
0X03      00000001
0X04      00000001
0X05      00000001
0X06      00000000
0X07      00001000
0X08      00101110
0X09      00010000
0X0A      00000100
0X0B      00000001
0X0C      01110000
0X0D      00011000
0X0E      00100000
0X0F      10001000
0X10      00000000
0X11      00000000
0X12      00000000


Andrzej Tak oglądałem Mirka poradnik. Płytkę robiłem sam - przejściówka na stykówkę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lip 2016, o 13:03 
Offline
Użytkownik

Dołączył(a): 18 kwi 2013
Posty: 181
Lokalizacja: Kraków
Pomógł: 30

W rejestrze o adresie 0x0F (Status Register) masz ustawiony bit 7 (OSF), czyli flagę zatrzymania oscylatora. W nocie PDF są opisane 4 przypadki kiedy ta flaga jest ustawiona. Musisz chyba sprawdzić jak masz podłączone zasilanie, a zawłaszcza pin gdzie podłącza się baterię, bo jeśli nie ma baterii to powinien on być zwarty do masy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lip 2016, o 16:51 
Offline
Nowy

Dołączył(a): 30 paź 2014
Posty: 18
Pomógł: 0

janusz17 napisał(a):
W rejestrze o adresie 0x0F (Status Register) masz ustawiony bit 7 (OSF), czyli flagę zatrzymania oscylatora. W nocie PDF są opisane 4 przypadki kiedy ta flaga jest ustawiona. Musisz chyba sprawdzić jak masz podłączone zasilanie, a zawłaszcza pin gdzie podłącza się baterię, bo jeśli nie ma baterii to powinien on być zwarty do masy.


Bateria zwarta do masy. Oczywiście końcówki N/C i GND również. Moje rejestry po wyzerowaniu 0x0F wyglądają teraz tak:

Kod:
Register   Bit Values

0X00      00000000
0X01      00000000
0X02      00000000
0X03      00000001
0X04      00000001
0X05      00000001
0X06      00000000
0X07      00000000
0X08      10101110
0X09      00010001
0X0A      00000100
0X0B      00000001
0X0C      01010000
0X0D      01011000
0X0E      00011100
0X0F      00000000
0X10      00000000
0X11      00000000
0X12      00000000


Zegar stoi. Kombinowałem całą noc i nigdy nie widziałem by ruszył się o sekundę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lip 2016, o 02:59 
Offline
Nowy

Dołączył(a): 30 paź 2014
Posty: 18
Pomógł: 0

Zegar ruszył. Przelutowałem go jeszcze raz (kolejny już raz..) ale tym razem używając cyny z OŁOWIEM. Widocznie nie były to idealne połączenia.

Będę informował jak pojawią się jeszcze jakieś problemy.

Dziękuję za pomoc. To co napisaliście na pewno mi się przyda.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lip 2016, o 15:36 
Offline
Nowy

Dołączył(a): 10 sty 2015
Posty: 13
Pomógł: 0

Jednak ołów nie taki szkodliwy. W tym przypadku nawet uleczył.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lip 2016, o 15:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8587
Pomógł: 337

Cytuj:
ale tym razem używając cyny z OŁOWIEM.


cyna bezołowiowa wymaga wyższej temperatury grota i dobrego topnika by połączenie było pewne
i nie tworzył się zimny lut , lub mikropęknięcia w spoinie

natomiast ołów powoduje łatwiejsze topnienie cyny i spójność połaczenia przy niższych temperaturach grota topnik zawarty w cynie (czesto) w zupełności wystarcza

ot taka przypadłość

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO