A ten "jakiś czujnik" to komunikuje się ze światem zewnętrznym po SPI, I2C, USART TTL, RS232, RS485, 1Wire...?
A ja tak się zastanawiam po co męczyć się z timerami skoro usart w trybie halfduplex sie do 1wire nadaje idealnie? Bo USART może być potrzebny w projekcie np. do Modbusa ? ;)
udało mi się z tego kodu wyciąć komunikacje 1wire i całą resztę potrzebną do o debrania temperatury z ds18b20 i wklejiłem to do kodu z którym działa mi lcd troche się męczyłem aż na wyświetlaczu w miejscu gdzie powinna być temperatura pokazało sie -00.2 ds18b20 nie reagował na zmiany temperatury wszystkie delay_ms zwiekszyłem 8 razy bo mój atmega chodzi...
Ja nie widzę problemu w izolacji 1WIRE, trzeba użyć 2 szybkich transoptorów (np. 6N137) i 2 linii mikrokontrolera - osobnych do nadawania i odbioru. Można wykorzystać USART, co dodatkowo uprości obsługę magistrali od strony programowej. Oczywiście dodatkowo potrzebna będzie izolowana przetworniczka DC/DC do zasilania czujników i elektroniki za transoptorami....
Witam, 1. Niewiele więcej miejsca zajęła by ci ATmega8 lub mega48 lup podobny w obudowie TQFP32, a one mają sprzętowy USART który przydał by się tu do RS485 2. Do czego jest ta zworka JP2? Zwiększ wartość rezystora R2 podciągającego 1Wire. Na co najmniej 1k (optymalnie 2,2-4,7k) 3. Staraj sienie rysować połączeń pod kątem 45 stopnie. Przy większych...
Jedyną przewagą LM35 nad DS18b20 którą dostrzegam to ta, że nie potrzeba implementować protokołu 1-wire który bywa kłopotliwy w zetknięciu z przerwaniami. Oooj tam Kolego kłopotliwy. Zerknij: - [url=http://www.firma.stsystem.pl/compon...
ATTiny ma moduł USI, w zależności od konfiguracji działa jako USART, SPI, I2C z lekkim wsparciem programowym.
Witam, RXD jest alternatywną funkcją portu, UART lub USART - sprzętowe wsparcie dla szeregowej transmisji danych, nie korzystasz z tego przy implementacji 1wire. Możesz dowolnie zmienić pin procesora do którego będzie podłączony termometr. Pozdrawiam. GSM P.S. Kod który wkleiłeś pisał ktoś niekonsekwentny. Aby uzyskać łatwą zmianę używanego pinu, poza...
Przerwania co 4ms nie powinny mieć wpływu na ICP, na OW też nie, bo sekcje krytyczne czasowo zamykasz w bloki atomowe (cli/sei). Jedyne co się może stać to nieznaczne opóźnienie reakcji na przerwanie spowodowane jego blokowaniem. Jeśli jednak przerabiasz płytkę to pomyśl o tym wykorzystaniu USART.
Tak, tylko czy nie będzie problemów. Wiadomo, że 1W jest wrażliwe na odstępy czasowe, czy nie będzie problemów z przerwaniami od USB. Niby dlaczego, są takie konstrukcje USB-1wire nawet na elektrodzie, np. tutaj http://www.elektroda.pl/rtvforum/topic15...
No tak doczytałem o dokładności taktowania w rozdziale 24. Zaniepokoiło mnie jednak to, że wymagane jest do 1WIRE poprzez USART wykorzystanie pinu D0. Ja mam tam podpięte katody wyświetlacza (całe 8 bitów portu D). Mam w związku z tym kilka pytań: 1. Czy darować sobie w takim razie 1W po USART i bawić się z _delay'ami? mam dwa czujniki podpięte pod...
AVE... Ogólnie całkiem fajne urządzenie, ale mimo to mam dwie drobne uwagi: 1. Skoro cały opis robisz po polsku, to zamiast "Power" mogłeś napisać "Zasilanie" czy coś w tym stylu. 2. Strasznie wielka płytka. Dlaczegóż? Z miejsca idzie zmniejszyć ją o 1/3... I jedno pytanie: czemu RS-232? Są przelotki USART<>USB za grosze, które są widziane w systemie...
Nieprawda - 1wire można relizować półsprzętowo na atmedze. Półsprzętowo owszem, interesujące rozwiązanie. W zależności od wykorzystywanych zasobów można zdecydować o użyciu do tego celu właśnie USART-a albo Timer-a.
Nota, co prawda dla AVR, ale te same reguły obowiązują dla innych USART. Pobieranie prowizji punktowej za publicznie dostępne i darmowe materiały jest sprzeczne z etyką i regulaminem forum. Załącznik usunąłem i dodałem link to źródła.
Witam Chciałbym zczytywac temp. z termometru ds18b20 za pomocą 1wire i wyświetlić ją w konsoli. Przejrzałem i kombinowałem z wieloma już przykładami. Najpopularniejszą metoda jest USART, jednak na tę chwilę po deklaracji moje pomysły się kończą :roll: . Macie już jakieś doświadczenia na tym polu? Prosze o sugestię. ;)
Spróbowałem odblokowania przerwań na czas opóźnień w resecie i działa to bardzo dobrze. Nie ma błędów komunikacji, a na silniku nie słychać już żadnych przerw - praca jest płynna. Czyli chyba problem rozwiązany. Ja korzystałem z tego opisu Atmela, do którego dołączony był przykład: http://www.atmel.com/images/doc2579.pdf . Napisany co prawda na Atmegi,...
Sprawdż do jakiego portu-pinu podłączyłeś magistralę 1Wire. Jeżeli używasz portu alternatywnego RXD TXD warto wyzerować programowo bity UART Reset UCR.3 Reset UCR.4 Miałem kiedyś podobny problem W rejestrze UCR (UART Control Register) bity 3 i 4 nie są standardowo ustawiane, co oznacza że końcówki TXD i RXD nie są używane przez UART. Nie jest to jednak...
Zacznę od końca - otóż nie można. Transmisja synchroniczna będzie bez specjalnych nadajników/odbiorników linii działać tylko na małe odległości. 1-wire działa na odległości setek metrów. Napisałem też, że zalety z enumeracji urządzeń pojawiaja się jeśli mamy elastyczną sieć, do której możemy wpinać i wypinać urządzenia. Dodano po 7 Podstawową zaletą...
Po kolei: - w reset_pulse wysyłasz coś przez USART, wysłanie tego trochę trwa, w zależności od bitrate może trwać całkiem długo, co rujnuje timingi... - w write - początkiem nowej ramki jest krótki impuls ujemny. Może on trwać 1-2 us, to wystarczy. Więc jeśli nadajesz 0 to zrób 0 przez cały czas trwania ramki (prawie 60 us), a jeśli jeden, to po 1-2...
Rezystor włączysz w przewód na którym chcesz mierzyć napięcie. Przetwonik podłączasz tak żeby mierzyć napięcie na rezystorze czyli równolegle do rezystora. W zależności od tego jakie ma wejścia Twój przetwornik (czy symetryczne czy asymetryczne) trzeba dobudować układ na wzmacniaczu operacyjnym albo jakoś "chytrze" włączyć rezystor np jedną końcówką...
Jeżeli chodzi o mój problem, to niestety wykluczone bo tak jak rozrysowałem mam tylko po 1 przewodzie łączącym centralkę z podmodułami (najlepiej byłoby w ogóle z tego przewodu też układ zasilać, ale na upartego moge przerobić uziemienie układu na VCC i będzie to co na rysunku wyżej - a GND inne się zawsze jakieś znajdzie...:)). Co więcej zamiast męczyć...
1. co do odliczania czasu to polecam przycisk szukaj, było to już kiedyś omawiane. 2. co do obslugi 1wire z poziomu pc, to polecam poczytać noty aplikacyjne, tam jest dokładnie podane jak to obsłuzyć z poziomu portu rs232 wykorzystując układ USART do generowania dokładnych przebiegów czasowych (z własnej strony moge zapewnić że to działa). Druga możliwość...
Dzięki, trochę mi rozjaśnił ten kod. Napisałem funkcję, żeby sprawdzić jak reaguje czujnik. Po wysłaniu startu przez pc, czujnik odpowiada, jednak gdy dochodzi do transmisji danych mam cały czas stan wysoki od czujnika. Nota katalogowa mówi, sprawdzić poprawność połączeń elektrycznych. hmmm Zapomniałem dodać że procesor pracuje na wewnętrznym oscylatorze...
(at)R-MIK Biorąc pod uwagę, że to i tak jest tylko programowy interfejs 1wire to chyba i tak lepszym rozwiązaniem byłby np. OWFS + DS2482-100, cudów to nie kosztuje a z mosfetem daje możliwość zrobienia porządnego parasitic mode. DS2480 nie potrzebuje dodatkowego tranzystora. Ma tez inne zaletym jak ustawianie czasu narastania sygnałów. Na temat DS2482/4...
Właśnie skończyłem budować taki układ ale oparty o transmisję radiową na modułach MOBOT RCRv2 (bez problemów zasięg z piwnicy na 2 piętro, takze w otwartym terenie też nie powinno być problemów) Koszt jednego modułu to blisko 50zł ale w razie awarii jeden stacji nie pada cały system jak to się czasem dzieje przy rs485 (znam z autopsji z pracy w dużej...
Rozwiązanie jest proste - stosować _delay_us z <util\delay.h>. Przy 1MHz co prawda można minimalnie mieć 3us opóźnienie, ale w tym przypadku jest to bez znaczenia. A BTW, dziwię się po co tak komplikować prostą sprawę jaką jest obsługa 1-w, skoro nawet w notach aplikacyjnych Atmela pokazane jest jak to zrobić na USART, bez jakichkolwiek opóźnień,...
Witam juz dziala :-) poprostu bylo trzeba uzyc polecenia fdevopen Uart inicjalizuje tak ->UCR = (1<<RXCIE)|(1<<TXEN)|(1<&... UBRR=0x17; procedurke wyslania pojedynczego znaku nazwalem nie putchar tylko UART_putchar ale cos mi sie wydaje ze zabardzo skomplikowalem sprawe :-) Mam jeszcze jedno pytanie jak zrobic obsluge 1wire ?...
Początek zabawy, i bliski jestem stwierdzenia, że to nie dla mnie. A więc, albo ktoś podpowie, albo pogryzę tego procka. Problem jest następujący: Po przerwaniu, program zapala leda i wychodzi z pętli WHILE (zaczyna main()) czyli mój LED zgaszony. Lub bez przerwania, prog. wchodzi do petli WHILE opuszcza ją i zaczyna od main(). czyli na terminalu widzę...
Mam jeszcze pytanie na temat zabezpieczenia 1wire. Czy jest możliwość izolacji pinu odpowiedzialnego za komunikację 1W np. za pomocą dwóch szybkich transoptorów? Albo ewentualnie jego wzmocnienie jakimiś tranzystorami. Czy są jakieś inne sprawdzone i pewne sposoby? Warto by jak pisze kolega TMF zabezpieczyć ten pin gdyż linia 1W będzie miała w całości...
Witam Bardziej profesjonalnie jest wszystkie układy potraktować jako slave . Każdy słucha i czeka na przerwanie z uarta , jak je otrzymuje odbiera zawartość z udr porównuje i albo odbiera dalej albo ignoruje i czeka na kolejny adres . Atmel wyposażył układy w tryb multimaster ,który się do tego świetnie nadaje i warto o nim przeczytać w dokumentacji...
To czy WDT eliminuje problem czy nie to już zależy od programu. Czasami warunki w jakich urządzenie pracuje może spowodować np zmianę licznika PC i wtedy program siedzi tam gdzie nie powinien. Są to sytuacje ekstremalne. Większość z nich eliminuje BOD, ale nie wszystkie. W sumie przeleciałem program na szybko i nie mam takich warunków które w moim mniemaniu...
Zrobienie OW na USARCIE moim zdaniem jest prostsze i bardziej efektywnie niż pajacowanie z delayami i ustawieniami portów, tym bardziej, że schemat takiego połączenia jest bardzo prosty i wszystko sprowadza do wysłania/odbierania pojedynczych bajtów z USARTu, co jest dobrze opisane na stronie MAXIMa A mi się wydaje, że pajacowaniem jest twierdzenie,...
http://obrazki.elektroda.pl/2352937000_1... Zaprojektowany i wykonany układ uruchomieniowy powstał jako część dyplomowej pracy inżynierskiej na wydziale Elektronika i Telekomunikacja. Tytuł inżyniera obroniłem w 2010 roku ale dopiero niedawno postanowiłem przedstawić szerszej publice urządzenie mojego autorstwa. Urządzenie wraz z zestawem...
#define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "1wire.h" signed char rozkaz; void USART_Transmit( char data ) //unsigned { while ( !( UCSRA & (1<<UDRE)) ); //wolny bufor UDR = data; } SIGNAL(SIG_UART_RECV)...
Witam! Mam problem z popranym odbiorem danych. Kod wygenerowany przez kreatora jest przedstawiony na listingu. I teraz pytanie. Mam odebrać z odbiornika widomość o długości 154 bajtów. Wiadomość ta przychodzi co 1 sekundę i zaczyna się zawsze czterama takimi samymi znakami : (at)(at)Ha Próbowałem już robić to z pętlą, by odbierać 154 znaki, i potem...
Niestety próbowałem sam, ale juz nie mam siły. Przeczytałem tematy na forum jednak nie widze w nich rozwiązania problemu, dlatego zacząłem nowy temat. Problem tkwi w tym, że otrzymuje z układu DS18B20 po dokonaniu odczytu z rejestrów wynik w postaci FFFF. Program piszę pod ATMega48. Czujnik połączony jest z zasilaniem z stabilizatora 7805. Najpierw...
Witam. Nie posiadam wyświetlacza LCD ani 7segm. chciałem nauczyć się obsługi DS18B20 niestety na ekranie terminalu do odbioru sygnału z RSa widnieje dziwna wartość "1360" . UART działa poprawnie. Procesor to Atmega8 z wewnętrznym 8MHz, czujnik podpiłem do PB0 i dałem rezystorek 4,7kłoma. Proszę o jakaś sugestie. #define F_CPU 8000000UL // 8 MHz #define...
Witam, W chwili obecnej pracuje nad termometrem, sterowanym na pilota. Pilot wysyła dane w kodzie RC5. Wysłane dane trafiają na odbiornik podczerwieni TSOP31236 (36kHz). W momencie gdy dane nie docierają na wyjściu odbiornika jest stan wysoki, gdy odbierze jakiś sygnał na wyjściu jest poziom niski. Wyjście odbiornika podczerwieni jest podpięte do wyjścia...
Cześć, Ponieważ udało mi się poprawnie odczytać temperaturę z termometru cyfrowego DS18B20 na module prototypowym eXtrino XL z AtXmega128a3u na pokładzie - pragnę się podzielić tym minikodem z początkującymi osobami. Myślę, że informacje zawarte w tym przykładzie, pozwolą osobom początkującym (czyli takim co już potrafią migać diodą) na zrozumienie...
Dzisiaj dość swobodny przegląd transmisji szeregowych, rozpoczniemy od przykładowej transmisji równoległej a następnie rzucimy okiem na UART i USART, I2C, SPI, 1wire. Mam nadzieję, że przegląd charakterystycznych cech transmisji szeregowych, ułatwi początkującym zastosowanie w praktyce innych podobnych interfejsów szeregowych. Sprzętowa obsługa UART/USART,...
Najtrudniej analizuje się własny kod, bo zawsze patrzy się przez pryzmat wiedzy o tym co on powinien robić i nie dostrzega się drobnych błędów :) Zgadzam się z tym w 100%. Przy Bascomie rzadko sięgałem do PDF'ów kontrolerów, przy C nie da się bez tego wszystkiego zrobić. Bez tych 500 "przekręceń" licznika nawet w Bascom by nie poszło, jak zwykle zbyt...
proboje zrobic odczyt pastylek na atmega32. procek dziala wewnetrznym rezonatorze 8mhz. kod wziolem ze strony www.mikrokontrolery.net w orginale mial to byc termoetr ale powinien dzialac ze wszystkim co jest na 1wire przerobilem program tak zeby to co odbiera z 1w wyslyl na rs232 do PC no i nie odbiera nic(0x00) kod: #include <avr/io.h> #include...
funkcja inicjalizacyjna [syntax=c] void SystemInit(void) { //PORTH initialize TRISH = 0b00001111; // (0)-output (1)-input ADCON1 |= 0x03; // RH7...RH4 digital I/O MEMCON |= 0x80; // RH3...RH0 I/O pin enabled, external memory bus A19...A16 disabled //PORTA initialize TRISA = 0b01011111; //PORTB initialize //TRISB = 0b11111111; TRISBbits.TRISB4 = 0; INTCONbits.RBIE...
Cześć, Jestem w trakcie tworzenia małego projektu. Do obsługi 1wire potrzebuję korzystać z przerwania na PC0. Siedzę nad tym dłuższy kawałek czasu i już naprawdę zgłupiłem. Są dwa kody - jeden ma skonfigurowane przerwania z PC0, drugi z PC1. Dlaczego ten z PC1 działa poprawnie, ten z PC0 nie? Sprawdziłem PB0, również nie działa poprawnie. Wykorzystuję...
Przepraszam odrazu że poruszam temat wałkowany 1000 a moze i wiecej razy. Niestety jednak niepotrafie sobie sam poradzić dlatego prosze was o pomoc. Termometr wyswietla mi cały czas temp -0.02 Niemam pojecia dlaczego Ds jest zasilany ciągle (nie przez iwire) a środkowa noga zwarta przez rezystor podciągający (4,7k) do zasilania. podłączyłem go do 0...
Załącz plik ds18x20.c, załączyłeś tylko plik nagłówkowy. Potem będziesz musiał zamienić zmienne cel i cel_fract_bits na tablice i będzie ok. Twoim zdaniem utworzenie tablic będzie zbawienne, może to trafne. Od jakiegoś czasu ma pomroczność i nie mogę się skupić, najprostsze rzeczy stwarzają mi ogromną trudność - to chyba przesilenie. A zatem stworzenie/zamiana...
Witam mam problem z obsługą magistrali 1Wire a dokładnie z odczytem temperatury przez DS18B20, napisałem funkcje do podstawowej obsługi 1Wire, RESET działa poprawnie natomiast przy odczycie danych mam zawsze same 1. Dodam iż korzystam z płytki STM32DISCOVERY a czujnik szynę danych ma podciągniętą do 3,3V za pomocą rezystora 4,7K według noty katalogowej....
Witam, Mój problem jest dziwny. Mam przetestowany układ na płytce stykowej, program też działał bez zarzutów. Wykonałem PCB złożyłem, ATmega normalnie została zaprogramowana i reaguje. Zczytałem pomiary temperatury przez UART- też działa. Obecnie sterowanie jest dwustanowe, docelowo będzie PWM i PID. A teraz moje 2 problemy: 1) Sterowanie MOSFETEM....
Mam sobie taką o to tablicę w epromie: P.S. Wiem, że pisze się uŻytkownik, ale chcę wiedzieć czy prowadzący przeglądają kody programów w raporcie:P
Witam, Przymierzam sie wlasnie do budowy strownika akwariowego, takiego troche bardziej rozbudowanego Skalara. Zalożenia: Niezbędne: - Kontrola temperatury (prosta) - Kontrola oswietlenia dziennego (z plynnym zapaleniem i gaszeniem o zadanych godzinach) - Kontrola oswietlenia nocnego/niebieskiego (j.w.) - kontrola pompy obiegowej (albo brzeczyka) -...
Po zainstalowaniu ubuntu i skonfigurowaniu eclipse+codesourcery pod niego okazało się że mój archaiczny makefile nie "zbuilduje" mi projektu. Po zainstalowaniu plugina ARM do eclipse okazało się że wygenerowany kod nie mieści się w pamięci. Próbowałem na różne sposoby konfigurować ustawienia kompilatora i linkera ale nie dało to efektu. Poniżej wywołanie...
Witam Posiadam mikrokontroler STM32F103VET6 oraz czujnik AM2305, z którego próbuję odczytać wilgotność oraz temperaturę. Niestety w żaden sposób nie jestem w stanie odczytać poprawnych danych, albo same jedynki albo same zera lub kosmiczne liczby. Przeglądając dokumentacje okazuje się ze timingi są identyczne z czujnikiem DHT22 wiec wzorowałem się co...
Witam Porwałem się na robienie własnego sterownika co i stanąłem w martwym punkcie. Mianowicie sterownik składa się z 2 płytek na których są Atmegi 16 taktowane zewnętrznym kwarcem 11.059200 + kwarc zegarkowy jeden układ odpowiedzialny za odczyt temperatur regulację fazową wentylatora oraz sterowanie elektrozaworami a drugi obsługa wyświetlacza graficznego...
czujnik 1wire esp8266 1wire 1wire przerwania
presostat wentylatora nawiewu canon mp210 błąd miernik kosztów energii
blaupunkt firmware instrukcja obsługi
Mapa silnika 2.0 TDI BKD - parametry i modyfikacje Czy prostownikiem YATO YT-8304 można ładować akumulator 100 Ah?