Problem z Atmega8a-au, USBasp, RFID

Masz problem, z którym nie możesz sobie poradzić? Pisz śmiało!
ODPOWIEDZ
kalafior
Młodszy majsterkowicz
Posty: 16
Rejestracja: 7 cze 2012, 13:35

Problem z Atmega8a-au, USBasp, RFID

Post autor: kalafior » 21 cze 2013, 20:16

Witam wszystkich, jestem początkujący w temacie mikroprocesorów. Zamówiłem sobie:

- moduł ATmega8 microBOARD m8

msx.cal24.pl/allegro/mb_m8/7.jpg

- programator USBasp

msx.cal24.pl/elementy/usbasp_bialy/usbasp_przod.jpg

- czytnik RFID

nettigo.pl/products/48

Podłączyłem programator kablem z płytką. Wgrałem sterowniki USBasp. Do płytki RFID podłączyłem antenę, RX na ATmega (D0) z TX na czytniku, zasilanie i masę. Połączenia wg mnie są OK.

Problem mam z zaprogramowaniem. Nie mogę, albo nie potrafię się połączyć z żadnym kompilatorem typu: WinAVR, Arduino IDE (nie da się wybrać serial port). Czy ktoś może mi powiedzieć, czy potrzebny jest mi ten bootloader skoro mam już programator? Jakim programem programować ten układ. Nie mogę też znaleźć jakiegoś łatwego monitora który by mi pokazywał czy te układy działają.

Proszę o pomoc. Pozdrawiam.

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


kalafior
Młodszy majsterkowicz
Posty: 16
Rejestracja: 7 cze 2012, 13:35

Re: Problem z Atmega8a-au, USBasp, RFID

Post autor: kalafior » 22 cze 2013, 17:35

tl; dr; Jaki program podobny do Serial Monitora z arduino działa z USBasp?

Układ zaprogramowałem, przykładam każdą kartę rfid i dioda świeci. Chciałbym zrobić świecenie tylko dla konkretnej karty ale muszę wiedzieć jaki token ma karta RFID. W przypadku arduino można odczytać taki token Serial Monitorem, a w przypadku USBasp?
pentos
Majsterkowicz
Posty: 119
Rejestracja: 2 sty 2013, 21:35

Re: Problem z Atmega8a-au, USBasp, RFID

Post autor: pentos » 22 cze 2013, 21:11

http://allegro.pl/konwerter-usb-rs232-t ... 30006.html interesują Cię piny rxd i txd w atmedze
kalafior
Młodszy majsterkowicz
Posty: 16
Rejestracja: 7 cze 2012, 13:35

Re: Problem z Atmega8a-au, USBasp, RFID

Post autor: kalafior » 22 cze 2013, 21:32

Trochę nie po drodze mi kupować kolejny element który użyję tylko raz. Nie ma innego sposobu na odczytanie tego tokena z karty rfid?
Awatar użytkownika
rafalzaq
Majsterkowicz
Posty: 180
Rejestracja: 2 maja 2013, 23:57

Re: Problem z Atmega8a-au, USBasp, RFID

Post autor: rafalzaq » 22 cze 2013, 22:27

Jak już zdecydujesz się na kupno czegoś takiego to polecam brać z ebaya (np. to http://www.ebay.com/itm/USB-RS232-TTL-P ... 5d38db1ccb ). Może idzie miesiąc, ale jest zdecydowanie taniej.
Awatar użytkownika
Maxik
Starszy majsterkowicz
Posty: 405
Rejestracja: 6 lip 2012, 18:27
Lokalizacja: Gdańsk
Kontakt:

Re: Problem z Atmega8a-au, USBasp, RFID

Post autor: Maxik » 22 cze 2013, 23:31

USBasp nie jest konwerterem USB <-> Serial, więc bez zewnętrznego urządzenia nie da rady. Moduły które kupiłeś, w przeciwieństwie do Arduino, nie mają tego elementu. Zamiast kupować konwerter możesz też kupić na eBayu klona Arduino Uno lub nawet Duemilanove. Na pewno użyjesz je więcej niż raz, a możesz wykorzystać jako konwerter lub płytkę prototypową. Kosztują koło 40zł z darmową przesyłką.
kalafior
Młodszy majsterkowicz
Posty: 16
Rejestracja: 7 cze 2012, 13:35

Re: Problem z Atmega8a-au, USBasp, RFID

Post autor: kalafior » 23 cze 2013, 01:01

Potrzebuje zrobić to bez tego układu, bo mam zbyt mało czasu i nie dam rady poczekać na przesyłkę.

W internecie znalazłem taki sposób przeliczania (zaczyna się od zdjęcia karty):
elektroda.pl/rtvforum/topic2482236.html

Obliczyłem i dla mojej karty 0002653532 040,32092 wyszło mi 2C00287D5C. Tylko gdy podstawiam w kodzie, żeby dioda nie reagowała gdy natrafi na taki token to i tak się zapala. Da radę to tak obliczyć?
kalafior
Młodszy majsterkowicz
Posty: 16
Rejestracja: 7 cze 2012, 13:35

Re: Problem z Atmega8a-au, USBasp, RFID

Post autor: kalafior » 23 cze 2013, 03:36

Pomyślałem, że może da rade zapisać ten token do pamięci EEPROM a potem odczytać na kompie przez programator.

Część kodu która mi to zapisała:
ramka2=USART_Receive();
eeprom_write_block (&ax, &E_ax, ramka2);
Zawartość EEPROM po wykonaniu:
:200000000000000003000000000000000000E70000000000000060BB64BF6F2FA57FB2192B
:20002000DADDFFDAE4CF7FFBBD662B5F65FEFF77FF2DDDE6FF7B7BFD71CEED7B7D6F76D3C0
:20004000F37EE9AF6DF215AF70BBB793FDE9CE0E7FFDEAAFFAF76BD7FD3DC9DA5699F7DF53
:2000600057AFFFFF9CFFFC2FED16F3FDBDF2D36F07FFBEEF4DDF0BFF7EB3F564DFFB9D9D4B
:20008000FBB6AB6FBFE7FF7CE3E3F5FF7EFC7EDFE6E1FBCCEE6FAFFF76523DDF7617BF53C7
:2000A000E6FBBDEEEDFE9BF30ADEBDED7F57EBC9EE6666BF741FFAFF7E43E65BCCF82E1511
:2000C0009AF7F05FBF8FF6FEF73DFDBF6CA6A03FDBB95F7F7DCDFFF5FDCFF3A73FE7963F0C
:2000E000D3AB6F3352FE7AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F
:20010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
:20012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
:20014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF
:20016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F
:20018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F
:2001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F
:2001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F
:2001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F
:00000001FF
I dalej nie mam pomysłu co z tym zrobić. Może ktoś coś wymyśli, na teraz odpadam.
kalafior
Młodszy majsterkowicz
Posty: 16
Rejestracja: 7 cze 2012, 13:35

Re: Problem z Atmega8a-au, USBasp, RFID

Post autor: kalafior » 25 cze 2013, 19:10

Załatwiłem konwerter, czytałem id kart i breloków.

Kod: Zaznacz cały

03002A7DC094 karta 42
0300287D5C0A karta 40
05007E09196B niebieski
0700437E506A zolty
05003E2BFAEA czerwony
Mój kod wygląda tak:
char c;
String msg;
int led = 4;

void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
}

