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



Teraz jest 22 gru 2024, o 14:54


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 28 lut 2018, o 11:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 paź 2016
Posty: 105
Pomógł: 1

- robie taki mały timer do "akwarium", ma o godzinie 4.10 , każdego dnia włączyć urządzenie poprzez zwarcie dwóch przycisków.
- zwarcie realizuję na przekażniku.
- serce układu ma stanowić RTC DS3231 oraz uP Tiny85, połączone poprzez I2C.
- z oprogramowniem DS3231 nie ma problemu, to działa podłączone zastępczo do Arduino miniPro 3V3, 16 Mhz.
- za to Tiny85 (na wewnętrznym generatorze 8 MHz) nie chce działać jako TinyMaster I2C, zmieniałem biblioteki bez efektu.
- adres I2C jest poprawny, sprawdzone skanerem I2C, sprawdzałem jeszcze debuggerem I2C ale chyba nie potrafię jego obslugiwać.
- czy ktoś może udostępnić działającą bibliotekę I2C na Tiny85.
- poniżej zrzut z pracy z DS3231, ustawiono alarm na opcję sekundową.

Obrazek



Ostatnio edytowano 1 mar 2018, o 10:45 przez spairo, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lut 2018, o 18:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Jak już ci się znudzi, to polecam świetny projekt. http://magu.pl/aqma-led-control

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lut 2018, o 18:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1032
Lokalizacja: Trójmiasto
Pomógł: 190

spairo napisał(a):
- serce układu ma stanowić RTC DS3231 oraz uP Tiny32, polaczone poprzez I2C.
To w końcu attiny32 czy attiny85? Wogule jest coś takiego jak Tiny32?
spairo napisał(a):
- za to Tiny85 (na wewnętrznym generatorze 8 MHz) nie chce działać jako TinyMaster I2C, zmieniałem biblioteki bez efektu.
a czytałeś notę procka i porównywałeś biblioteki których chcesz użyć? Attiny85 nie posiada modułu I2C, tylko USI które to może pracować w trybie I2C - pytanie czy w twojej bibliotece jest to uwzględnione.
I w końcu trzecia sprawa o której wspomniał kolega wyżej. Otóż w arduino przyjęto inną zasadę co do adresowania urządzeń na szynie I2C. Na adres składa się 7 bitów w pierwszym wysyłanym bajcie, natomiast ósmy najmłodszy bit oznacza zopis lub odczyt. W arduino przyjęto tak że adres podaje się poprzez przesunięcie całego bajtu w prawo o 1, niejako usuwając bit zapisu/odczytu, natomiast biblioteki na avr są napisane tak że adres jest podawany z pozostawieniem bitu zapisu/odczytu tylko że wyzerowanym. Tak więc adres w arduino dla DS to 0x68 (binarnie 01101000) natomiast w bibliotekach avr będzie to 0xD0 (binarnie 11010000). Pytanie jak jest w bibliotekach których używasz?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 mar 2018, o 10:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 paź 2016
Posty: 105
Pomógł: 1

@tomson5, dzięki za linka, pooglądałem.
- moje urządzenie ma być zasilane z 4 x AAA baterii.
- uruchamiane tylko na czas reakcji alarmu.
- biblioteki stosuje tak, jak użytkownicy to podają w swoich projektach.
- dzięki za zainteresowanie, męcze projekt dalej.
- to ma być wymiarowo mały projekt dlatego chcę tam zmieścić ten Tiny85.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 mar 2018, o 20:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1032
Lokalizacja: Trójmiasto
Pomógł: 190

A masz podciągnięte linie SDA i SCL do Vcc?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2018, o 07:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 paź 2016
Posty: 105
Pomógł: 1

- linie podciagnięte.
- z Uno R3 działa bez problemu na adresie 0x3C
- z tiny85 na adresie 0x78 nie działa.(przesuniete 0x38 o 1 w lewo)
- jak podłączam skaner I2C na arduino to widzi ten mój adres ale dane odczytuje jako 0xff.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2018, o 13:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1032
Lokalizacja: Trójmiasto
Pomógł: 190

a tego attiny85 programujesz z środowiska arduino czy z innego środowiska?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2018, o 15:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 paź 2016
Posty: 105
Pomógł: 1

- programuje Tiny85 ze środowiska Arduino As ISP lub poprzez ISP za pomocą programatora Pololu.
- programuje chyba dobrze, bojak zaprogramuje Tiny85-blink to dioda na D0 lub D1 błyka.
- znalazłem program I2C debugger, I2C repl by Rambo, ale nie bardzo umiem go obsługiwać.
- start [, stop ], =4 adres i2c, S - skan i2c to znam, ale jak odczytac rejestry to nie wiem, nie ma jakiegos tutorialu do tego programu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2018, o 16:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1032
Lokalizacja: Trójmiasto
Pomógł: 190

