Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 27 lip 2017, o 15:44


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
Autor Wiadomość
PostNapisane: 17 lip 2017, o 08:46 
Offline
Nowy

Dołączył(a): 17 lip 2017
Posty: 11
Pomógł: 0

Witam serdecznie,
Jestem nowy na forum jak i nowy w programowaniu mikrokontorlerów.
Posiadam procek ATtiny2313V i kwarc zewnętrzny CQ 12.000Mhz.
Korzystam z programu avr8 Burn-O-mat v2.0
Kwarc jest podłączony do xtal1 i do xtal2 i dioda miga.
Problem jest taki, że jak ustawię taktowanie w code bloksie na 3Mhz lub 8Mhz, bo takie mam ustawienie również
w avr8 Burn-O-mat, a "delay_ms" np na 1 ms, to dioda nie miga w odstępie 1 sec.Miga szybciej.
Tzn ,że kwarc żle odmierza czas.
W programie avr8 Burn-O-mat mam takie ustawienia:
Wchodzimy do fuses->oscillator/clock options->external crystal or ceramik resonator
mam zanaczone: crystal - 3.0 Mhz do 8.0Mhz
divide system clock by 8
slowly rising power
brown out detection: disabled
fuse hex editor:
efuse = FF
hfuse = DF
Ifuse = 7D
czyli "Spien" jest zaznaczone ptaszkiem
"ckdiv8" - zaznaczone
"cksel1" - zaznaczone

Oto mój program:
///////////////////////////////////////////////////////////////////////////////////////
#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 8000000UL

int main(void)
{
DDRB = 0x01;

while(1)
{
PORTB |= 0x01;
_delay_ms(1000);
PORTB &= ~0x01;
_delay_ms(1000);

}

return 0;
}
//////////////////////////////////////////////////////////////////////////////////////////////////
Pytanie jest, jak ustawić fusbity aby kwarc odmierzał czas prawidłowo?

Z góry bardzo dziękuję za pomoc.
Zbigniew



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2017, o 08:58 
Offline
Użytkownik

Dołączył(a): 16 wrz 2014
Posty: 182
Lokalizacja: Wołów
Pomógł: 9

A Mirek w pocie czoła pracował nad programem MkAvrCalculator gdzie wszystkie ustawienia uC masz jak na dłoni.

*W wersji FREE możesz pracować z uC ATtiny2313



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2017, o 09:05 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 645
Pomógł: 50

nie możesz zmienić częstotliwości w ustawieniach jak masz zewnętrzny kwarc, musiałbyś go zmienić na inny np. 4MHz. Owszem, możesz zmienić taktowanie ale wewnętrznego oscylatora



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2017, o 09:08 
Offline
Nowy

Dołączył(a): 17 lip 2017
Posty: 11
Pomógł: 0

Hej,
A jakbym wszedł w ustawienia "wewnętrznego oscylatora" tak jak mówisz, i tam jakie ustwienia zrobić i czy to nie spowoduje zablokowanie mikrokontrolera?
Pozdro.

------------------------ [ Dodano po: 2 minutach ]

Do pimowo,
Ale ja pracuje na linuxie.Oczywiście odpaliłem ten program poprzez emulator "wine" ale niestety problem ze sterownikami
i się nie da nic zrobić.

Zmiana częstotliwości poprzez wewnętrzny oscylator nie udała się.Po prostu fusbity się nie zapisują.
Wróciłem więc do poprzednich ustawień.

Nie da się ustawić fusbitów lfuse na wartosc "FF" ,ponieważ automatcznie program ustawia je na "7F".Po prostu przeskakuje.



Ostatnio edytowano 17 lip 2017, o 09:37 przez zbysiu100, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2017, o 09:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 paź 2014
Posty: 190
Lokalizacja: Rzeszów
Pomógł: 9

1. ATtiny2313V według producenta pracuje stabilnie do 10MHz. Oczywiście na wyższej częstotliwości pójdzie (jak widać - poszedł by też zapewne i wyżej), ale jak byś chciał coś robić "na sprzedaż" zalecane jest trzymanie się wartości katalogowych - taka nic nie znacząca uwaga na przyszłość.

2. Dla 12MHz powinieneś mieć fusebity ustawione: LOW:FF, HIGH: DF, EXTENDED: FF. Są to przykładowe ustawienie. Chodzi mi o to, aby zewnętrzny kwarc ustawić na >8MHz i wyłączyć CKDIV8 (podział zegara przez osiem - jak sama nazwa mówi dzieli on zegar na 8 - dla 12MHz jest to 1,5MHz). W Twoim przypadku też nie jest to krytyczne, bo skoro łączysz się z prockiem, to na twoich ustawieniach poszedł. Jednak dobrze byłoby, aby ustawienie fusebitów były właściwe z notą katalogową.

