Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

atmega32 resetuje się, działa jak nie skonfiguruję 1 z ADC..

lotnick 14 Apr 2008 22:44 2488 29
Computer Controls
  • #1
    lotnick
    Level 15  
    Witam Szanownych kolegów.
    Mam problem z Megą.
    Zasilam przez 78L05 z baterii9V. Używam 1wire,I2C,Timer2,ADC1. Jeśli konfiguruję je wszystkie w programie to po kilku sekundach mniej więcej w tym samym miejscu resetuje się. Jeśli nie skonfiguruję jednego z: ADC, 1wire,Timer2 to wszystko śmiga ale oprócz oczywiście tego usuniętego urządzenia. Reset objawia się tym ,że w momencie znikają ~2 znaki na LCD i po kilkuset milisekundach mega uruchamia się od począżtku.
    Stos to nie jest , bo spróbowałem już ustawić po 200 bajtów i nic, poza tym w symulacji podglądam pamięć i nie nadpisuje stosu i ramki.
    Ktos miał taki kłopot?
  • Computer Controls
  • #3
    don diego
    Level 32  
    Zainwestuj w porządne zasilanie:) Wyłączając jeden z bloków zmniejszasz pobór prądu i dlatego układ działa.
  • #4
    Tomek-85
    Level 14  
    Ja też zasilam swój układzik z baterii 9V. Tylko że oprócz Atmegi mam
    podłączoną kartę MMC (która okrutnie dużo prądu żre [szczególnie przy zapisie]),
    lcd od nokii 3310, max232 i inne pierdułki. Nigdy nie narzekałem
    na zasilanie. Ale w twoim wypadku radził bym poeksperymetować z tą
    baterią. Pozdrawiam i powodzenia.
  • #5
    rusala
    Level 22  
    taz stawialbym na zasilanie, moze to jakas kiepska bateria noname o duzej rezystancji wewnetrznej? Poszukaj jakiegos zasilacza sieciowego albo polacz dwie baterie 6F22 (9V) rownolegle lub dwie 3R12 w szereg (te "plaskie 4.5V) wzglednie jedna bez stabilizatora. One maja bardzo duza wydajnosc.
  • #6
    lotnick
    Level 15  
    Układ pobiera 13mA - zmierzone- być może w momencie uruchamiania jakiegoś urządzenia resetuje się i tego już nie mogę zmierzyć. Podłączałem też z zasilacza o wydajności 300mA przy 9V.

    Aha jeszcze jedno co mnie podłamało wczoraj - podłączyłem 6 przycisków pod port D i przy jednym z nich (albo Rx albo Tx) jak naciskam(podaję 0 na port) to układ się resetuje. Nie włączałem przerwań innych niż timer2.

    O jednej ważnej rzeczy zapomniałem - o wspomnianym podciągnięciu do 5V resetu. Spróbuję i się odezwę. To może być TO
  • Computer Controls
  • #7
    2lero
    Level 12  
    "Aha jeszcze jedno co mnie podłamało wczoraj - podłączyłem 6 przycisków pod port D i przy jednym z nich (albo Rx albo Tx) jak naciskam(podaję 0 na port) to układ się resetuje." - A jak są podłączone te przyciski? Wygląda na to jakby po załączeniu przycisku popłyną duży prąd i stąd reset.
  • #10
    lotnick
    Level 15  
    Mam klawiature foliową 6 przycisków. Wszystkie działają prawidłowo , tylko jeden konkretny powoduje reset. Naciśnięcie przycisku skutkuje zwarciem danego pinu do MASY.
    Najśmieszniejsze jest to, że po uruchomieniu programu(RESET) tylko na kilka sekund włączam 1wire(sprawdzam temperature na ds1820), włączam ADC by zmierzyć napięcie (na dzielniku 150k i 470kohm pomiędzy zaciskami baterii). Potem daję stop ADC i reset na 1wire i nie używam go. Resetuje się w jakimś dziwnym miejscu, np przy wyświetlaniu(próbie) zmiennej na LCD.
    Wydawało mi się przez moment że to FRAME za mała jest ale jak wspomniałem dałem 200kB nawet.
    A jeśli chodzi o soft to używałem (ostatni raz chyba ) BASCOMa.
    Na jaki kompilator można się najszybciej przesiąść jeśli chodzi o C ?
  • #11
    psooya
    Level 38  
    AVR studio + WinAVR i mamy gcc w nim. No jak masz baskupe to się nie da powodzenia życzę. Sprawdź konfigurację portów I/O czy jest dobra. Poza tym jak działa timer i używasz przerwania od niego to nie zadziała ci przerwania w trakcie odczytu 1W bo baskupa blokuje przerwania celowo. Może stosu ci brakuje i dlatego się resetuje? Ja takie wynalazki piszę w ASMie. Fusy dobre? J-tag nie wiem czy jest ale jak jest trzeba wyłączyć jeśli używasz tego portu pod którym jest.
  • #13
    Balu
    Level 38  
    Sorry... mister Chopin...Twoje komentarze na prawdę robią się irytujące...

    Do autora... to może najwyższa pora podzielić się softem? Bo tak koledzy będą **** Bascoma i nic z tego nie wyjdzie poza nabitymi postami masz pewnie gdzieś w sofce jakiś głupi błąd i tyle.
  • #15
    Zajc3w
    Level 14  
    Obsługe 1 wire napisz sam bo ta z bascoma działa tylko samotnie czyli żadnych timerów i innych przerwań i w dodatku wolno i kulawo. Kiedyś poppełniłem błąd i na początek zabawy z AVR-ami wybrałem BASCOMA i sie do atmeli zraziłem. Właśnie z DS18S20 się bawiłem i odczyt temperatury trwał czasem 3 sekundy.

    Polecam AVRStudio +WINAVR lub ATmanAVR oba są na GCC.

    Zyskasz dużo na wielkości i szybkości działania wygenerowanego kodu.
  • #16
    rusala
    Level 22  
    a sprawdzales z innym egzemplazem uC? Jezeli chcesz przesiasc sie na C to praktycznie niema nic inego niz czysty WinAVR lub odrazu pakiet AVR Studio.
  • #17
    crazy_phisic
    VIP Meritorious for electroda.pl
    :arrow: Freddie Chopin proszę darować sobie kolejne uwagi, w tym i każdym następnym poście, odnośnie Bascoma. Odnoszę wrażenie że bardzo chcesz wszystkich zniechęcić do tego programu. Niestety odbija się to na ogólnej "atmosferze" w dziale. Mam nadzieję że temat licznych raportów i PW zostanie wreszcie rozwiązany.
  • #18
    Ch.M.
    Level 27  
    Do autora:
    - osobiście właśnie popełniam pierwsze kroki w kierunku C, tzn doinstalowałem do AVRStudio4.14--> WinAVR-20080411 i nawet udało mi się skompilowac jakiś przykładowy programik. Niestety każda wersja bibliotek wymusza nowy sposób pisania programu (nie czepiac się za niedopowiedzenia, bo dopiero raczkuje w C) ale zaczynając od początku to chyba nie ma wiekszego znaczenia.

    Do Frediego, Balu, crazy_phisic'a:
    - może pora rozdzielic fora... (czytaj: fora ze dwora...)
    Też mnie dobijają pytania typu jak zrobic cośtam w Bascomie, czy "coś mi nie działa, czemu..." Ostatnio zacząłem unikac tego forum bo większośc tematów jest z Bascoma i po 1 niewiele mogę pomóc, a po 2 niczego się nie nauczę.

    Forum powinno byc pogrupowane na języki i ewentualnie na rodziny procesorów lub na rodziny procesorów i języki, a nie wszystko wrzucone do jednego worka.

    Jeśli to problem to deklaruję swoją osobę do segregacji wątków :)
    Pozdrawiam
  • #19
    Freddie Chopin
    MCUs specialist
    zaczne moze od tego, ze ten post jest pisany w oderwaniu od tego konkretnie watku, wiec niech autor nie bierze tego jako atak na jego konkretnie osobe. post skierowany jest w 'przestrzen' aby kazdy sobie przemyslal go dla siebie.

    crazy_phisic wrote:
    Niestety odbija się to na ogólnej "atmosferze" w dziale.

    ty to widzisz w ten sposob, ja widze we wrecz odwrotny - na atmosferze tego dzialu odbija sie 100% zezwolenie obslugi forum na lamerstwo i lenistwo, ktorego objawem jest bascom. jak to jest mozliwe, ze na najwiekszym polskim forum elektronikow nie mozna znalezc pomocy w sprawie ARMow? czy to moze byc spowodowane tym, ze na tym podforum 90% piszacych to lamki i nikt powazny nie bedzie tu zagladal, bo po co tracic czas, skoro 9/10 tematow jest o pierdolach opisanych doglebnie w instrukcji bascoma, a _czasem_ faktycznie sie trafi ciekawy i interesujacy watek... przyklad - post Ch.M. powyzej. Jest na forum elektrody dzial 'Początkujący, Laborki, Teoria, Referaty' - dlaczego glupawe - zadane po raz 15000 pytania tam nie laduja, albo od razu w koszu? zamiast tego kasujecie dyskusje na calkiem przyzwoitym poziomie dotyczace jezykow programowania, z ktorych mogloby wyniknac cos ciekawego:
    1. kazdy poczatkujacy zanim zabralby sie za bascoma przemyslalby sprawe.
    2. na forum zrobilaby sie atmosfera bardziej pr0, a mniej sprzyjajaca dla lamerstwa i lenistwa.
    czesto podkreslane jest, ze forum elektrody jest takie profesjonalne i w ogole, wrecz elitarne - a tymczasem przekroj przez kilka pierwszych stron tego dzialu to normalnie podstawowka. moze zamiast robic porzadek z sensownymi dyskusjami to mozna by zrobic porzadek z leniami. osobiscie administruje tez jedno spore forum (studenckie) i akurat na tymze forum ktos kto wlazi i od razu bezmozgowo zadaje pytanie na ktore odpowiedz znajdzie:
    1. na pierwszej stronie wynikow google
    2. na pierwszej stronie wynikow wyszukiwarki
    3. na poczatku manuala do czegostam
    to na miejscu dostaje ostrzezenie a temat leci do kosza, zeby forum nie szpecic. tutaj ostrzezenia wlepiacie za ortografie i klotnie o Bascoma, za to za takie lamerstwo - zadnych. nie znam Bascoma i nie chce go znac, ale zaloze sie, ze na conajmniej 50% pytan z jego tematu odpowiada jego manual, ktory dodatkowo jest po polsku. oczywiscie nikomu nie chce sie go czytac. po co... przeciez mozna wejsc na elektrode i klepnac posta.

    Quote:
    Mam nadzieję że temat licznych raportów i PW zostanie wreszcie rozwiązany.

    ktorych raportow? moich do was na lamerskie tematy, czy czyichs na moje posty o Bascomie? jesli tych pierwszych - wystarczy mi powiedziec, to przestane zglaszac lamerstwo niektorych tematow. jesli zas tych drugich... prawda w oczy kole <: skoro moje zarzuty na Bascoma sa niesluszne, to czemu nikt nie udowodni, ze jest inaczej, tylko leci z placzem do moderatorow, zeby skasowali moje zle i wredne posty? PW? rozumiem ze jakies lamki wyplakuja sie obsludze forum w ramie, ze ktos urazil ich kochaniutkiego bascoma, jak mieli problem z podstawowa skladnia, opisana doglebnie w manualu i milionie przykladow na tym forum... problem taki mozna latwo i szybko rozwiazac tak jak zaproponowal to kolega Ch.M. powyzej - wydzielic forum dla Bascoma. jakkolwiek stygmatyzujace bedzie to przezycie dla 'programistow' tego pozalowania godnego 'jezyka' - warto to zrobic. jesli forum to ma byc profesjonalne, to musi stad zniknac Bascom, a razem z nim setki userow tak leniwych, ze nie potrafia przeczytac instrukcji do swojego 'kompilatora'. pewnie niektorzy pisza w bascomie sensowne programy. pewnie nawet sa zrobione na nim dobre urzadzenia - niemniej jednak to jest PROMIL w oceanie lamerstwa totalnego.

    zeby przyciac od razu nastepne posty z argumentami za Bascomem odpowiem na X najpopularniejszych argumentow:
    1. Jak zachecic poczatkujacych do pisania na uC?
    - a po co ich zachecac? co to - kazdy musi pisac programy na uC? zostanie pilotem tez jest skomplikowane, jak zachecic poczatkujacych do zostania pilotami?
    - patrz pytanie 2.
    2. bascom ma prosta skladnie i jest prostszy.
    - bascom ma debilna skladnie. co do prostoty skladni, to od czasow C nie wymyslono nic prostszego (no dobra, php jest jeszcze prostsze, ale to jezyk skryptowy). jest prostszy? raczej stworzony dla leni, ktorzy nie potrafia przypisac jedynek do portu jak ma byc wyjsciem/wejsciem i musza miec do tego slowna komende. w tym aspekcie jest prostszy, bo zwalnia od myslenia. efekty tej prostoty widac na tym forum - najwiecej postow z pytaniami i problemami jest o 'najprostszym' jezyku
    3. w bascomie da sie napisac dobre programy.
    - swietnie. w kazdym jezyku sie da. tyle ze cos mi sie wydaje, ze pisanie _dobrych_ programow w bascomie wiaze sie z tym, ze nie mozna korzystac z ZADNEGO udogodnienia tego jezyka. w takim wypadku rownie dobrze mozna to zrobic w C - kod bedzie mniejszy i szybszy.
    4. bascom nie jest gorszy od C.
    - jest. WSZYSTKIE nowoczesne uC (AVR, PIC-16b, ARM, ...) sa konstruowane pod katem C. _C_, a nie czegokolwiek innego. konkretnie C, a nie jezyka wysokiego poziomu. z tego wzgledu C _zawsze_ bedzie lepszy od Bascoma pod katem optymalnosci, szybkosci i rozmiaru kodu.
    5. nauczenie sie bascoma pozwala na wiele rzeczy.
    - raczej na jedna - programowanie AVRow i C51. nauczenie sie C pozwala na programowanie KAZDEGO istniejacego (i paru nie istniejacych pewnie tez) uC, programowanie PC na kazdy system. znajac C bardzo latwo nauczyc sie nowoczesniejszych jezykow jak Java, C++, C#, php, perl. znajac C mozna myslec o powaznej pracy w tej branzy.
    6. Bascom pozwala skupic sie na problemie, a nie na detalach.
    - jak ktos jest tak leniwy, to sa kompilatory, ktore tez maja milion bibliotek gotowych do obslugi wszystkiego. takim kompilatorem chyba jest mikroC i CCS (nie wiem, nie uzywalem - powtarzam co uslyszalem). tam tez mozna sie skupic na algorytmie, a nie na detalach, skoro kogos tak bola te detale.

    wiecej mi sie w tym temacie pisac nie chce.

    popieram calkowicie kolege Ch.M. - wnosze o wydzielenie forum dla Bascomowcow - jaknajbardziej deklaruje sie do pomocy w sortowaniu teraz i w ewentualnej przyszlosci. w nowym podziale forum widac jest przewidziany dzial Mikrokontrolery Poczatkujacy - chcialbym jednak, aby dzial ten stal sie automatycznie tez dzialem dla Bascoma - jesli czyjs post dotyczacy Bascoma bedzie ambitny - nic nie stoi na przeszkodzie, aby przeniesc go do powazniejszego dzialu.

    @Ch.M. - nie badz taki zly dla Bascoma - nauczyl cie jednej, ale za to BARDZO waznej rzeczy - 'nigdy nie dotykaj tego czegos' [;

    0x41 0x56 0x45!!
  • #20
    lotnick
    Level 15  
    No...fajnie...załóżcie sobie nowy topic, ok?

    Dodano po 3 [minuty]:

    Spróbuję jeszcze napisać 1wire na piechote, a jak nie da rady to przesiadam sie na winavr. Wczoraj w nocy skompilowałem pierwszy program w winavr i chyba nie jest to takie straszne tym bardziej że pewnie powstało mnóstwo bibliotek do wszystkiego czego używam.
  • #21
    Zajc3w
    Level 14  
    Wpadł mi do głowy jeszcze jeden pomysł. Skoro jesteś początkujący w AVR to może nie podpiąłeś któregoś pinu GND, VCC lub AVCC?

    Wszystkie piny GND powinny być podpięte do masy. Tak samo VCC i AVCC do zasilania.
  • #22
    psooya
    Level 38  
    Nie koniecznie wszystkie. Bez przesady, wszystko zależy od potrzeb. Jeśli nie używasz ADC nie jest koniecznym podpinać AGND i AVCC choć już prędzej wolałbym podłączyć AGND do masy niż AVCC do plusa bo ono jest względne i zależy od ustawienia ADC i wcale nie musi być wykorzystane.
  • #23
    Freddie Chopin
    MCUs specialist
    skad sie biora takie pierdoly w necie? co chwila ktos takie glupoty pisze, a potem inni narzekaja, ze cos im nie dziala.

    W-S-Z-Y-S-T-K-I-E nozki zasilania maja byc podpiete do VCC, najlepiej zeby na K-A-Z-D-E-J byl kondensator odsprzegajacy do masy. W-S-Z-Y-S-T-K-I-E nozki masy maja byc podpiete do masy. nozki od czesci analogowej WLICZAJA sie do wszystkich i tez maja byc podpiete. zawsze. kropka. to ze komus przypadkiem dzialalo, to nie jest regula, a wyjatek.

    AVCC jest wzgledne? wzgledna to raczej jest twoja znajomosc datasheeta. VREF jest zalezne od ustawien i dlatego nie nalezy go dopinac bezposrednio, ale milo byloby go podpiac przez jakas rezystancje spora, aby nie wisial bezsensownie.

    0x41 0x56 0x45!!
  • #24
    psooya
    Level 38  
    www.atmel.com/dyn/resources/prod_documents/doc2521.pdf

    Racja pomyliłem się z AREF pisząc o AVCC tu mój błąd.

    PDF do M8 podaje że powinno być podpięte ale nie że musi być podpięte jeśli chodzi o AVCC, natomiast o AGND nic nie podaje bo pin nie jest rozróżniony. Nie spotkałem sie z problemem przy niedołączeniu tych pinów gdy ADC był nie używany w układach które zrobiłem i działają do dziś bezproblemowo. Stosowałem nie raz M8 TQFP44 i nie podłączałem wszystkich pinów bo nie dało się zrobić takiego PCB a nawet raz użyłem pinu GND do przeprowadzenia masy do dalszej części układu. Poza tym pomiary miernikiem pinów GND wykazują ich zwarcie wewnątrz struktury układu.
  • #25
    Freddie Chopin
    MCUs specialist
    no to rob sobie tak dalej, tylko nie rozglaszaj tego wszystkim jako prawd objawionych, gdyz nimi zdecydowanie nie sa. sa to najzwyklejsze ZLE PRAKTYKI, ktore MOGA (choc nie musza) doprowadzic do powaznych problemow przy pracy w ciezkich warunkach.

    0x41 0x56 0x45!!
  • #26
    shg
    Level 35  
    psooya wrote:
    (...) nie podłączałem wszystkich pinów bo nie dało się zrobić takiego PCB

    Zawsze się da, chociażby drutem.
    psooya wrote:
    a nawet raz użyłem pinu GND do przeprowadzenia masy do dalszej części układu. Poza tym pomiary miernikiem pinów GND wykazują ich zwarcie wewnątrz struktury układu.

    "Zwarcie", a nie zwarcie. Połączenie cieniutką ścieżką wewnątrz struktury, rezystancja rzędu kilku omów. Ciekawe przy jakim prądzie "pójdzie z dymem". Poza tym po stronie za procesorem mamy ładną prawie pływającą masę. Zresztą to tylko w ATmega8. Inne tego "buga" nie mają.
  • #27
    lotnick
    Level 15  
    Ciekawe do kiedy jest sie "początkującym" :-) . Dopóki używa się BASCOMA?
    Do rzeczy: Mam obudowe DIP. Jest jeden VCC i dwa GND - trzeba by się postarać bardzo żeby nie podłączyć;-) . AVCC jest podłączony zgodnie z 210 stroną datasheeta przez dławik z kondkiem do GND.
    Nie mam już wieczorami siły do tej zabawy, ale mam nadzieję, że dzisiaj jeszcze powalczę.
    Dzięki za sugestie, jak Wam coś jeszcze wpadnie do głowy to dajcie znać.
  • #28
    Zajc3w
    Level 14  
    psooya wrote:
    Stosowałem nie raz M8 TQFP44 i nie podłączałem wszystkich pinów bo nie dało się zrobić takiego PCB......


    Widać że NIE WiESZ O CZYM PISZESZ ATmega 8 występuje w obudowach TQFP32 PDIP28 i MLF32

    lotnick wrote:
    Ciekawe do kiedy jest sie "początkującym" :-) . Dopóki używa się BASCOMA?


    Nie chciałem Cie urazić, zdawało mi sie że pisałeś że to Twoje początki z AVR - musiało mi sie pomylić z jakimś podobnym wątkiem.
  • #29
    psooya
    Level 38  
    O jej czy to ważne czy to TQFP 44 czy 32 M16 jest w TQFP44 i ma z każdej strony zasilanie GND i Vcc. Wiem o czym pisze i programuje to nie w baskupie tylko ASMie. Czepiasz sie o byle co.

    Ciekawi mnie jedno bo wszyscy prawią tu tylko dobra i prawdy jedyne i są skłonni chyba jedynie do kłótni i niczego więcej co widać np celowe wytłuszczanie textu. Ile razy ktoś z was zastosował kwarc do procka i zrobił to dobrze? Kto przy pracy z kwarcem zasilał procka przez dławik i kondensator, kto zrobił pod całym prockiem poligon? Nawet firmy robiące zestawy tego nie robią. Zapewne niewiele osób widziało PDFa do którego zamieściłem link na tym forum. Ale napisanie złej ilości pinów to już straszna zbrodnia? A najwięcej problemów z resetowaniem sie procesorów jest nieprawidłowe podpięcie go do kwarcu i nieprawidłowo prowadzone ścieżki sygnałowe, oraz złe filtrowanie i niewydolność zasilacza. Żałosne to jest.
  • #30
    Balu
    Level 38  
    Sam kolego robisz to sam pisząc Bascup a nie Bascom... Poza tym niektórzy widzieli ten plik...wyobraź Sobie, że nawet tak robią... i uwaga... PISZĄ W BASCOMIE!!!(choć nie tylko):) :)

    Pozdrawiam i życzę więcej hmm spokoju w sercu;)