Jeśli programujesz przez arduino to adres musisz podawać zgodnie z konwencją arduino czyli 0x3C.
Wydaje mi się że problem leży bardziej po stronie sprzętu. Attiny85 nie posiada na pokładzie sprzętowego układu I2C/TWI tak jak atmega328. Attiny ma USI czyli uniwersal serial interface który należałoby odpowiednio zainicjować do pracy jako I2C, a zapewne biblioteki których próbujesz używać tego nie robią tylko chcą działać na standardowym module I2C.
Chyba najprostszym rozwiązaniem było by skorzystanie z tzw soft_I2C która może pracować na dowolnych pinach i dowolnym procku nawet bez USI czy I2C, lub też poszukać biblioteki I2C dedykowanej dla procka attiny85 która będzie wspierać moduł USI.

------------------------ [ Dodano po: 3 minutach ]

Tu masz coś co powinno Ci pomóc https://playground.arduino.cc/Code/USIi2c



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2018, o 21:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 paź 2016
Posty: 105
Pomógł: 1

- dzięki za przypomnienie tego linka, dotarłem wcześniej ale też nie dziala.
- znalazłem oprócz tego że biblioteka tinywireM ma blędy, poprawiłem ale to nic nie dało.
- jutro chyba podepne analizator logiczny i zobaczę w czym problem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2018, o 22:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1032
Lokalizacja: Trójmiasto
Pomógł: 190

No jeśli dysponujesz analizatorem to niewątpliwie będzie to najszybsza droga do sukcesu.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 mar 2018, o 20:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 paź 2016
Posty: 105
Pomógł: 1

- problem został rozwiązany bez analizatora.
- winna była biblioteka Wire od Tiny85, znalazłem nowszą bibliotekę, poprawiłem w niej kilka ewidentnych błędów i Slave oraz Master pod Tiny 85 działa.
- dziękuję za pomoc, programator akwarium został oddany użytkownikowi.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 mar 2018, o 05:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 paź 2016
Posty: 105
Pomógł: 1

- z euforii zapomniałem podać jak to rozwiazałem.
- biblioteka z tego linku.
https://github.com/sudar/TinyWire
- w bibliotece poprawić nazwy jak na zrzucie.
- DS3231 jest programowany zgodnie z tym artykułem w linku.
https://www.allaboutcircuits.com/projec ... ime-clock/
- robocza wersja programu pod Tiny85 poniżej.

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


Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 mar 2018, o 14:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 paź 2016
Posty: 105
Pomógł: 1

- programowanie timera Ds3231
1.- przełącznik w pozycje Program
2. podłaczyc łączówke I2C.
3. Arduino w trybie Arduino Uno, wybrac port COM dla Arduino
4. wgrac program RTCDS3231v3 do Arduino
5. ustawic parametry dla Alarmu
6. w linii [163] programu odblokować //set(clock);, zapisać program do Arduino.
7. zablokowac //set(clock);, zapisać program do Arduino.
8. odłączyć łączówkę I2C.
- włożyć wszystkie diody do podstawek, obecnie powinny być zapalone LED-BAT oraz LED-VCC.

- programowanie AT Tiny85 programem Tiny85M_Read_RTC3231.ino
1. do Arduino wgraj firmowy program Arduino As ISP.
2. podłacz taśmę do złąz ISP w Arduino i Timerze.
3. zmien płytkę na Tiny85, plik preferencje , dodatkowe adresy ustaw na link
http://drazzy.com/package_drazzy.com_index.json
w menadzerze płytek wgraj biblioteki by Spence Konde wersja 1.1.5.
4. wybierz płytke Attiny 25/45/85 , ustaw kolejno:
Save Eeprom == retained
Timer 1 Clock == CPU
LTO == disabled
B.O.D == disabled
Chip == ATTiny85
Clock == 8 MHz internal
port
Programator == Arduino As ISP
wypal bootloader
- ja mam przerobiony Arduino R3 aby na pinie Reset ISP był sygnał z pinu 10 Arduino i programowanie dziła bez problemu.
4. Szkic, wgraj uzywająć programatora.
5. podczas wgrywania miga LED-Job.
6. po skończonym programowaniu przełącz przełacznik na Praca.

- Praca Timera.
diody LED włozone w podstawki
timer podłaczony do zasilania 2 x AAA.
przełącznik w pozycji Praca, świeci tylko LED-BAT
powstaje Alarm, zapala sie LED-VCC, dwa razy miga LED-JOB, czyli tiny85 pracuje.
zapala sie LEd-ON na 2 sek, zapala sie LED-START na 2 sek
mruga LED-JOB 10 razy, tiny85 przechodzi w tryb shutdown, wyłączenia.
świeci tylko LED-BAT
- pliki EAGLe z projektu timera.

Obrazek


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 mar 2018, o 15:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 paź 2016
Posty: 105
Pomógł: 1

- dzięki za sugestie, zastosowanie ATtiny85V przedłuży żywot baterii.
- z zamówienia zostały 4 laminaty do tego projektu, jeśli ktoś chętny proszę o info na PW (laminat zostanie wysłany listem ekonomicznym, wszystko za free.)
- proszę tylko zobaczyć jakie kombincje trzeba było zrobić z DS3231 aby to działało.
- drugi błąd to raster gniazd JST-XH, na płytce jest 2 mm, miało byc 2.54 mm, czyli trzeba zmienić gniazdo/wtyk lub nawiercić pod raster 2.54.
- trzeci to przełącznik, można było dać dwie zworki z goldpinów.
- czwarty ...

ObrazekObrazek



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: 15 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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