3. Najważniejsze - wartość zegara zadeklarowana w programie musi się zgadzać z wartością rzeczywistą. Na podstawie wartości zadeklarowanej kompilator oblicza Ci długości opóźnień dla delay. Gdy w programie masz zadeklarowane np 8 Mhz to wynikowy kod przesyłany do procesora będzie inny niż dla tego samego programu z zadeklarowanym zegarem np. 3MHz. Opóźnienia liczone są dla danej częstotliwości i będą się w rzeczywistości zgadzać, gdy procesor będzie taktowany taką samą częstotliwością.


Autor postu otrzymał pochwałę

_________________
Mr. Nobody



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2017, o 09:51 
Offline
Nowy

Dołączył(a): 17 lip 2017
Posty: 11
Pomógł: 0

Udało sie ustawić tak jak radziłeś.
zewnetrzny na: 8Mhz - 20Mhz, dzielenie wylączone, ale teraz nie miga dioda.
W code bloksie taktowanie ustawiłęm na: 8000000UL

////////////////////////////////////////////////////
#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 8000000UL

int main(void)
{

DDRB = 0xff;
PORTB = 0xff;


while(1)
{


PORTB = (1<<PB0);
_delay_ms(100);
PORTB = ~(1<<PB0);
_delay_ms(100);



}

return 0;
}
//////////////////////////////////////////////////////////////////////////
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2017, o 10:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 paź 2014
Posty: 190
Lokalizacja: Rzeszów
Pomógł: 9

A co robi?
Świeci jakby lekko przygaszona?
łączność z prockem masz?
Czym programujesz? USBASP?
Spróbuj tego:

http://mirekk36.blogspot.com/2016/12/mk ... -beta.html

Jak bym to miał kiedy zaczynałem.... pierwszy swój program pisałem w notatniku i kompilowałem po edycji makefile....

_________________
Mr. Nobody



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2017, o 10:53 
Offline
Nowy

Dołączył(a): 17 lip 2017
Posty: 11
Pomógł: 0

Tak, programuje USBasp.Dioda mocno świecie, ale nie miga mimo tego,że jest ustawione delay.
Program avr8 Burn-O- mat zapisuje wszystko do procka.
Pozdro


Mam pytanie odnośnie programu avr8 Burn -O-mat.
Jest tam opcja "apply".Czy należy z tego korzystać?
Bo samo zapisz fusbity bez wciskania "apply" działa,więc nie wiem po co to jest.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2017, o 11:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 paź 2014
Posty: 190
Lokalizacja: Rzeszów
Pomógł: 9

Nie znam tego programu.
A dioda Ci świeci, bo delay'e ustawione masz na 100ms, co po przeliczeniu na kwarc 12MHz daje ok 66ms.

_________________
Mr. Nobody



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2017, o 11:53 
Offline
Nowy

Dołączył(a): 17 lip 2017
Posty: 11
Pomógł: 0

Zwiększam wartosć na 1000ms i dalej dioda nie miga, a tylko świeci.

------------------------ [ Dodano po: kilkunastu sekundach ]

Jak przeliczyłeś,że wyszła ci taka wartosć?

------------------------ [ Dodano po: 48 minutach ]

Wróciłem do dzielenia przez 8 i dioda zaczęła migać ,ale i tak kwarc taktuje błędnie.W delayu wpisuje coraz większe wartośći ale to i tak nic nie zmienia.

Nie wiem w czym jest problem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2017, o 12:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 paź 2014
Posty: 190
Lokalizacja: Rzeszów
Pomógł: 9

Jak liczyłem - szacunkowo - dla 12MHz ilość taktów odpowiadającym 8MHz wykona się w 2/3 czasu - w sekundzie dla 12MKz jest 12 000 000, a dla 8MHz jest 8 000 000. Czyli dla 12MHz delay 100ms dla 8MHz wykona się szybciej - 100ms * 2/3 daje ok 66ms.
Coś Ci nie programuje się ten procek skoro na zmianę długości delay nie odpowiada.
Nie znam code bloksa - spróbuj zainstalować MKClipse. Na prawdę warto. Nie będziesz tracił czasu na zastanawianie się dlaczego prosty kod nie działa.

