Problem z bascomem

Jesli jesteś początkującym elektronikiem, to tu z pewnością znajdziesz pomoc. Miejsce dobre do dyskusji nad podstawami elektroniki w zakresie teorii i praktyki.
Spanner
Użytkownik
Posty: 364
Rejestracja: 18 lip 2010, 18:29
Lokalizacja: Bielsko biała

Problem z bascomem

Post autor: Spanner » 01 lip 2011, 11:42

Witam, mam pewien problem. otóż mam płytkę MOŁ, i zachciałem zaprogramować zamiast procka At90S2313 procesor ATtiny2313. Zainstalowałem w tym celu zamiast wesji 1.11.6.8 wersję 1.11.8.1 9 na płytce z bascomem pisze że to wersja dla ATtiny2313. Napisałem dla testu banalny program :

Kod: Zaznacz cały

$regfile = "2313def.dat"
$crystal = 4000000
 Config Portb = &b11111111
 Config Portd = &b1111100
 Portb = &b00000000
 Portd = &b1110111

Do
If Pind.0 = 0 Then
Portb.7 = 0
If Pind.1 = 0 Then
Portb.7 = 1
End If
End If
Loop
End
Oczywiście wybrałem również w zakładce compiler procesor ATtiny2313.
Program daje się skompilować jednak przy próbie wgrania pojawia się błąd

Kod: Zaznacz cały

Selected chip and target chip do not match ATtiny2313 <> At90s2313 
po czym pojawia się takie okno Sample Electronics AVR Programmer i mam otwartą zakładkę FlashROM ( chciałbym dać screena ale mam coś popękany kabel od neta i baaaardzo słabo idzie i nie mogę zuploadować)
I teraz nie wiem co robić.
Dla informacji procek pracuje z kwarcem 4 MHz

Proszę mi napisać co począć w tej sytuacji bym mógł zaprogramować wreszcie tego proca.
pozdrawiam
spanner

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

Post autor: matrix » 01 lip 2011, 14:56

Prawdopodobnie masz źle połączony programator z płytką lub programator z kompem. Jeśli dobrze pamiętam, to przy tym komunikacie jest brak połączenia urządzeń i Twój chip nie jest widziany.

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 01 lip 2011, 15:00

Okienko które wyskoczyło świadczy o tym, że programator poprawnie połączył się z prockiem i odczytał jego sygnaturę, oraz że jest różnica między procesorem dla którego program był kompilowany a tym do którego próbujesz wgrywać.
Jeden z nich jest ATtiny2313, drugi At90s2313.
Nie wiem który jest który, ale jeśli jesteś pewien że masz w podstawce ATtiny2313 to pewnie kompilowałeś program dla AT90s2313.

Definicja 2313 może się odnosić do jednego z powyższych procesorów. Nie mam bascoma pod ręką, ale z tego co pamiętam to definicja 2313 odnosi się do starszego 90s2313, dla nowszego tiny2313 trzeba ją zmienić.

Jeśli wybrałeś właściwy procesor w zakładkach to możesz wywalić jego definicję z programu. Wpisanie jej do programu zastępuje to co wybrałeś w opcjach.

Ewentualnie możesz na siłę wgrywać program od 90s2313 do tiny2313. Teoretyczne te procesory są kompatybilne, więc powinno działać.

Kwarcu 4Mhz nie bądź taki pewien. Jeśli nie bawiłeś się jeszcze FuseBitami, to nie baw się i przyjmij że procek jest taktowany zegarem 1Mhz niezależnie od kwarcu czy jego braku.
Można to zmienić, ale jeśli nie przeczytasz (ze zrozumieniem) instrukcji (noty katalogowej) to masz duże szanse zrobić gorzej jak lepiej.

Spanner
Użytkownik
Posty: 364
Rejestracja: 18 lip 2010, 18:29
Lokalizacja: Bielsko biała

Post autor: Spanner » 01 lip 2011, 15:43

Tak tylko że na płytce MOŁ jest już zainstalowany kwarc 4MHz, więc chyba muszę wybrać w opcji comunication wartość 4000000. zastanawiam się jak może nie działać. Fusebitami się nie bawiłem, ale przecież powiadomiłem kompilator o częstotliwości z jaka ma pracować procek.

Rzeczywiście trochę się pomyliłem bo definicja ma być dla attiny2313 a nie dla at90s2313, jednak po poprawieniu dalej nie działa, tym razem już bezpośrednio się otwiera to okienko Sample [...] programmer

pozdrawiam

keruseykaryu

Post autor: keruseykaryu » 01 lip 2011, 17:07

Spanner pisze:

Kod: Zaznacz cały

  $regfile = "2313def.dat" 
  $crystal = 4000000 
Oczywiście wybrałem również w zakładce compiler procesor ATtiny2313.
Się zdecyduj który procesor bo dalej masz ustawiony At90S2313. $regfile jest ważniejsze niż to co tam gdzieś sobie poklikasz.
Spanner pisze:ale przecież powiadomiłem kompilator o częstotliwości z jaka ma pracować procek.
I kompilator o tym wie, ale czy procesor o tym wie?
Ostatnio zmieniony 01 lip 2011, 17:09 przez keruseykaryu, łącznie zmieniany 1 raz.

Spanner
Użytkownik
Posty: 364
Rejestracja: 18 lip 2010, 18:29
Lokalizacja: Bielsko biała