void loop() {
while(Serial.available()>0){
c=Serial.read();
msg += c;
}

if (msg.length() > 10) {
msg = msg.substring(1,13);

if (msg == "05007E09196B") {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
}

msg = "";
}
delay(300);
}
Podstawiony brelok niebieski.. no i nie działa. Wykonuje się miganie diody z else.. Pomocy.
Awatar użytkownika
Marhef
Złota rączka
Posty: 1260
Rejestracja: 18 lis 2011, 02:18

Re: Problem z Atmega8a-au, USBasp, RFID

Post autor: Marhef » 25 cze 2013, 21:36

Nie podałeś za małej wartości przy porównaniu msg.length?
kalafior
Młodszy majsterkowicz
Posty: 16
Rejestracja: 7 cze 2012, 13:35

Re: Problem z Atmega8a-au, USBasp, RFID

Post autor: kalafior » 25 cze 2013, 21:49

Ale jeśli dobrze rozumiem kod, to jeśli długość msg jest większa od 10 to przechodzi dalej. Następnie skraca ciąg do 12 liczb i porównuje z moim kodem. Jak podstawiałem w ifie msg.length = 12, to dioda się zapalała, więc ciąg msg ma napewno 12 znaków. Problem z tym, że nie pasuje do tego id które ja podaje.
Awatar użytkownika
Marhef
Złota rączka
Posty: 1260
Rejestracja: 18 lis 2011, 02:18

Re: Problem z Atmega8a-au, USBasp, RFID

Post autor: Marhef » 26 cze 2013, 00:50

Hmm, "skraca" do 13? Od znaku pierwszego do trzynastego?
kalafior
Młodszy majsterkowicz
Posty: 16
Rejestracja: 7 cze 2012, 13:35

Re: Problem z Atmega8a-au, USBasp, RFID

Post autor: kalafior » 26 cze 2013, 01:28

Masz racje, od znaku 1 do 13, wiec ciag powinien miec 13.. lecz ma 12 bo sprawdziłem. Jeśli wpisze substring(1,12) to ciag ma już 11.

Próbowałem podpiąć się pod pin tx na płytce konwerterem rs232<>USB a do kodu dodałem Serial.println(msg); co w Serial Monitorze powinno mi wg mnie wyświetlić ciag jaki chce porównać. Mimo tego otrzymuje jakieś krzaki. Coś z kodowaniem czy jak? W zwykłym arduino chyba nie ma takich problemów?
Awatar użytkownika
Maxik
Starszy majsterkowicz
Posty: 405
Rejestracja: 6 lip 2012, 18:27
Lokalizacja: Gdańsk
Kontakt:

Re: Problem z Atmega8a-au, USBasp, RFID

Post autor: Maxik » 26 cze 2013, 15:40

W programowaniu liczy się od 0. Spróbuj podać 0, a nie 1 jako pierwszy argument funkcji substring.
kalafior
Młodszy majsterkowicz
Posty: 16
Rejestracja: 7 cze 2012, 13:35

Re: Problem z Atmega8a-au, USBasp, RFID

Post autor: kalafior » 27 cze 2013, 12:05

Nie od dziś programuje, wiem, że liczy się od 0. Kod jest napisany przez Kubofonista we wpisie o szafce zamykanej na RFID. Jemu i innym to działa.. a u mnie nie.

Jak za pomocą konwertera RS232<>USB mogę wyświetlić w Serial Monitorze co jest pod zmienną msg?

Do kodu wpisuje "Serial.println(msg)" Podłączam do mojej ATmegi8 do pinu TX pin RX z konwertera i wyświetla mi krzaki. O co chodzi?
kalafior
Młodszy majsterkowicz
Posty: 16
Rejestracja: 7 cze 2012, 13:35

Re: Problem z Atmega8a-au, USBasp, RFID

Post autor: kalafior » 27 cze 2013, 13:43

Okazało się, że wgrałem bootloader dla układu taktującego 8MHz. Zmieniłem a taktowane na 12MHz i działa.
ODPOWIEDZ

Strony partnerskie: