logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Timer oparty na Atmega8, soft napisany w asemblerze

wujcio24 09 Sie 2009 23:36 8343 9
  • Timer oparty na Atmega8, soft napisany w asemblerze
    Witam. Chciałem przedstawić projekt licznika opartego na mikrokontrolerze atmega8. Projekt ten powstał z chęci sprawdzenia swoich umiejętności w asemblerze więc przy komentowaniu projektu proszę zwracać większą uwagę na software niż na hardware. Projekt został ukończony parę miesięcy temu ale dopiero teraz zdecydowałem się na wyeliminowanie paru usterek i lekkie dopracowanie całości. Cześć elementów użytych w projekcie pochodzi z demontażu w celu minimalizacji kosztów. Wyświetlacz zastosowany w projekcie został wybrany ze względu na trudności w zdobyciu nowego (nie będę specjalnie kołował wyświetlacza którego koszt wysłania jest większy od samego wyświetlacza). Silniczek wibracyjny pochodzi z telefonu siemens C65, oczywiście nic nie stoi na przeszkodzie by tranzystor(BD135) użyty w projekcie załączał inne urządzenia. Wszystkie szczegółowe informacje (schemat, wzór płytki, użyte części, wsad do atmegi, kod źródłowy) związane z projektem są zamieszczone w pliku. Płytka została zaprojektowana w Paincie. Atmega8 pracuje z częstotliwością 4MHz Do obsługi wyświetlacza siedmiosegmentowego użyłem 6 pinów portu C (segmenty od A do F) i jeden pin portu B (segment G). Jako przełącznika miedzy poszczególnymi wyświetlaczami użyłem 4 piny portu B. Za dodawanie (+1 minuta) i odejmowanie(-10 sekund) czasu są odpowiedzialne przerwania INT0 i INT1. Układ nie posiada resetu ze względu na trudności powstałe przy testach na płytce testowej (obecne moje projekty posiadają już reset). Płytka została po wytrawieniu i usunięciu tonera acetonem pokryta roztworem kalafonii w denaturacie. Śruby w rogach płytki pełnia role podstawki. Zdecydowałem się na takie rozwiązanie ponieważ nie zamierzam robić profesjonalnej obudowy. Projekt w przyszłości zamierzam wykorzystać jako tanie środowisko do programowania ponieważ nie posiadam gotowego zestawu do nauki typu - kupiona płytka testowa.Elementy były lutowane lutownicą 60 W do kabli. Ponieważ to był mój pierwszy projekt z mikrokontrolerem napotkałem parę problemów na szczęście google pomogło mi je rozwiązać. W google głownie na moje zapytania najczęściej znajdywałem forum elektrody i dzięki ludziom którzy udzielali złożonej i dokładnej odpowiedzi innym niedoświadczonym użytkownikom mogłem rozwiązać własne problemy, więc apeluje do ludzi aby na przyszłość zamiast odsyłać ludzi do google dawać im dokładną odpowiedz bo być może wasza wypowiedź znajdzie się na pierwszym miejscu w wyszukiwarce. Zdjęcia i film do projektu zostały wykonane za pomocą telefonu nokii N90 dzięki czemu widać detale. Wcześniej do tego celu użyłem palmtopa niestety jakość zdjęć była bardzo kiepska.

    Widok od dołu - wyraźnie widać metodę wykonania płytki
    Timer oparty na Atmega8, soft napisany w asemblerze

    Rozmieszczenie elementów
    Timer oparty na Atmega8, soft napisany w asemblerze

    Timer oparty na Atmega8, soft napisany w asemblerze

    Wyświetlacz i silniczek wibracyjny
    Timer oparty na Atmega8, soft napisany w asemblerze

    Film przedstawiający działanie układu


    Załączniki:
    • timer.zip (51.8 KB) Musisz być zalogowany, aby pobrać ten załącznik.

    Fajne? Ranking DIY
    O autorze
    wujcio24
    Poziom 13  
    Offline 
    wujcio24 napisał 83 postów o ocenie 2, pomógł 3 razy. Jest z nami od 2008 roku.
  • #2 6875557
    bestler
    VIP Zasłużony dla elektroda
    Posty: 5277
    Pomógł: 254
    Ocena: 895
    Jeśli chciałbyś aby Twoje płytki wyglądały od strony druku w pełni profesjonalnie to używać do lutowania fluksu (wymaga cierpliwości do wielu prób), a po lutowaniu umyj całość kontaktem pcb.

    Projekt git :)

    Pozdrawiam,
  • #3 6875714
    PietrasGT
    Poziom 11  
    Posty: 14
    Przy wykonywaniu kolejnych płytek dla lepszego efektu dobrze jest delikatnie przejechać po PCB papierem ściernym (po ścieżkach) wtedy jest pewność że to wszystko co zostało po wytrawieniu jest usunięte, poprawia się wygląd płytki i znacznie lepiej cyna rozprowadza się po takiej powierzchni. Projekt jako zapalnik bardzo mi się podoba;D Może dla swoich potrzeb złożę ten układzik.
  • #4 6875846
    krzycho123
    Poziom 31  
    Posty: 1867
    Pomógł: 135
    Ocena: 106
    Faktycznie jeśli chodzi o hardware to jest ... żle , cyna wygląda jakbyś ją podawał na płytkę pompą do betonu :D

    Jeśli to zapalnik to pewnie dlatego tak wygląda bo zaraz zostanie wysłany to elektronicznego nieba :?: ;)
  • #5 6877094
    wujcio24
    Poziom 13  
    Posty: 83
    Pomógł: 3
    Ocena: 2
    Zgadzam się wykonanie kiepskie bo podczas lutowania z tego co pamiętam moja lutownica marki topex zepsuła się chyba w połowie wykonania więc musiałem sięgnąć po lutownice transformatorową którą na poważnie lutowałem pierwszy raz stąd te efekty pompy do betonu:D. Ta płytka to był mój pierwszy poważny projekt - jedyne co wcześniej lutowałem to ze dwa układy z paroma elementami.

    PietrasGT napisał:
    Przy wykonywaniu kolejnych płytek dla lepszego efektu dobrze jest delikatnie przejechać po PCB papierem ściernym (po ścieżkach)


    tą rade na pewno przetestuje. Obecnie od razu po usunięciu tonera płytki pokrywam kalafonią w denaturacie podczas lutowania ostatnie mojej płytki wykonanej w smd zauważyłem ze to błąd - trudno takie coś ocynować.

    Jak pisałem wcześniej ten projekt był lutowany kilka miesięcy temu a w między czasie coś zrobiłem - wykonałem płytkę testową z atmega8 do montażu powierzchniowego.
    Timer oparty na Atmega8, soft napisany w asemblerze

    Część błędów jest nadal powielana ale przyszły projekt - płytka testowa z armem(wszystko jest gotowe, elementy zakupione, płytka zaprojektowana, pozostaje wykonać termo transfer ale jeszcze niezbędna jest konsultacja czy wszystko jest ok ale to już będzie w nowym temacie) na pewno zostanie lepiej wykonany

    Dzięki za porady:)
  • #6 6878340
    krzycho123
    Poziom 31  
    Posty: 1867
    Pomógł: 135
    Ocena: 106
    wujcio24 ,powiem Ci tak sam się prosisz o problemy .
    Po pierwsze płytek SMD nie pokrywa się żadną kalafonią bo potem wychodzi jak na zdjęciu.
    Pod drugie weź do ręki linijkę jak przycinasz płytkę i narysuj sobie wstępnie linie cięcia.
    I wreszcie po trzecie , widzę że te kołki/śruby czy co tam masz zwierają się ze ścieżkami . To kolejny podstawowy błąd.

    Weź następnym razem przykład z innych staranie wykonanych publikacji w tym dziale.

    To tylko moje rady nie krytyka ;)

    Pozdrawiam
  • #7 6880059
    wujcio24
    Poziom 13  
    Posty: 83
    Pomógł: 3
    Ocena: 2
    krzycho123 napisał:
    po trzecie , widzę że te kołki/śruby czy co tam masz zwierają się ze ścieżkami . To kolejny podstawowy błąd.


    Nie zwierają się - pod spodem jest taśma izolacyjna nie wszędzie to jest widoczne. Już podczas projektowania to przewidziałem że tak nie powinno być.

    Jeżeli chodzi o przycinanie laminatu to racja jest to krzywo wycięte i przy następnej płytce która będę wykonywał być może dzisiaj(płytka testowa do arm-a) zwrócę na to uwagę.

    Niestety mam sprzęt do lutowania jaki mam czyli bardzo tani i raczej przez długi czas to nie ulegnie zmianie. Jedyne w co zamierzam zainwestować to tasiemka do pochłaniania cyny (nie wiem czy dobrze to nazwałem ale takie coś już było tu pokazywane) bo mam trudności z usuwaniem nadmiarów.

    Na pewno wszystko co tu było powiedziane spowoduje że przyszłe projekty będą lepsze.

    Jedyne co mnie boli jeżeli chodzi o ten temat to fakt że nikt nawet nie spojrzał na soft i tego nie skomentował czy jest dobrze czy źle, że mógłbym zrobić to inaczej ale po dłuższym zastanowieniu dochodzę do wniosku że skoro 80% ludzi na forum którzy programują mikro kontrolery i prezentują swoje projekty używa do tego celu bascoma(nie jestem do niego uprzedzony ale jak dla mnie zbyt ociężały i nie przenośny już C jest znacznie lepszy) to trochę się nie dziwie.
  • #8 9892339
    Fezzy
    Poziom 12  
    Posty: 76
    Pomógł: 3
    Cześć,
    Świetny układ, czy mógłbyś podać wartości tych czterech pozostałych tranzystorów? Na schemacie jeden rezystor oznaczony jest jako 10kΩ, a na obrazku widać po paskach, że to 5.1kΩ :P
    Domyślam się, że natężenie prądu na silniczek jest małe, można je jakoś zwiększyć?
    Pozdrawiam
  • #9 9893388
    neo_dc
    Poziom 32  
    Posty: 2206
    Pomógł: 178
    Ocena: 211
    Widzę mały błąd - ustawiłeś 20 sekund, a po kliknięciu odliczania od razu przeskoczyło na 19 - nie powinno czekać tej jednej sekundy ?
  • #10 9895108
    wujcio24
    Poziom 13  
    Posty: 83
    Pomógł: 3
    Ocena: 2
    Cytat:
    Świetny układ, czy mógłbyś podać wartości tych czterech pozostałych tranzystorów?


    Teraz pod lupą patrzyłem i oznaczenie na tym tranzystorze to 327-25.

    Cytat:
    Na schemacie jeden rezystor oznaczony jest jako 10kΩ, a na obrazku widać po paskach, że to 5.1kΩ


    Zgadza się - jest to rezystor do bramki i przez zmianę jego wartości rezystancji(przez jego zamianę) można zmienić napięcie na silniczku.

    Cytat:
    Domyślam się, że natężenie prądu na silniczek jest małe, można je jakoś zwiększyć?


    Pewnie jakbym zmienił rezystor na mniejszy(ten do bramki tranzystora) to byłoby większe napięcie bo jest chyba koło 3V (tak pamiętam jak kiedyś mierzyłem). Ale jakby miało iść większe natężenie to pewnie będzie trzeba zmienić tranzystor na mocniejszy i/lub dołożyć radiator. Jeśli jesteś zainteresowany zabawą elektroniką to polecam ci program CircuitMaker w którym można za symulować tranzystory, wyświetlacze siedmio segmentowe i układy scalone (nie ma mikrokontrolerów). Ten program nie jest idealny ale do zdobycia pewnej wiedzy styknie (szkoda że jak ja zaczynałem to nie wiedziałem o tym). http://www.youtube.com/watch?v=M4FwyN_dMlA.

    Cytat:
    Widzę mały błąd - ustawiłeś 20 sekund, a po kliknięciu odliczania od razu przeskoczyło na 19 - nie powinno czekać tej jednej sekundy ?


    Tam jest jeszcze jeden błąd bardziej znaczący od tego(występuje tylko na starcie przy ustawianiu wartości - jest widoczny na filmie można powiedzieć że niby nic ważnego ale nie powinno tego być). Powinienem ten kod poprawić w paru miejscach i zamieścić nową wersje kodu a także płytkę jeszcze raz zaprojektować tylko tym razem w programie KiCad - bo zaprojektowałem ją w paincie i przy powielaniu tego projektu radzę uważać bo mogą wychodzić cuda w wydruku więc polecam sprawdzać wcześniej czy wszystko jest ok.

