Strona Główna
FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy RegulaminRegulamin  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj




H-bridge!

Przyszłość jest w naszych rękach...
...bo przyszłość to robotyka.





Poprzedni temat «» Następny temat
Przesunięty przez: daniel93
25 Cze 08 01:29
Linux, avr, kwarc, zewnętrzna pamięć
Autor Wiadomość
Turboasm 


Posty: 16
Skąd: Kleczew
Wysłany: 30 Lip 07 10:46   Linux, avr, kwarc, zewnętrzna pamięć

Mam kilka pytań na które nie znalazłem jeszcze odpowiedzi a dokładnie: ( język C )
1. Co muszę zainstalowac aby móc kompilować programy dla avr pod linuksem ??
2. Pod które piny muszę podłączyć kwarc i czemu akurat pod te.
3. Czy w programie muszę coś więcej podawać oprócz
Kod:
#define F_CPU  <częstotliwość>L
??
4. Czy zewnętrzną pamięć EEPROM mogę podłączyć pod obojętnie które piny czy są jakieś specjalne i jak
zapisać dane do tej pamięci ??
Postaw piwo autorowi tego posta
 
 
 
Decado 



Pomógł: 6 razy
Posty: 160
Otrzymał 6 piw(a)
Skąd: Bełk
Wysłany: 30 Lip 07 11:16   

1Niemam linuxa....
2Każdy procek ma dwa piny oznaczone XTAL1 oraz XTAL2 do tych właśnie pinów podłącza się kwarc z kondensatorami 33pF
3Programowanie to nie tylko podanie jednej instrukcji.... ....żeby powstał program trzeba całego szeregu instrukcji które program przekompiluje i wyśle do uC
4Jeszcze nie wiem :D

Pozdrawiam
_________________
"Niema ludzi niewinnych, są tylko źle przesłuchiwani" Feliks "Krwawy Feliks" Dzierżyński
Postaw piwo autorowi tego posta
 
 
 
Turboasm 


Posty: 16
Skąd: Kleczew
Wysłany: 30 Lip 07 11:18   

co do pytania 3 to chodziło mi o to czy coś jeszcze oprócz tego zapisu potrzeba żeby kożystać z dołączonego kwarcu ( z jego częstotliwości )
Postaw piwo autorowi tego posta
 
 
 
abxyz 
Expert programowanie


Pomógł: 18 razy
Posty: 166
Otrzymał 28 piw(a)
Skąd: zza winkla
Wysłany: 30 Lip 07 12:30   Re: Linux, avr, kwarc, zewnętrzna pamięć

Turboasm napisał/a:
Co muszę zainstalowac aby móc kompilować programy dla avr pod linuksem ??

W internecie jest wiele na ten temat, np:
http://paul.graysonfamily.org/thoughts/avrlinux/
Turboasm napisał/a:
co do pytania 3 to chodziło mi o to czy coś jeszcze oprócz tego zapisu potrzeba żeby kożystać z dołączonego kwarcu ( z jego częstotliwości )

Trzeba przeprogramować (z poziomu programatora) odpowiednie tzw. fuse bity (patrz dokumentacja uC) , nowe Atmega i Attiny pracują z wewnętrznym oscylatorem o częstotliwości 1MHz.
Postaw piwo autorowi tego posta
 
 
Turboasm 


Posty: 16
Skąd: Kleczew
Wysłany: 30 Lip 07 01:01   

ale jak mam przeprogramować fuse bity kożystając z najprostrzego z możliwych programatorów ??
Postaw piwo autorowi tego posta
 
 
 
abxyz 
Expert programowanie


Pomógł: 18 razy
Posty: 166
Otrzymał 28 piw(a)
Skąd: zza winkla
Wysłany: 30 Lip 07 03:08   

Korzystając z jakiegoś wygodnego programu....
Podaj który to AVR i jaka jest częstotliwość dołączonego kwarcu, to ja napisze jak i co
_________________
Nie powie ci nawet wiedźma Pleple, czego się dowiesz wprost z Google_
Postaw piwo autorowi tego posta
 
 
Turboasm 


Posty: 16
Skąd: Kleczew
Wysłany: 30 Lip 07 03:52   

ATMega8 z kwarcem zegarkowym 32 768 Hz
Postaw piwo autorowi tego posta
 
 
 
abxyz 
Expert programowanie


Pomógł: 18 razy
Posty: 166
Otrzymał 28 piw(a)
Skąd: zza winkla
Wysłany: 31 Lip 07 01:29   

1. Należy przyłączyć kwarc jak na rysunku poniżej



2. Pobrać z internetu program do obsługi programatora np. "TwinAVR" (wydał mi się najwygodniejszy)
http://www.rowalt.de/mc/avr/avrtools/twinavr.zip

Program nie posiada instalatora. Jeśli używasz win9x lub ME wystarczy rozpakować plik twinavr.zip , natomiast jeśli działasz na Win2000/XP należy dodatkowo zamontować i uruchomić sterownik dający dostęp programowi do portu drukarki. Pliki sterownika znajdują się w podkatalogu "NtDriver". Trzeba skopiować plik "UserPort.sys" do windir\system32\drivers (windir - katalog gdzie zamontowano windows), a następnie uruchomić program "UserPort.exe". Pojawi się okienko dialogowe jak poniżej, w którym należy wcisnąć przycisk "Start'



3. Uruchomić program "twinavr.exe", przy pierwszym uruchomieniu TwinAVR pojawi się okienko "Settings" jak poniżej



W polu "Programmer hardware" zaznaczyć należy opcje "Kanda dongle" ( dla STK200),
a w polu LPT - użyty port drukarki (z przyłączonym programatorem).
Następnie klik w przycisk "OK" i okienko "Settings" znika, pozostaje widoczne główne okienko programu jak na obrazku poniżej.



W polu AVR clock proponuje wpisać wartość 16, wartość ta decyduje z jaką prędkością programator komunikuje się z uC.

W okienku programu poniżej pola "AVR clock" widać cztery przyciski: "Write", "Read", "Erase" i "Config", celem przeprogramowania fuse bitów AVRa należy kliknąć przycisk "Config", pojawi się w tedy okienko "Chip configuration", jak na poniższym obrazku.



Żeby ATmega8 działał z zewnętrznym kwarcem zegarkowym 32 768 Hz należy
ustawić"

CKSEL 1001
CKOPT 0

ma być "DOKŁADNIE TAK" jak na poniższym obrazku.



Przycisk "Write" i gotowe.

Jeśli w tym momencie pojawi okienko "Error", nie należy się tym przejmować, trzeba zamknąć okienko "Settings" i otworzyć ponownie klikając w przycisk "Config", powinny pokazać się wtedy oczekiwane ustawienia.

Uwaga! przy konfigurowaniu fuse bitów można przez pomyłkę zablokować możliwość programowania uC programatorem szeregowym.

By sprawdzić, czy faktycznie uC działa z częstotliowścią 32768Hz, można zaprogramować AVR-a
programem z migającą diodą LED.

Kod:
#define F_CPU 32768L        /* Częstotliwość kwarcu */
#include <avr/io.h>
#include <util/delay.h>               

int main(void)
{
    DDRD |= _BV(1);
    unsigned char i;

    for (;;)
    {                               
    PORTD ^=_BV(1);           
         for (i = 0; i < 50; i++)
                             _delay_ms(10);           
   }
   return 0;
}
Postaw piwo autorowi tego posta
 
 
Turboasm 


Posty: 16
Skąd: Kleczew
Wysłany: 31 Lip 07 07:34   

Czy dla każdego kwarcy będą takie same ustawienia fuse bit ( jeżeli nie to gdzie je znaleźć ?)??
Jak zaprogramować fuse bit w linuksie ??
Postaw piwo autorowi tego posta
 
 
 
abxyz 
Expert programowanie


Pomógł: 18 razy
Posty: 166
Otrzymał 28 piw(a)
Skąd: zza winkla
Wysłany: 01 Sie 07 04:27   

Turboasm napisał/a:
Czy dla każdego kwarcy będą takie same ustawienia fuse bit ( jeżeli nie to gdzie je znaleźć ?)??

Nie, ustawienia różnią się. Po szczegóły najlepiej zajrzeć do dokumentacji ATmega8
http://www.atmel.com/dyn/...nts/doc2486.pdf (od strony 25)

Turboasm napisał/a:
Jak zaprogramować fuse bit w linuksie

Działając w konsoli można posłużyć się programem "uisp" albo "avrdude"
Przykład
Odczyt fuse bitów z nowego ATmega8 (wewnętrzny oscylator 1MHz)
Kod:
uisp -dprog=stk200 -dlpt='/dev/parport1' -dpart=atmega8 --rd_fuses -dt_sck=60
Atmel AVR ATmega8 is found.

Fuse Low Byte      = 0xe1
Fuse High Byte     = 0xd9
Fuse Extended Byte = 0xff
Calibration Byte   = 0xbf  --  Read Only
Lock Bits          = 0xff

Przeprogramowanie fuse bitów, tak by ATmega8 działał z zewnętrznym kwarcem zegarkowym 32768 Hz

Kod:
uisp -dprog=stk200 -dlpt='/dev/parport1' -dpart=atmega8  -dt_sck=70 --wr_fuse_l=0xe9 --wr_fuse_h=0xc9

Przeprogramowanie fuse bitów na powrót do do stanu początkowego(wewnętrzny oscylator 1MHz)
Kod:
uisp -dprog=stk200 -dlpt='/dev/parport1' -dpart=atmega8  -dt_sck=70 --wr_fuse_l=0xe1 --wr_fuse_h=0xd9

Pomoc do programu, oczywiście
Kod:
uisp -h   

Wartość parametru "-dt_sck" decyduje o szybkości z jaką programator komunikuje się z uC, wartość "70" dobrałem doświadczalnie, by spowolnić programowanie uC tak, żeby programator dostosował się do "powolnego" ATmega8 z zegarem 32768Hz, w innych przypadkach parametr ten można pominąć ( pozostawia wartość domyślną).

Turboasm napisał/a:
Czy zewnętrzną pamięć EEPROM mogę podłączyć pod obojętnie które piny czy są jakieś specjalne i jak zapisać dane do tej pamięci

A jaki jest typ tej pamięci EEPROM ?
Postaw piwo autorowi tego posta
 
 
Turboasm 


Posty: 16
Skąd: Kleczew
Wysłany: 01 Sie 07 06:25   

jeżeli w dokumentacji ATMega8 jest:

chodzi o ustawienia fuse bit dla kwarcu 3-8 MHz. W tym programie dla win w 2 kolumnie Fuse Low bits jeżeli dla 3-8 MHz sa ustawienia 111 dla CKSEL3..1 to w programie musze ustawic CKSEL1:zaznaczyć CKSEL2:zaznaczyć i CKSEL3:zaznaczyć ???

PS. abxyz mógłbyś przesłać mi Makefile na meila ??
Postaw piwo autorowi tego posta
 
 
 
abxyz 
Expert programowanie


Pomógł: 18 razy
Posty: 166
Otrzymał 28 piw(a)
Skąd: zza winkla
Wysłany: 01 Sie 07 11:22   

Proponuje ustawić jak na rysunku poniżej
(rezonator kwarcowy 3.0 .. 8.0 MHz)


Należy też brać pod uwagę informacje z następnej tabeli

Postaw piwo autorowi tego posta
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  


website uptime

Powered by phpBB modified by Przemo © 2003 phpBB Group - mangi
REKLAMAPorównywarka cen elektronikiLove and Lighttaniec z gwiazdamitaniec nowoczesny Warszawakredyt przez internetneroBearShare