_________________
Mr. Nobody



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2017, o 13:19 
Offline
Nowy

Dołączył(a): 17 lip 2017
Posty: 11
Pomógł: 0

Dziwne,że nie mogę procka zaprogramować na wewnętrzne taktowanie.Nie zapisuje w ogóle.Klikam i klikam na zapisz i nic.
Co do Mkclipse to zobaczę czy mozna na linuxie.
Dziękuję ci bardzo za pomoc.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2017, o 13:48 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 645
Pomógł: 50

na pewno masz dobrze kwarc + kondensatory podłączony?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lip 2017, o 16:12 
Offline
Nowy

Dołączył(a): 17 lip 2017
Posty: 11
Pomógł: 0

Bez kondensatorów.Jedni mówią, że nie są potrzebne, a drudzy, że są niezbędne.
Kwarc jest podłączony do xtal1, xtal2,jaką nóżką to obojętne.
Jaki rodzaj kondensatorów i jak je podłączyć?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2017, o 08:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 paź 2014
Posty: 190
Lokalizacja: Rzeszów
Pomógł: 9

Z kondensatorami przy oscylatorze jest tak - jak ich niema to często atmega ruszy, jak są - ruszy prawie zawsze. Kwarc musi się "bujać". Jak nie podłączysz kondensatorów zewnętrznych to zazwyczaj występujące pojemności pasożytnicze wystarczą do oscylacji. Niektóre atmegi posiadają wewnętrzne kondensatory. Jest to zawsze opisane w nocie katalogowej (jej wadą jest to, że ma kilkaset stron :) )

Obrazek

Co do sprzętu - po podłączeniu na stykówce dwa razy zweryfikuj czy jest wszystko ok.
Co do oprogramowania. Ty musisz mieć pewność, że jak wysyłasz wsad to został on wgrany - komunikat o sukcesie lub kod błędu. Jak piszesz "klikam i nic" to tak na dwoje babka wróżyła.
Ja, poza win nie potrafię obsłużyć żadnego innego systemu operacyjnego. Kilka razy próbowałem nauczyć się linuksa, ale jak krew w piach. Nie mogę pozbyć się przyzwyczajeń z windowsa....
Kiedyś nawet udało mi się zainstalować eclips'a wraz z toolchain'em AVR i nawet to chodziło.
Skoro mi się udało, to Ty powinieneś sobie z tym także poradzisz. Java, eclipse, plugin avr pod eclipse, toolchain avr, avrdude i sterowniki (jeśli coś takiego pod linuxem występuje) do USBASP.
Podstawa, to dobre narzędzie - tak jak pisałem, musisz mieć pewność, że procesor się programuje i że wsad jest wgrywany, bo jak zaczną się problemy z szukaniem błędów w kodzie to zginiesz.
Twój program jest prosty i on MUSI działać.
Na forum jest kilku linuxsowców - po gmeraj - na pewno coś znajdziesz.

_________________
Mr. Nobody



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2017, o 09:14 
Offline
Użytkownik

Dołączył(a): 16 wrz 2014
Posty: 182
Lokalizacja: Wołów
Pomógł: 9

Linux + AVRdude + UABasp + ATtiny2313:
1. sprawdzamy połączenie z uC:
Składnia: [ Pobierz ] [ Ukryj ]
język bash
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

2. odczytujemy program z uC
Składnia: [ Pobierz ] [ Ukryj ]
język bash
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

3. zapisujemy program do uC
Składnia: [ Pobierz ] [ Ukryj ]
język bash
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

4. zmieniamy fusebity uC
Składnia: [ Pobierz ] [ Ukryj ]
język bash
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 lip 2017, o 13:44 
Offline
Nowy

Dołączył(a): 17 lip 2017
Posty: 11
Pomógł: 0

Doszedłem do wniosku, że jest to wina na pewno chińskiego USBasp.
Są przerwania.Raz dioda miga, drugi raz nie miga, lub bardzo słabo jest zapalona.
Jak ścisnę dwoma placami układ scalony, to nie ma w ogóle świecenia, drugim razem jest, ale słabo.
Wniosek taki, że trzeba kupić nowy.
Bardzo dziękuję wszystkim forumowiczom, którzy zainteresowali się moim postem i podzielili się swoją wiedzą.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2017, o 17:12 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 876
Pomógł: 42

Kup Mirkowy programator a zaoszczedzony czas przeznaczysz na naukę programowania :) btw. W komplecie dostaniesz licencje na MkAvrCalculatora :)

Sent from my Mi-4c using Tapatalk



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO