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



Teraz jest 30 mar 2026, o 12:53


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 1 sty 2018, o 22:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 cze 2012
Posty: 414
Lokalizacja: Oborniki
Pomógł: 5

Witam.

Natknąłem się na możliwość dogadywania się m.in. z czujnikami temperatury DS18B20 przez magistralę 1Wire sterowaną sprzętowo przez UART. Do poszukiwać natchnęła mnie wypowiedź z elektrody:

Freddie Chopin napisał(a):
Zrób 1-wire na UARTcie, robienie tego inaczej jest zupełnie bezsensowne.

4\/3!!


Do tego znalazłem poradę od producenta:

"TUTORIAL 214
Using a UART to Implement a 1-Wire Bus Master"
https://www.maximintegrated.com/en/app-notes/index.mvp/id/214

Czy ma ktoś z tym jakieś doświadczenie? Być może jakieś kody/przykłady?
Oczywiście jeśli nie, to sam będę odkrywał koło na nowo, aczkolwiek być może z Waszą pomocą nie będzie to konieczne:)

_________________
Pozdrawiam:
Mikołaj



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sty 2018, o 00:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 cze 2012
Posty: 414
Lokalizacja: Oborniki
Pomógł: 5

Z tego co widzę, to w tym artykule jest opisane jak używać timera do tego celu, nie UART. Też jest to jakaś opcja, ale wolałbym wersje z UARTEM :)

Dzięki :)

Wysłane z mojego Redmi Note 4 przy użyciu Tapatalka

_________________
Pozdrawiam:
Mikołaj



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sty 2018, o 00:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

https://cnnblike.com/post/stm32-OneWire/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sty 2018, o 01:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 cze 2012
Posty: 414
Lokalizacja: Oborniki
Pomógł: 5

anshar napisał(a):


Dziękuję! Wygląda to nieźle :) Jutro przetestuję.

_________________
Pozdrawiam:
Mikołaj



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sty 2018, o 08:04 
Offline
Użytkownik

Dołączył(a): 08 lut 2016
Posty: 96
Pomógł: 2

Jeżeli jesteś chętny to mogę wrzucić przykład dla STM32F411CE jak uporządkuję kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sty 2018, o 10:48 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Ja zrobiłem na delayach biblioteke pod F103. Trzeba dożycia powołać timer co tyka co 5us i wywoływać w nim funkcje delaydecrement. Działa ok. Też chcę to przeportowac pod uart.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sty 2018, o 15:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 cze 2012
Posty: 414
Lokalizacja: Oborniki
Pomógł: 5

StaryAnoda napisał(a):
Jeżeli jesteś chętny to mogę wrzucić przykład dla STM32F411CE jak uporządkuję kod.


Oczywiście jeśli będziesz miał możliwość, to chętnie :)

Nefarious19 napisał(a):
Ja zrobiłem na delayach biblioteke pod F103. Trzeba dożycia powołać timer co tyka co 5us i wywoływać w nim funkcje delaydecrement. Działa ok. Też chcę to przeportowac pod uart.


To również nie jest zła opcja. Będę próbował podobnie :) Dzięki!

_________________
Pozdrawiam:
Mikołaj



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sty 2018, o 16:40 
Offline
Użytkownik

Dołączył(a): 08 lut 2016
Posty: 96
Pomógł: 2

Ok to tak nie wiem czy powinienem się chwalić tym programem ale macie :)
Wiadomo ta pętla (for(volatile uint32_t I = 0; I != 1000000; I++){}
) zastępuję opóźnienie około 750 ms. Wiadomo w wersji finalnej trzeba to zastąpić timerem

Kod do odczytu temperatury z DS18B20:

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


W niedalekiej przyszłości zaprezentuję kod już bardziej strawny. Jednak wydaję mi się, że po tym co zamieścilem idea jest już zrozumiała :)

Wada jest taka że po odłączeniu i podłączeniu czujnika będzie ciągle wskazywał -0.0 do ponownego zresetowania programu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2018, o 00:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2017
Posty: 368
Lokalizacja: Gliwice
Pomógł: 34

StaryAnoda napisał(a):
Ok to tak nie wiem czy powinienem się chwalić tym programem ale macie :)
Wiadomo ta pętla (for(volatile uint32_t I = 0; I != 1000000; I++){}
) zastępuję opóźnienie około 750 ms.

Domyślnie w większości przykładów czy bibliotek do STM Systick sobie tyka sobie co 1 ms.
Proste kopiuj wklej z Bluebooka obsługi soft timerów i problem rozwiązany, choćby tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Piszę to głównie po to by wskazać jak łatwo można łączyć światy AVR z STM.
Jak czerpać wiedzę z KolorBooków i bezpośrednio używać jej do np STM32.
Do takiego kodu dorzucamy jeszcze obsługę enkodera od Sylwka i już połowa projektu załatwiona.
To takie noworoczne przemyślenia, poza tematem :) ale czasami warto zatrzymać się przy refleksji... :)
Wszystkiego najlepszego w Nowym Roku :)



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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO