ATMega8+DS18B20+RS232

Jun 11, 2004 11 Replies

Witam! W³a¶nie skoñczy³em robiæ schemat uk³adu (na zaliczenie) do pomiaru temperatury z dwóch czujników DS18B20. Niestety nie za bardzo siê na tym znam i nie wiem czy dobrze po³±czy³em procesor (ATMega8) z MAX232N i RS232. Dlatego te¿ bardzo proszê o wszelkie uwagi nt. tego projektu. Z góry dziêkujê. Pozdrawiam


U¿ytkownik "WJ" <wj78[NOSPAM]@wp.pl> napisa³ w wiadomo¶ci news:cadg98$m46$ snipped-for-privacy@news.onet.pl

To co zauwa¿y³em na szybko:

- uk³ady 1-Wire maj± unikalne numery seryjne i mo¿liwo¶æ adresowania. Dlatego mog± (choæ oczywi¶cie nie musz±) byæ wpiête na wspólnej magistrali.

- 1-Wire wymaga rezystorów _podci±gaj±cych_ do Vcc a nie obci±¿aj±cych do masy. W ka¿dym razie zwróæ uwagê na paragraf "Parasite Power" w PDF-ie DS18B20.

- pod¶wietlenie LCD to zespó³ led-ów bior±cy pr±d rzêdu 80..200mA. Zazwyczaj opornik ograniczaj±cy znajduje siê na module a wej¶cie LED(+) pod³±cza siê bezpo¶rednio do Vcc. Na pewno nie pobierzesz takiego pr±du z portu procesora (PC6). Musisz mieæ dodatkowy tranzystor wykonawczy.

- odwrócona numeracja linii danych LCD. Tzn. pod³±czy³e¶ PD[0..7] do DB[7..0]. Oczywi¶cie bajty danych da siê programowo odwróciæ, ale po co taka ekwilibrystyka?

- odwrócony LED przy czujnikach. Ew. podepnij go do Vcc i steruj stanem niskim linii portu.

- Standardowy MAX232 wymaga 1uF. Zdaje siê, ¿e do 0.1uF musi byæ MAX232A. Nigdy tego nie pamiêtam. Ja w ka¿dym razie u¿ywam wiêkszych pojemno¶ci.

- pomyli³e¶ wej¶cia i wyj¶cia w MAX232. Kierunek transmisji w uk³adzie jest nastêpuj±cy: T1in (TTL) -> T1out(v.24) T2in (TTL) -> T2out(v.24) R1in (v.24) -> R1out(TTL) R2in (v.24) -> R2out(TTL) Czyli na pewno T1 jest w³±czony ¼le. BTW: Nie sprawdza³em, czy zgadzaj± siê kierunki transmisji na pinach RS232 (DB9)

- wystêpuje konflikt pomiêdzy wyjsciem R1OUT MAX232 a lini± MOSI programatora. Musisz je jako¶ rozseparowaæ, bo nie uda siê zaprogramowaæ procesora.

- brak kwarcu? Rozumiem, ¿e korzystasz z oscylatora wewnêtrznego?

- strasznie du¿o zbêdnych kropek (junction) na schemacie, brak numeracji elementów, itd... Je¿eli bedziesz chcia³ z tego schematu wygenerowaæ netlistê i na jej podstawie projektowaæ PCB to czeka Ciê sporo poprawek.

-.... (pewnie co¶ jeszcze, ale na razie nie zauwa¿y³em)

U¿ytkownik "Marek Dzwonnik" <mdz@WIADOMO_PO_CO_TO.message.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@news.home.net.pl...

Bardzo dziêkujê! Pozdrawiam

U¿ytkownik "WJ" <wj78[NOSPAM]@wp.pl> napisa³ w wiadomo¶ci news:cadg98$m46$ snipped-for-privacy@news.onet.pl...

Polecam obejrzenie kitu AVT 2683. Tam na jednej p³ytce jest z³±cze RS i procek (coprawada AT90S2313). W³a¶nie bawiê siê w lutowanie (przy braku do¶wiadczenia to trudna sztuka ;P)

Mam chêæ z niego zrobiæ bufor do DS18x20, tak ¿eby mierzy³ temperaturê w momencie gdy komp jest wy³±czony. (wiem ciutek ma³o pamiêci na wyniki, ale na pocz±tek musi wystarczyæ :))