Podsumowanie tematu

LABEL_AI_GENERATED
Projekt licznika opartego na mikrokontrolerze Atmega8 z oprogramowaniem napisanym w asemblerze został przedstawiony wraz z kompletną dokumentacją (schemat, wzór płytki, lista części, kod źródłowy). Autor podkreślił, że projekt powstał głównie w celu sprawdzenia umiejętności programistycznych, dlatego prosił o ocenę przede wszystkim software’u. Wykorzystano wyświetlacz trudny do zdobycia oraz silniczek wibracyjny z telefonu Siemens C65, sterowany tranzystorem BD135, który może być zastąpiony innymi urządzeniami. Dyskusja skupiła się na jakości wykonania płytki PCB, gdzie wskazano na problemy z lutowaniem, stosowaniem kalafonii na płytkach SMD oraz niewłaściwym przycinaniu laminatu. Zalecano użycie fluksu, czyszczenie PCB po lutowaniu oraz delikatne szlifowanie ścieżek papierem ściernym dla lepszego rozprowadzenia cyny. Autor potwierdził problemy z lutownicą Topex i doświadczenie w lutowaniu transformatorowym. Wskazano również na błędy w projekcie, takie jak nieodpowiednie oznaczenia rezystorów (10kΩ zamiast 5.1kΩ) oraz drobne błędy w oprogramowaniu, np. natychmiastowe przejście odliczania z 20 na 19 sekund bez opóźnienia. Omówiono możliwość zwiększenia prądu na silniczku przez zmianę rezystora bramki tranzystora oraz konieczność zastosowania mocniejszego tranzystora i radiatora przy większym obciążeniu. Polecono program CircuitMaker do symulacji układów elektronicznych. Autor planuje dalsze projekty z mikrokontrolerami ARM oraz poprawę jakości wykonania płytek.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA