2313 bez rezonatora - można?

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
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

2313 bez rezonatora - można?

Post autor: matrix » 20 paź 2009, 15:04

słuchajcie, mam mały problem. zaprojektowałem płytkę, ale zbrakło miejsca na kwarc i towarzyszące mu kondensatory. czy mogę jakoś programowo taktować uP?
nie mam miejsca już na poprowadzenie jakichkolwiek ścieżek.

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2037
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 20 paź 2009, 15:09

Ten normalny attiny2313?
Czy stary 90s2313?

Attiny bez problemu zaprogramujesz bez kwarca, jeśli tylko nie zmienisz fusebitów na kwarc zewnętrzny (wtedy, żeby programator go zobaczył musisz podpiąć ustawiony w fusach kwarc zewnętrzny ;)
Standardowo fusy są ustawione na rezonator wewnętrzny, dlatego jeśli nie ma specjalnych potrzeb, nie ma co dokładać elementów, zwiększać kosztów i rozmiaru płytki. ;)

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

Post autor: matrix » 20 paź 2009, 15:14

Kulpina pisze:Ten normalny attiny2313?
Czy stary 90s2313?
ten normalny.
Kulpina pisze:Attiny bez problemu zaprogramujesz bez kwarca
chodzi o to żeby on pracował w układzie docelowym bez kwarcu.
Kulpina pisze:jeśli tylko nie zmienisz fusebitów na kwarc zewnętrzny
jak powinien wyglądać początek programu żeby układ śmigał bez kwarcu?
czy będę mógł go także programować przez ISP bez rezonatora?

jaka będzie częstotliwość pracy takiego procesora?

Awatar użytkownika
c4r0
Moderator
Posty: 2150
Rejestracja: 13 kwie 2004, 19:56
Lokalizacja: z lasu
Kontakt:

Post autor: c4r0 » 20 paź 2009, 15:28

Program wygląda dokładnie tak samo jak z rezonatorem, niczym się nie różni. Można programować przez ISP. Częstotliwość pracy będzie taka jaką ustawisz. Dostępne częstotliwości oraz tą domyślną znajdziesz w nocie katalogowej którą sobie ściągnij.

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

Post autor: matrix » 20 paź 2009, 15:37

c4r0 pisze:Dostępne częstotliwości oraz tą domyślną znajdziesz w nocie katalogowej którą sobie ściągnij.
ściągnąłem notę, ale nie mogę w niej znaleźć potrzebnych informacji. jest tylko opis pinów i kilka tabelek z których niewiele rozumiem.

znalazłm coś takiego, ale nie bardzo to rozumiem:
Załączniki
internal oscilator.JPG

Emil1991
Użytkownik
Posty: 118
Rejestracja: 10 mar 2008, 12:30
Lokalizacja: Lubin
Kontakt:

Post autor: Emil1991 » 20 paź 2009, 15:56

Attiny2313 ma fabrycznie włączony wewnętrzny generator taktujący o częstotliwości 1KHz, więc nie trzeba stosować zewnętrznego kwarcu, ani kondensatorów na końcówkach 4 i 5. Jeżeli natomiast chcemy taktować procesor wyższą częstotliwością, musimy podpiąć zewnętrzny kwarc wraz z kondensatorami oraz odpowiednio skonfigurować fusy. Z zaprogramowaniem bez kwarcu nie będzie problemu.

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 20 paź 2009, 16:35

Emil1991 pisze:wewnętrzny generator taktujący o częstotliwości 1KHz,
Nie prawda.

Kondensatorów też nie trzeba jeśli sie w fusebitach nie wyłączy wewnętrznych pojemności. Gdy ustawisz na zew. źródło sygnału zegarowego to nie dokonasz też bez niego programowania, nie ważne czy to kwarc czy generator RC zewnętrzny. Zatem kwarc i opcjonalnie kondensatory w przypadku gdy zmienisz w fusebitach na zewnętrzny zegar. Inaczej jest uaktywniony wew. generator to piny XTAL mogą służyć jako piny I/O i będziesz je tak mógł używać.

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

Post autor: matrix » 20 paź 2009, 16:46

czyli co? jednym słowem, niczego nie ruszam w programie i początek piszę na przykład taki:

Kod: Zaznacz cały

