| Author |
Message
|
stefekz Poziom 6

Joined: 26 Oct 2009 Posts: 17
|
#1
30 Jul 2010 19:41 Atmega8535 Płytka testowa |
|
|
|
Witam!
Postanowiłem zabrać się za naukę praktycznej elektroniki i po przeczytaniu kilku tematów zakupiłem ww. procesor, podstawkę precyzyjną, płytkę stykową, płytkę uniwersalną PDU-23, oporniki, kondensatory,mikroswitche oraz diody led. Jestem już posiadaczem programatora pod usb.
Wymyślilem sobie coś takiego:
Na płytce uniwersalnej mam jedynie sam procesor z wyprowadzonymi na goldpiny portami, cała reszta będzie montowana na płytce stykowej(w razie czego szybkie poprawki). Chciałbym się dowiedzieć czy przystosowanie tego schematu:
będzie dobre? Na schemacie są również zaznaczone węzły,np. +5V z RST ze złącza ISP. Próbuję znaleźć jak to wygląda na żywo,ale niestety nie jestem w stanie.Czy jeśli procesor zasilam za pomocą portu USB, to +5V == VCC z gniazda ISP?
Czy wszystkie 5 pinow GND musi byc połączone jakoś - procesor ma tylko 2GND?
Co prawda studiuje elektronikę, jednak do tej pory miałem do czynienia z prostymi obwodami, w których wszystkie połączenia były na schematach narysowane.
Proszę o pomoc i wyrozumiałość
Pozdrawiam
stefek
[Przypominam, że na forum stosujemy polską czcionkę. Zdjęcia należy wstawiać poprzez "Dodaj obrazek". Proszę poprawić post. Regulamin, punkt 15. Mariusz Ch.]
|
|
| Back to top |
|
 |
technics6 Poziom 22

Joined: 19 May 2007 Posts: 2274 Location: Białystok
|
#2
31 Jul 2010 10:24 Re: Atmega8535 Płytka testowa |
|
|
|
Może to będzie pomocne, to schemat produkowanego masowo zestawu uruchomieniowego:
http://and-tech.pl/EvB4.3/schemat_v4.png
Co prawda to atmega16/32 ale zasada jest ta sama.
Dodano po 54 [sekundy]:
Wszystkie piny, które są oznaczone GND powinny być podłączone ze sobą.
|
|
| Back to top |
|
 |
Google

|
#
31 Jul 2010 10:24 |
|
|
|
|
|
| Back to top |
|
 |
stefekz Poziom 6

Joined: 26 Oct 2009 Posts: 17
|
#3
04 Aug 2010 09:39 Re: Atmega8535 Płytka testowa |
|
|
|
Dolutowałem wyprowadzenie masy i portu PA7, żeby testowo sprawdzić zachowanie diody, którą podłączyłem wg schematu:
Czerwony kabelek do PC7, czarny do GND.
Napisałem taki program:
Kod:
| Code: |
#include <avr/io.h>
int main(void)
{
DDRA = 0x80;
PORTA = 0x80;
while(1)
{
}
return 0;
}
|
Programik ten powinien zapalić diodę, zgadza się? Po podłączeniu kabelków nic się jednak nie dzieje . Używam AVR Studio. Klikam tam Tools->program->auto connect ->auto->program flash. Pojawiają się same OK. Co może być nie tak? Dziwne jest też to, że jak podłączam kabelki bezpośrednio do kabla isp, to dioda nie chce się zapalić.
W avr studio zmieniłem częstotliwość oscylatora z 1MHz na 8MHz
|
|
| Back to top |
|
 |
technics6 Poziom 22

Joined: 19 May 2007 Posts: 2274 Location: Białystok
|
#4
04 Aug 2010 11:58 Re: Atmega8535 Płytka testowa |
|
|
|
Podłączyłeś do portu C, a w kodzie masz port A...
Dodano po 1 [minuty]:
Gratuluję. Zrobiłeś błąd w programie, który ma mniej niż 10 linijek :D
|
|
| Back to top |
|
 |
Google

|
#
04 Aug 2010 11:58 |
|
|
|
|
|
| Back to top |
|
 |
stefekz Poziom 6

