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

Błędna inicjalizacja Atmegi8

kraz73 05 Lut 2010 09:50 945 2
REKLAMA
  • #1 7645921
    kraz73
    Poziom 28  
    Witam, mam mały problem z Atmegą8-16. W projekcie pracował na początku Attiny 2313 i sprawował się poprawnie, ale musiałem rozszerzyć płytę o latche zmieniłem procesor i dodałem przy okazji multiplekser 4053.

    Początkowo /z Attiny/ nie było problemu ale teraz /Atmega/po odłączeniu STK200 od multipleksera i podaniu zasilania na wyświetlaczu /2*8/ mam tylko rząd kwadracików. Powtórny reset załatwia sprawę i program chodzi już bezawaryjnie. Co może być przyczyną i czy jedynym rozwiązaniem jest dodanie zewnętrznego resetu?

    Reset jest podciągany do VCC przez 10K, zasilanie stabilne 100nF + 47uF po stabilizatorze, kwarc wewnętrzny 8Mhz, brak pullupa na niewykorzystanych nogach i kondensatorka na ARef, ale nie sądzę aby to było przeszkodą. Reset napędza przy okazji multiplekser, podpięty do SPI i w zasadzie wszystko jest ok, jak już chodzi to bezawaryjnie,tylko brakuje resetu przy uruchamianiu. Fakt można dodać jakiegoś DS1813 ale powinno chodzić bez problemu na samym 10K. Z przypiętym STK200 + komputer układ działa bez zarzutu.
  • REKLAMA
  • #2 7646357
    mirekk36
    Poziom 42  
    Zamiast doszukiwać się niestworzonych historii na temat RESET'u napisz może w czym w ogóle piszesz program, pokaż ew fragment jak on startuje i może pokaż schemat. Bo na 99% sądzę że masz babole albo z połączeniami, albo z masami albo w kodzie programu.

    Poza tym Pullupy na niewykorzystanych pinach nigdy nie są potrzebne wystarczy ustawić podciągnięcia wewn rezystorem - programowo.

    O kondensatorach filtrujących nie zapomniałeś przy stabilizatorze ale jak widać - już przy procku i innych scalakach na pewno już je amba zjadła ;)

    dlatego mówię pokaż schemat bo może się okazać, że tu leży pies pogrzebany. A upieranie się że w innym przypadku to samo działało a tu nie = w ogóle nie ma sensu.
  • #3 7646619
    kraz73
    Poziom 28  
    No tak ze schematem mogą być kłopoty, bo jest na kartce ale nie w komputerze, 100nF /smd/ wklejony jest między nogami procka w DIP, a 47uF /też smd/ 3mm od niego, bliżej można było tylko nie wiem po co. 100nF jest także na rejestrze i multiplekserze. Całoś zasilana jest z dwóch 7805 z czego dla procka i multipleksera jest założony całkiem oddzielny. Na każdym wisi 47uF + 100nF na wyjściu i 100nF na wejściu /smd także też bardzo blisko/. Docelowo mają do dyspozycji jeszcze 1mF, ale już troche dalej jakieś 6cm druku. Jak uporam się z resetem to dokleję docelową ilość rejestrów i dołożę 7805, ale na razie jest jeden dla proca + multiplekser i jeden dla jednego HC175D. Do płytki dołączony jest LCD 2*8 i nie ma już nic więcej.

    Reset jest podciągany przez jeden rezystor 10K postawiony między VCC i reset pod procem bo jest tam miejsca w brud. Multiplekser chodzi na tym samym resecie sterowany przez nogi 9, 10, 11. Całość podłączona do 6 nóżkowego złącza pod STK.

    Program najprostszy w Boscomie czy też w C mający zainicjować wyświetlacz LCD i wypisać najprostszy tekst, programowanie przez STK w Boscomie i w PonyProgu /hex z C/

    Kawałek kodu z Boscoma:
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    Config Lcd = 16 * 2                                         'konfiguracja wyświetlacza jako 2*16 lub 2*8
    Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.0 , Db7 = Portc.1 , E = Portc.4 , Rs = Portd.1
    
    Cls
    
    
       Lcd "Loading"
    
    
    Wait 1
    
    '------------------------------program glowny---------------------------------------------------------------------
    
    Do
    
    Loop                                                        'koniec programu glownego
    


    Przestawiony tylko fusel od zegara na wewnętrzny 8Mhz reszta ustawienia fabryczne.

    Czy podciągnięcia muszę każdorazowo definiować? Bo płyta ma ewoluować i nie przewiduję aby została wolna choć jedna noga procesorka?.

    Po wymuszeniu resetu tak ten program jak i szkielet docelowego prawidłowo sobie pracują. Czy zastosowanie 4053 w przełączniku SPI może mieć jakiś wpływ na prawidłowe działanie resetu?
REKLAMA