'sterownik bramy na tiny 2313
$regfile = "2313def.dat"
spot Alias portb.0                 'silnik prawy otwiera
spza Alias portb.1                 'silnik prawy zamykla
cpot Alias pinb.2                  'wejscie czujka prawa otwarta brama
cpza Alias pinb.3                  'wejscie czujka prawa zamknieta brama
slot Alias portb.4                 'silnik lewy otwiera
slza Alias portb.5                 'silnik lewy zamyka
clot Alias pinb.6                  'wejscie czujka prawa otwarta brama
clza Alias pinb.7                  'wejscie czujka prawa zamknieta brama
licznik alias pind.0
czujnik alias pind.1

dim x as byte
dim wspza as Bit
dim wslza as Bit
dim wspot as Bit
dim wslot as Bit
declare Sub otwieram
declare Sub zamykam
declare sub stopuje
declare Sub wybor
config INT0 = FALLING
Enable Interrupts
Enable Int0
enable INT1
on int0 czujka
on int1 brama_stop
dalej program i nie muszę dawać ani kwarcu, ani kondensatorów i wszystko śmiga i programowanie też?

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2037
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 20 paź 2009, 17:21

Tak. Jeśli masz możliwość to sprawdź sam ;) Płytka stykowa, attiny kabelek i zobacz jak to wygląda. W Bascomie fusy się ustawia łatwo. Jest tam lista rozwijana internal oscilator (i możesz wybrać jego częstotliwość) i chyba jakieś opcje external oscilator w których musisz wybrać w jakich przedziałach mieści się generowana częstotliwość ;)

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 20 paź 2009, 17:21

tak, tylko $crystal 1000000 musisz dopisać

Awatar użytkownika
Kulpina
Użytkownik
Posty: 2037
Rejestracja: 28 lip 2005, 16:57
Lokalizacja: Sanok
Kontakt:

Post autor: Kulpina » 20 paź 2009, 17:23

snow pisze:tak, tylko $crystal 1000000 musisz dopisać
Jeśli chodzi o Bascoma to chyba nie trzeba.
Tzn, z tego co pamiętam są to tylko informacje dla kompilatora, stanu faktycznego np. Fuse Bitów nie zmieniają. Dodatkowo w fusach musisz ustawić.

Emil1991
Użytkownik
Posty: 118
Rejestracja: 10 mar 2008, 12:30
Lokalizacja: Lubin
Kontakt:

Post autor: Emil1991 » 20 paź 2009, 17:37

Sorki, chodziło mi o 1MHz :razz:

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 20 paź 2009, 18:24

Kulpina pisze:Jeśli chodzi o Bascoma to chyba nie trzeba.
Jeżeli chce się korzystać z funkcji opóźnień czasowych to trzeba, zresztą to jedna linia kodu więc to chyba nie jest wielkim problemem dopisywać. W końcu kompilator musi wiedzieć na jakim sprzęcie ma program pracować i jak go poprawnie skompilować.

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

Post autor: matrix » 20 paź 2009, 18:34

czyli do tego kodu co przedstawiłem trzeba dopisać jedną linię i kod będzie wyglądał tak:

Kod: Zaznacz cały

'sterownik bramy na tiny 2313 
$regfile = "2313def.dat"

$crystal = 1000000
 
spot Alias portb.0                 'silnik prawy otwiera 
spza Alias portb.1                 'silnik prawy zamykla 
cpot Alias pinb.2                  'wejscie czujka prawa otwarta brama 
cpza Alias pinb.3                  'wejscie czujka prawa zamknieta brama 
slot Alias portb.4                 'silnik lewy otwiera 
slza Alias portb.5                 'silnik lewy zamyka 
clot Alias pinb.6                  'wejscie czujka prawa otwarta brama 
clza Alias pinb.7                  'wejscie czujka prawa zamknieta brama 
licznik alias pind.0 
czujnik alias pind.1

Wojtek
Moderator
Posty: 2606
Rejestracja: 04 sie 2002, 19:00
Lokalizacja: --
Kontakt:

Post autor: Wojtek » 20 paź 2009, 19:37

matrix pisze:$regfile = "2313def.dat"

$crystal = 1000000
tego nie musisz pisać wystarczy że w opcjach kompilatora ustawisz, częstotliwość w zakładce "Komunikacja" a procek w zakładce "chip" - informacje te wpisują się do pliku z twoj_projekt.cfg. Niemniej dobrze nabrać nawyk wpisywania tych dyrektyw, czytając kod programu wiadomo jakiego procka dotyczy i jaka częstotliwość jest , wpisanie tych wartości do kodu programu powoduje zastapienie przez nie wpisów w pliku *.cfg. Jak wpiszesz sobie w wyszukiwarce pomocy hasła $regfile i $crystal to znajdziesz tam ładne wyjaśnienie twojego pytania.

ODPOWIEDZ