Post autor: Spanner » 01 lip 2011, 17:14

Tak masz rację pomyliłem się z tą dyrektywą.
Co powinienem po kolei zrobić by procesor działał przy kwarcu 4 MHz?

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

Post autor: matrix » 01 lip 2011, 17:26

Nie wziąłem pod uwagę dyrektywy jaką wypisał na początku nas zkolega. Właściwa dyrektywa dla tiny2313 to:

Kod: Zaznacz cały

$regfile = "Attiny2313.dat"
żeby układ bujnąć na kwarcu 4MHz to przede wszystkim trzeba ustawić fusy.

Spanner
Użytkownik
Posty: 364
Rejestracja: 18 lip 2010, 18:29
Lokalizacja: Bielsko biała

Post autor: Spanner » 01 lip 2011, 18:13

Tylko jak to robić? :o
Prosiłbym o dokładny instruktaż bo mam tylko jeden proc i nie chcę go zablokować.

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 01 lip 2011, 20:34

Procek chodzi na 1Mhz i nie ruszaj tego, za to napisz w programie że masz kwarc 1Mhz i będzie dobrze.

Rzeczywiście trochę się pomyliłem bo definicja ma być dla attiny2313 a nie dla at90s2313, jednak po poprawieniu dalej nie działa, tym razem już bezpośrednio się otwiera to okienko Sample [...] programmer
Na razie zmieniłeś definicję i piszesz że programator się nie otwiera.
Nie wiem co namieszałeś, ale okno programatora zawsze się powinien otworzyć. Jak nie masz podłączonego układu to wyświetli komunikat że nie zidentyfikował układu i tez się uruchomi.
Kompilowałeś program po zmianie tego wpisu i poszło bez błędów?

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 01 lip 2011, 21:41

jeśli chciałeś zrobić zapalanie na jednym przycisku i gaszenie na drugim to jest to źle
tak czy tak.
Bo trzeba by trzymać pierwszy przycisk i dopiero naciskając wtedy drugi przycisk zapali się dioda a przy puszeniu od razu z gaśnie

Kod: Zaznacz cały

$prog &HFF , &HEE , &HD9 , &HFF                             ' generated. Take care that the chip supports all fuse bytes.
$regfile = "attiny2313.dat"
$Crystal=4000000
$hwstack=40
$swstack=16
$framesize=32


 Config Portb = &B11111111                                  ' jeden wyjscie
 Config Portd = &B1111100                                   'zero wejscie
 Portb = &B00000000                                         'stan spoczynku
 Portd = &B1110111                                          'pull

Do
If Pind.0 = 0 Then                                          'jelsi pind.0 stan niski
Portb.7 = 0                                                 ' to portb.7 stan niski
If Pind.1 = 0 Then                                          ' jelsi na pierwszym ifie czyli pind.0=0
'i na tym ifie stan niski to
Portb.7 = 1                                                 'to stan wysoki na portb.7
End If
End If
Loop
End
A żeby rozwiać twoje wątpliwości co do fusów
masz tu gotowca

Kod: Zaznacz cały

$prog &HFF , &HEE , &HD9 , &HFF                             ' generated. Take care that the chip supports all fuse bytes.
Wklej i ma działać z zewnętrznym kwarcem !

Najlepiej prze klej cały ten kod i nie zmieniaj na razie tego nagłówka. Do momentu aż zatrybisz fusy

Aha mam nadziej że masz zewnętrzny kwarc bo jak nie to dupa zbita :)

Spanner
Użytkownik
Posty: 364
Rejestracja: 18 lip 2010, 18:29
Lokalizacja: Bielsko biała

Post autor: Spanner » 02 lip 2011, 10:51

Witam
Kwarc jest oczywiście na płytce MOŁ, bo jakby go nie było to papa procesorku (mam rację?)

Niestety przy próbie wgrania wyświetla się nadal to okno:

Obrazek

Nie wiem co z tym zrobić, proszę o dalsze wskazówki i dzięki Pikczu za gotowca bo znając moje szczęście to z najdokładniejszym instruktażem pewnie bym proca bloknął.

Pozdrawiam
Spanner

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 02 lip 2011, 11:09

Bo musisz w tym oknie przejść do zakładki Lock and Fuse Bits

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 02 lip 2011, 11:17

Nie niestety tylko już prawie jesteś w domu.
jak wyskoczy to okno to naciśnij czwartą ikonkę czyli tą kratkę z czerwoną strzałką skierowaną w stronę scalaka. Dokładnie pod napisem chip.

Hm tak się zastanawiam jaki masz programator ?
Bo w zakładce widzę że masz ustawione "sample electronic avr programer ..." czy jakoś tak .

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 02 lip 2011, 11:18

kayron, W sumie już nie musi bo ma dodane do kodu ustawienia fusów.

Spanner
Użytkownik
Posty: 364
Rejestracja: 18 lip 2010, 18:29
Lokalizacja: Bielsko biała

Post autor: Spanner » 02 lip 2011, 11:43

Programator to w sumie kabelek, z rezystorkami, ale zaopatrzę się w stk 200/500
Dziękuje za pomoc już wszystko działa jak powinno.
mam pytanie, czy teraz przy każdym programowaniu muszę przepisać ten kod od fusebitów, i te polecenia od stosu, czy juz są zapisane?

ODPOWIEDZ