Zew. oscylator

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Awatar użytkownika
Dawid2379
Użytkownik
Posty: 318
Rejestracja: 17 lis 2010, 19:42
Lokalizacja: Kluczbork
Kontakt:

Zew. oscylator

Post autor: Dawid2379 » 25 cze 2013, 17:29

Mam problem z zew. kwarcem, podłączyłem dobrze(16 lub 8Mhz) wraz z kondensatorami, lecz po zaprogramowaniu z poziomu AVR Studio nie ma żadnych zmian, mogę odłączyć kwarc z płytki a układ dalej działa... jak widać na załączniku fusy zaprogramowane, nie wywala żadnego błędu, coś ominąłem? programuje ale jednak nie programuje:P
Załączniki
Bez tytułu.png

Awatar użytkownika
Artyliusz
Użytkownik
Posty: 305
Rejestracja: 06 sty 2013, 14:10
Lokalizacja: Z Polski
Kontakt:

Post autor: Artyliusz » 25 cze 2013, 17:51

Ustawiałeś częstotliwość w programie, bądź w opcjach projektu?

Sprawdzałem dla tego procka kwarc taki jak Ty ustawiłeś i inne ustawienia jednak fuse low w żadnym wypadku nie było 0xFF. High się zgadzało.

Awatar użytkownika
Dawid2379
Użytkownik
Posty: 318
Rejestracja: 17 lis 2010, 19:42
Lokalizacja: Kluczbork
Kontakt:

Post autor: Dawid2379 » 25 cze 2013, 17:58

W opcjach projektu ustawiałem raz 8 raz 16Mhz i też bez tego. W programie nie ustawiałem.

edit; próbowałem też z MkAvrCalculator ale kompletnie fixuje.
Jak będzie potrzeba zrzucę kilka screenów może coś jest poprzestawiane..

Awatar użytkownika
Artyliusz
Użytkownik
Posty: 305
Rejestracja: 06 sty 2013, 14:10
Lokalizacja: Z Polski
Kontakt:

Post autor: Artyliusz » 25 cze 2013, 18:08

Teraz spojrzałem, że low 0xFF oznacza, że żaden bit do low nie jest zaznaczone, ale to jest sprzeczne z samym sobą, gdyż masz wybraną opcję "Start up time" czyli opóźnienie realizacji programu po włączeniu zasilacza - bit 5 i 6 Sut0 i Sut1.

Oraz co najważniejsze, nie ma zaznaczonego bitu określającego źródło taktowania procesora! Są to bity 0 i 1 CKSEL0 i CKSEL1.
Tutaj leży błąd.

Awatar użytkownika
Dawid2379
Użytkownik
Posty: 318
Rejestracja: 17 lis 2010, 19:42
Lokalizacja: Kluczbork
Kontakt:

Post autor: Dawid2379 » 25 cze 2013, 20:31

Szukam dalej rozwiązania. W dodatku nie działa mi MkAvrCalculator(nie widzi programatora). Mam programator StK500(ISP ADAPTER 2 z firmy Sibit), system Win7. Poprzez Avr Studio da się zmienić wew. kwarc z 4Mhz na 8Mhz i odwrotnie, nie ma za to możliwości zmiany na zewnętrzny 8 lub 16Mhz. Po zaprogramowaniu dalej działa wew osc. 8Mhz. Ma ktos jakieś pomysły? A procek to Attiny2313PU.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 25 cze 2013, 22:49

Też miałem kłopoty z STK500v2. Dzięki jednemu koledze któremu dziękuję po raz kolejny, nabawiłem się USB ASP z Atnela i teraz prawie żadnych kłopotów nie mam. Czasem wyskoczy coś jednostkowego.

Rada? Zakup USB Asp z firmy Atnel. Nie reklamuję tej firmy tylko ich produkt bo nie ma z nim żadnego kłopotu.

Awatar użytkownika
joon
Użytkownik
Posty: 2076
Rejestracja: 30 cze 2007, 22:56
Lokalizacja: Kraków, Przemyśl, Warszawa
Kontakt:

Post autor: joon » 26 cze 2013, 21:29

Matrix: uważaj bo zaraz będzie to zaznaczone jako krypto reklama przez niektórych moderatorów :/

Dawid: jak masz problem z MkAvrCalculator napisz do autora- albo dostaniesz rozwiązanie problemu albo następna wersja będzie obsługiwała- a aktualizacje są bardzo często, zresztą teraz przy odpaleniu programu widzisz czy jest nowa wersja ;)