Joined: 26 Oct 2009 Posts: 17
|
#5
04 Aug 2010 12:23 Re: Atmega8535 Płytka testowa |
|
|
|
Przepraszam mój błąd. Zlutowany jest oczywiście PA7, więc program też działa. Winowajcą okazał się kabelek masy, który nie zawsze łączy. Jednak taki program:
| Code: |
#define F_CPU 8000000L
#include <avr/io.h>
#include <util/delay.h>
int main(){
DDRA = 0x80;
for(;;){
PORTA = 0x80;
_delay_ms(200);
PORTA = 0;
_delay_ms(200);
}
return 0;
}
|
nie powoduje żadnej reakcji. Dioda tym razem nawet się nie świeci.
|
|
| Back to top |
|
 |
technics6 Poziom 22

Joined: 19 May 2007 Posts: 2274 Location: Białystok
|
#6
04 Aug 2010 15:48 Re: Atmega8535 Płytka testowa |
|
|
|
Powinno działać. Wyświetlają się jakieś "warningi" przy kompilacji?
|
|
| Back to top |
|
 |
gustaw66 Poziom 14

Joined: 28 Nov 2003 Posts: 172 Location: Mazury
|
#7
04 Aug 2010 19:10 Re: Atmega8535 Płytka testowa |
|
|
|
Ten kurs powinien być Ci pomocny.
Świetnie wytłumaczone programowo i sprzętowo.
Link
|
|
| Back to top |
|
 |
stefekz Poziom 6

Joined: 26 Oct 2009 Posts: 17
|
#8
11 Aug 2010 10:17 Re: Atmega8535 Płytka testowa |
|
|
|
Problemem okazała się odznaczona opcja "erase before flash". Teraz prawie wszystko gra. Diody połączone były w szereg z rezystorami 390. Po pewnym czasie jedna prawdopodobnie się "wypaliła". Po sprawdzeniu multimetrem wyszło,że płynie prąd ponad 40mA. Z tego co udało mi się wyczytać, obciążalność portu atmegi jest ok.20mA, więc 2x mniej.Zmieniłem rezystor na 1k. W obu przypadkach napięcie na diodzie wynosi 1,95V, na rezystorach(390 i 1k) jest ok 0.01V. Napięcie między nieobciążonym portem, a masą wynosi 4,05V. Gdzie się "podziewa" w takim razie 2,10V?
Co prawda ja dopiero zaczynam "zabawę" z elektroniką, ale wydaje mi się, że coś tu chyba jest nie tak.
|
|
| Back to top |
|
 |
vonar Poziom 11

Joined: 22 Jun 2010 Posts: 71 Location: ~
|
#9
12 Aug 2010 22:31 Re: Atmega8535 Płytka testowa |
|
|
|
No, na pewno jest coś nie tak ;)
| stefekz wrote: |
| Po sprawdzeniu multimetrem wyszło,że płynie prąd ponad 40mA [...]. Zmieniłem rezystor na 1k. W obu przypadkach napięcie na diodzie wynosi 1,95V, na rezystorach(390 i 1k) jest ok 0.01V. |
Sprawdzałeś, czy rezystory nie mają zwarcia? Niemożliwe, by przy przepływie 40mA na rezystorze 390Ω czy 1k odłożyło się tylko 10mV...
|
|
| Back to top |
|
 |
Google

|
#
12 Aug 2010 22:31 |
|
|
|
|
|
| Back to top |
|
 |
stefekz Poziom 6

Joined: 26 Oct 2009 Posts: 17
|
#10
16 Aug 2010 17:54 Re: Atmega8535 Płytka testowa |
|
|
|
Zgadza się, było zwarcie, którego nie zauważyłem(płytka stykowa). Teraz pojawiły mi się problemy z programowaniem kontrolera. Gdy próbuję zrobić cokolwiek w avr-studio pojawia mi się coś takiego:
Gdy odpaliłem ISP Programmer, to wszystkie fuse bity są ustawione na 1. Jak chcę zmienić je na 0 i potem klikam "Program" to wracają spowrotem na 1. Co się dzieje i jak to naprawić?
EDIT:
Próba zaprogramowania przy użyciu avr-dude w trybie HID spod Linuksa wygląda tak:
| Code: |
[root@stefek-laptop stefek]# avrdude -c stk500v2 -p m8535 -U flash:w:first.hex -P avrdoper
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.
[root@stefek-laptop stefek]# avrdude -c stk500v2 -p m8535 -U flash:w:first.hex -P avrdoper -F
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_program_enable(): cannot get connection status
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATMEGA8535 is 1E 93 08
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude done. Thank you.
|
Jako zwykły user dostaję coś takiego:
| Code: |
Warning: cannot query manufacturer for device: error sending control message: Operation not permitted
|
|
|
| Back to top |
|
 |