pozdrawiam Alek

U¿ytkownik "Marek Dzwonnik" <mdz@WIADOMO_PO_CO_TO.message.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@news.home.net.pl

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Wycofujê t± uwagê. ¦rodek nocy zrobi³ swoje i krzywo odczyta³em druciki. ;-( Wygl±da na to, ¿e pod³±czenie MAX-a jest Ok.

Po³aczenia na z³±czu RS232 równie¿ siê zgadzaj±, przy za³o¿eniu, ¿e pod³±czasz termometr jako DCE z ¿eñskim z³±czem DB9 i kablem bez przeplotu (czyli 1to1).

U¿ytkownik "Marek Dzwonnik" <mdz@WIADOMO_PO_CO_TO.message.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@news.home.net.pl...

Witam ponownie! Czyli to:

formatting link
powinno ju¿ dzia³aæ poprawnie? Oczywi¶cie korzystam z wewnêtrznego oscylatora. Mam jeszcze jedno pytanko: jak zmusiæ Protela (98,99) do automatycznego wygenerowania PCB? Z góry dziêkujê za odpowied¼! Pozdrawiam

U¿ytkownik "WJ" <wj78[NOSPAM]@wp.pl> napisa³ w wiadomo¶ci news:cag2jr$r0p$ snipped-for-privacy@news.onet.pl...

witam mam pytanie przy okazji jak eksportujesz schemat ideowy z protela do pdf'a?

pozdr Krzysztof

=_NextPart_000_00F3_01C450E9.95BDEA30 Content-Type: text/plain; charset="iso-8859-2" Content-Transfer-Encoding: quoted-printable

U=BFytkownik "Krzysztof Skoroniak" snipped-for-privacy@NospaM.polsl.gliwice.pl> = napisa=B3 w wiadomo=B6ci news:cag376$ifk$ snipped-for-privacy@atlantis.news.tpi.pl...

Ja to robi=EA przy pomocy eDocPrinter, ale w sieci pe=B3no jest takich = program=F3w (jak nie freeware, to przybajmniej Trial). Wystarczy w = google wpisa=E6 "make pdf" i ju=BF! Taki program instaluje si=EA w = systemie jako drukarka i po prostu drukujesz na tej drukarce i masz = pdf'a! Pozdrawiam

U¿ytkownik "Krzysztof Skoroniak" snipped-for-privacy@NospaM.polsl.gliwice.pl> napisa³ w wiadomo¶ci news:cag376$ifk$ snipped-for-privacy@atlantis.news.tpi.pl...

Ja to robiê przy pomocy eDocPrinter, ale w sieci pe³no jest takich programów (jak nie freeware, to przybajmniej Trial). Wystarczy w google wpisaæ "make pdf" i ju¿! Taki program instaluje siê w systemie jako drukarka i po prostu drukujesz na tej drukarce i masz pdf'a! Pozdrawiam

U¿ytkownik "WJ" <wj78[NOSPAM]@wp.pl> napisa³ w wiadomo¶ci news:cag2jr$r0p$ snipped-for-privacy@news.onet.pl

Lepiej, ale...

- gdzie wy³acznik zasilania?

- widzê, ¿e pod¶wietlenie LCD w³±czasz prze³±cznikiem. Nie lepiej by³o daæ jeden tranzystor sterowany z wolnej linii portu?

- RESET a konflikt z programatorem. Skoro STK200 ma umieæ sterowaæ lini± RESET to nie mo¿esz jej jednocze¶nie doci±¿yæ kondensatorem 10u. Odseparuj rêczny reset od programatora i CPU choæby rezystorem 1k. Poza tym niby nie jest to konieczne, ale niektóre AVRy maj± klopoty z powstaniem przy zbyt wolnym narastaniu napiêcia zasilania. Dlatego IMHO warto dok³adaæ jaki¶ zewnêtrzny uk³ad resetu. Choæby np. TL7705.

- Widzê, ¿e konfliktu na MOSI pozby³e¶ siê dedykuj±c wszystkie linie SPI programatorowi. Ale jednocze¶nie przenios³e¶ RS-a na PB6,7. Czemu nie na sprzêtowe linie UARTu (RxD i TxD)? Czy chcesz obs³ugiwaæ RS-a programowo? Hint: LCD na HD44780 i podobnych daje siê obs³u¿yæ w trybie 4-bitowym. Tzn wystarczy Ci pod³±czenie 4 starszych bitów danych w module LCD.

Zapomnij o "automatycznym generowaniu PCB". Autorouter mo¿e pomóc, ale p³ytkê projektuje cz³owiek a nie komputer. A zanim dojdziesz do projektowania p³ytki, to jeszcze d³uga droga przed tob±.

W ka¿dym razie musisz:

- Dok³adnie sprawdziæ po³aczenia. Po³±czenia nale¿y prowadziæ metod± "drut do aktywnego koñca pinu". Protel pokazuje (kursor - du¿a kropka) moment kiedy dotykasz aktywnego punktu pod³±czenia. Je¿eli przyczepisz drut do ¶rodka pinu to fizycznego po³±czenia nie uzyskasz. Kropka (junction) wskazuje po³±czenie pomiêdzy dwoma krzy¿uj±cymi (lub na³o¿onymi) drutami. Je¿eli usuniesz kropkê to po³±czenia nie bêdzie. Na poprawnie postawionym prostym po³±czeniu drut-pin kropki byæ nie powinno (tzn. nie szkodzi, ale zaciemnia schemat)

- Nadaæ unikalne numery wszystkim elementom (-> Annotate)

- Ka¿dy element musi mieæ przypisan± obudowê - wg. symboli dostêpnych w bibliotekach PCB. Dotyczy to _wszystkich_ elementów, m.in. ³±czówek, prze³aczników, kondensatorów, potencjometrów itp. Je¿eli jakiej¶ obudowy brak - np. nietypowej ³±czówki - to trzeba j± sobie namalowac samodzielnie. Zwróæ uwagê na zgodno¶æ numeracji/nazw pinów w sybolu schematowym i obudowie na pcb. Nie wiem jak w P99 ale w P98 stosowano w róznych miejscach ró¿ne oznaczenia (np. Cathode, Anode vs. A, K. lub t.p.) co skutkowa³o nisko lataj±c± serdelow± podczas wczytywania netlisty.

- Dobrze jest ponazywaæ po ludzku poszczególne po³±czenia/sieci po³±czeñ (NetNames). Je¿eli tego nie zrobisz to protel nada w³asne nazwy domy¶lne w postaci np. N00001. Przy projektowaniu PCB trudno bêdzie siê w tych cyferkach rozeznaæ.

- Maj±c gotowy, wyczyszczony schemat musisz wygenerowaæ Netlistê. Po wczytaniu netlisty do programu PCB zobaczysz widok elementów usypanych na jedn± kupkê i powi±zanych po³±czeniami logicznymi (connections, ratsnets). Wcze¶niej musisz jeszcze narysowaæ mechaniczny obrys p³ytki (layer: Mech..) i nieprzekraczalny obrys obszaru przeznaczonego na ¶cie¿ki (KeepOut layer). Nastêpnie rozmieszczasz elementy na p³ytce. Im sensowniej to zrobisz rêcznie tym ³atwiej bêdzie projektowaæ ¶cie¿ki. Zapomnij o rozmieszczaniu automatycznym (AutoPlace). Na koniec zostaje uk³ad ¶cie¿ek. IMHO zanim poustawiasz autorouter, to tej wielko¶ci p³ytkê lepiej i ³adniej zaprojektujesz rêcznie.

U¿ytkownik "WJ" <wj78[NOSPAM]@wp.pl> napisa³ w wiadomo¶ci news:cah7vb$htc$ snipped-for-privacy@news.onet.pl...

dzieki bardzo

pozdr Krzysztof

U¿ytkownik "Marek Dzwonnik" <mdz@WIADOMO_PO_CO_TO.message.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@news.home.net.pl...

Be¿ wy³±cznika - uk³ad bêdzie pracowa³ bez przerwy.

Pewnie tak zrobiê, ale póki co, to chyba jednak pozostanê przy prze³±czniku.

RS'a oczywi¶cie podepnê pod RxD i TxD. Co do trybu 4-bitowego, to jak siê potem tym steruje (na 99% program bêdê pisa³ w assemblerze)?

samodzielnie.

Jeszcze raz bardzo dziêkujê za pomoc! Pozdrawiam

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required