Awatar użytkownika
Dawid2379
Użytkownik
Posty: 318
Rejestracja: 17 lis 2010, 19:42
Lokalizacja: Kluczbork
Kontakt:

Post autor: Dawid2379 » 27 cze 2013, 20:40

Zainstalowałem sys. od nowa bo i tak komp mulił, zaraz ściągnę kalkulatorek i zobaczę, wczoraj jeszcze zdążyłem zablokować dwa Tiny przez te fusy;/

Awatar użytkownika
Dawid2379
Użytkownik
Posty: 318
Rejestracja: 17 lis 2010, 19:42
Lokalizacja: Kluczbork
Kontakt:

Post autor: Dawid2379 » 30 cze 2013, 19:43

Odblokowałem jedno uC Attiny2313.
Po zainstalowaniu sys. na nowo MkAvrCalculator działa, wykrywa uC, programuje, odczytuje, wszystko robi. Jednak po wyciągnięciu kwarcu układ dalej działa... LECZ PO WYCIĄGNIĘCIU JEDNEGO Z KONDENSATORÓW(koło kwarcu) JUŻ NIC NIE DZIAŁA?
Nie wiem co to może być, dodaję jeszcze schemat jak mam to podłączone, na tej samej płytce stykowej jest też Mega16 która daje mi sygnał PPM. Może to ma znaczenie.

Co do kodu próbowałem na wszelkie sposoby definiować piny XTAL1 i XTAL2, jako wejściowe, wyjściowe, z podpiętym rezystorem...

Kod: Zaznacz cały

#include <avr/io.h>
#include <avr/interrupt.h>


#define SER1 PD0
#define SER2 PD1 
#define PPM  PD3
#define PPM2 PD2
#define led PD4
volatile uint8_t b;
volatile int i;
volatile uint8_t cnt;
volatile int a;
int main(void)  
{ 
  DDRA  = 0xfc;
 
  
  DDRD  |= (1<<SER1); //wyjście 
  DDRD  |= (1<<SER2); //wyjście 
  DDRD |= (1<<led); 
  DDRB = 0xFF; 
  PORTB = 0xFF; 
  
 
  GIMSK |= (1<<INT1)|(1<<INT0);
  MCUCR |= (1<<ISC11)|(1<<ISC00)|(1<<ISC01);
  
   sei
   ();  // wl.przerwan 
    
   while(1) 

 { 



if (b==1)
{  
a++;
{
   
   if (a>50)
    { i++;
	  a=0;
  PORTD ^= (1<<PD4);
	      }

   if (i>50)
   { 
      b=0;
    
   }
  
} 
	 
 }}        
} 
ISR (INT0_vect)
{
static uint8_t cntn; 
cntn++; 
switch (cntn) 
{ 
case(1): 

b=1;
MCUCR &=~(1<<ISC00); 
break; 
case(2): 
if (i>45)
   { 
  cnt = 0;
   }
i=0;
b=0;
MCUCR |= (1<<ISC00); 
cntn=0; 
break; 

} 
 
	 
}

ISR (INT1_vect) 
{    
 
    cnt++;
    switch(cnt) 
   { 
    case(1):           
PORTD |= (1<<PD0);  
    break; 
    case(2): 
PORTD  &=~ (1<<PD0);
PORTD |= (1<<PD1);  
    break; 
 case(3): 
PORTD &=~ (1<<PD1);
    break; 
 
   } 
 if(cnt>2) 
    
    cnt=0;
}
Załączniki
Bez tytułu.png
Bez tytułu.png (3.87 KiB) Przejrzano 9428 razy

Awatar użytkownika
Dawid2379
Użytkownik
Posty: 318
Rejestracja: 17 lis 2010, 19:42
Lokalizacja: Kluczbork
Kontakt:

Post autor: Dawid2379 » 02 lip 2013, 17:38

A jak się ma przypadkowe podłączenie odwrotnie zasilania do tej sytuacji? kiedyś te uC omyłkowo włożyłem na płytkę stykową odwrotnie, na moment uC stał się okropnie gorący, nie przejąłem się tym ponieważ niby dalej działał, timery, porty działają do tej pory ale może jednak coś koło pinów XTAL uległo zniszczeniu ?

ODPOWIEDZ