Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

CompactFlash + FAT na ATMega128

Piotr78
-
-
Posty: 11
Rejestracja: 16 kwie 2005, o 17:41
Lokalizacja: lubuskie

CompactFlash + FAT na ATMega128

Postautor: Piotr78 » 16 kwie 2005, o 17:44

Witam,

mam pewien problemik z CF (SanDisk32MB) pod kontrola ATMega128,

mianowicie kiedy zaloze partycje na CF z poziomu Windowsa to wyrzuca mi err 20 -> http://members.aon.at/voegel/Help/AVR_D ... System.htm (20 cpSectorSizeNotSupported Only sector size of 512 Bytes is supported)

z kolei po FDISK i FORMAT z poziomu DOS 6 zwraca err 18 cpNoPBR No Partition Sector

skorzystalem z bibliotek zawartych tu -> http://members.aon.at/voegel/

niestety nie wiem jak w koncu zainicjowac to ustrojstwo, czy CF wymaga specjalnego formatowania lub zakladania partycji aby byl widoczny przez M128?

zalezy mi na uruchomieniu tego w BASCOM-ie

dzieki za jakas pomoc i informacje

LucASWw
-
-
Posty: 248
Rejestracja: 23 sie 2003, o 18:26
Lokalizacja: UK

Postautor: LucASWw » 16 kwie 2005, o 20:32

20 cpSectorSizeNotSupported Only sector size of 512 Bytes is supported
err 18 cpNoPBR No Partition Sector

Co wysyła te komunikaty?

Awatar użytkownika
ZbeeGin
-
-
Posty: 170
Rejestracja: 3 kwie 2003, o 10:10
Lokalizacja: Metropolia Katowice

Postautor: ZbeeGin » 16 kwie 2005, o 21:21

Wystarczy tylko utworzyć zwykłą partycję FAT. A Winda widzi tą kartę w czytniku?

Piotr78
-
-
Posty: 11
Rejestracja: 16 kwie 2005, o 17:41
Lokalizacja: lubuskie

Postautor: Piotr78 » 16 kwie 2005, o 21:50

O witam, mailowalem do Pana kolegi jednak cos system pocztowy zwrocil mi przesylke ;)

tzn. dzieje sie tak:

Zakladam partycje na CF z poz. Win, formatuje, jest jedna podstawowa, OS w PC poprawnie wspolpracuje

wynik po usadowieniu CF pod M128:
zwraca kod bledu 20 /Berrorcode = Initfilesystem(1)/

przy inicjacji /Initfilesystem(0)/ takze err 20

test 2:
usuniecie partycji i zalozenie tym razem z DOS 6.0

zwrocony kod bledu = 18 przy /Initfilesystem(1)/
przy /Initfilesystem(0)/ zwraca kod 19 ktory informuje o obsludze jedynie tablic FAT

problem opisalem rowniez na lamach tego -> http://www.elektroda.pl/rtvforum/viewto ... ?p=1409950 forum

LucASWw
-
-
Posty: 248
Rejestracja: 23 sie 2003, o 18:26
Lokalizacja: UK

Postautor: LucASWw » 16 kwie 2005, o 22:35

Wydaje mi się, że problem tkwi w tym, że Windows i fdisk zakładają partycję FAT32, a biblioteka z http://members.aon.at/voegel/ operuje na FAT16.
Doszedłem do tego wniosku po przeanalizowaniu operacji jakie wykonuje ta biblioteka na dysku.

Piotr78
-
-
Posty: 11
Rejestracja: 16 kwie 2005, o 17:41
Lokalizacja: lubuskie

Postautor: Piotr78 » 16 kwie 2005, o 22:51

jak juz napisalem wyzej kiedy zakladam partycje z DOS 6 to musi wyjsc FAT16 i nie ma innej mozliwosci

dokonywalem tez recznego przestawiannia typu systemu plikow przy pomocy programu Part (ma dostepne kilkanascie systemow) i tez rezultat byl ten sam

zakladalem nawet partycje 8MB, ktore system traktuje jako FAT12

jednym slowem temat systemow plikow mam przetestowany do max

przyczyna moze lezec w niekompatybilnosci programow konfiguracyjnych BAS i ich bibliotek, dlatego potrzebuje konkretnej, sprawdzonej, dzialajacej calej paczki, bo dotyczasowe zlepki tych elementow nie przynosza mi rezultatu

Awatar użytkownika
ZbeeGin
-
-
Posty: 170
Rejestracja: 3 kwie 2003, o 10:10
Lokalizacja: Metropolia Katowice

Postautor: ZbeeGin » 18 kwie 2005, o 19:18

Na początek proponuję załadować do BASCOM-a plik przykładowy "FlashCard-demo.bas" i spróbować w symulatorze. Przedtem jednak zmieniamy (15 linia od góry):
Const Xramdrive = 0 ' 1 for XRAM Drive
na:
Const Xramdrive = 1 ' 1 for XRAM Drive

W opcjach kompilatora. Wybierasz:
CHIP : M128def.dat
XRAM : 64KB
Zaznaczasz External Access Enable

Teraz kompilacja. Program powinien zająć 9%-10% flasha. Uruchamiasz symulator. Na moim Bascom AVR 1.11.7.7 FULL, program działa do momentu użycia BLOAD i BSAVE (tutaj symulator się "sypnął").
Jeśli inicjalizacja i praca programu do tego momentu zadziała u ciebie to biblioteki i pliki configów są OK.


Najważniejsza jest ta część programu:

Kod: Zaznacz cały

' Tutaj możesz dołączyć sterowniki "napędu" #if Xramdrive = 0 $Include "CONFIG_FlashCardDrive.bas" ' używamy CF-Interface (patrz schemat w helpie) '$Include "CONFIG_FlashCardDrive_EL_PIN.bas" ' użyjemy Elektor CF-Interface '$Include "CONFIG_FlashCard_MMC.bas" ' użyjemy MMCInterface (nie działa, Mark zapomniał dodać pliku do dystrybucji) #else $Include "CONFIG_XRAMDrive.bas" ' symulujemy kartę w pamięci zewnętrznej (najlepiej 64KB) #endif $include "CONFIG_AVR-DOS.Bas" ' definicje stałych AVR-DOS ' Inicjalizacja portów i karty Print #1 , "Ustawiam porty i odpalam kartę ... "; If Drivecheck() = 0 Then ' znaleziono kartę? Print #1 , "Zrobione" _temp1 = Driveinit() ' zainicjuj napęd Else Print #1 , "Brak karty w adapterze!" End ' Albercik, wychodzimy! End If
oraz konfiguracja systemowego zegara RTC (Config SofClock) gdyż wymaga go AVR-DOS.

Piotr78
-
-
Posty: 11
Rejestracja: 16 kwie 2005, o 17:41
Lokalizacja: lubuskie

Postautor: Piotr78 » 21 kwie 2005, o 16:00

moze zaczne tak, postepujac z powyzszymi instrukcjami nie uzyskalem powolanego rezultatu :/

nastepnie uproscilem i spreparowalem sobie program do takiej postaci

Kod: Zaznacz cały

$regfile = "M128Def.dat" $crystal = 10000000 $external Waitms Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Lcd = 16 * 1a Config Date = Dmy , Separator = . Config Clock = Soft Enable Interrupts Time$ = "12:00:00" : Date$ = "05.05.03" $Include "CONFIG_FlashCardDrive.bas" $include "CONFIG_AVR-DOS.Bas" Cls : Lcd "Setup Port and Reset Card ... " : Wait 1 If Drivecheck() = 0 Then _temp1 = Driveinit() Cls : Lcd "OK" : Wait 1 Else Cls : Lcd "Card not inserted, check Card!" : Wait 1 End End If Cls : Lcd "init ... " : Wait 1 Dim Gbtemp1 As Byte Gbtemp1 = Initfilesystem(1) If Gbtemp1 > 0 Then Cls : Lcd Gbtemp1 : Wait 1 Else Cls : Lcd "Disksize : " ; Disksize() : Wait 1 Cls : Lcd "Disk free: " ; Diskfree() : Wait 1 End If End
niestety ostatnim widocznym dla mnie "punktem" jego dzialania jest linia Cls : Lcd "init ... " : Wait 1, tak jakby sie wieszal przy Initfilesystem(1)

CF jest sformatowany i pod PC pracuje poprawnie, kiedy podlaczam go do M128 jest wykrywany, wobec tego prosba, nie chce juz zadnych "super" testerow, dem itp.

po prostu ten kod ktory zamiescilem powyzej chcialbym uzupelnic, wiec interesuje mnie czego jeszcze potrzebuje aby to ustrojstwo w koncu uruchomic, tak aby na koncu tego kodu mozna bylo korzystac z typowych komend obslugi systemu plikow

BTW nie wiem co kierowalo autorem schematu elektrycznego aby pin B.1 bioracy udzial w programowaniu uC przez port RS232 zastosowac do obslugi CF :x

w "normalnych" warunkach pracy z CF jest on polaczony przez rezystor 10kOhm do Vcc co wyklucza programowanie CPU i zmusza do kazdorazowego odlaczania fizycznego adaptera karty

z kolei podczas pracy z karta trzeba za kazdym razem fizycznie odpinac programator gdyz przeklamuje komunikacje z CF (po takiej zonglerce mozna osiwiec)

cale szczescie, ze w kodzie mozna ten pin przeAlias-owac i przelutowac gdzie indziej ;)

z gory dziekuje za pomoc, nie przypuszczalem, ze odpalenie systemu plikow na CF wymaga tyle zbednej kombinacji, cudowania i straty czasu :)

Awatar użytkownika
ZbeeGin
-
-
Posty: 170
Rejestracja: 3 kwie 2003, o 10:10
Lokalizacja: Metropolia Katowice

Postautor: ZbeeGin » 21 kwie 2005, o 18:41

Czy możesz uściślić Mój tok rozumowania.

- Wczytałeś program "FLASHCARD-DEMO.BAS", dokonałeś poprawek i wskazanych ustawień.
- Odpaliłeś ten program, a symulacja programu z wykorzystaniem wirtualnej karty (XRAMDrive) przebiegła 100% poprawnie (u Mnie działa, sypnięcie się symulatora to był jednak wypadek).
- Poźniej zmieniłes sterownik na "CONFIG_FlashCardDrive.bas", zmieniłeś z powrotem "Const XRAMDrive = 0" wyłączyłeś External Access Enable, użyłeś LCD zamiast terminala i próbowałeś odpalić ten sam program z wykorzystaniem realnej karty.


I jeszcze jedno, czy karta 32MB to jedyna jaką posiadasz? Próbowałeś na karcie o pojemności większej niż 32MB? To pytanie jest zasadnicze, gdyż zajrzałem teraz do książki "MS-DOS 5.0 od środka". Istnieją - chyba - dwa rodzaje partycji dla karty o rozmiarach 32MB. Skrócona lista numerów ID partycji:

00h - nie używana przez DOS, pusta
01h - DOS, FAT12
04h - DOS, FAT16, rozmiar < 32MB
05h - DOS Extendend (na dyski logiczne)
06h - DOS, FAT16, rozmiar >= 32MB
...
0Bh - Windows, FAT32
0Ch - Windows, FAT32 LBA


Możliwe, że karta 32MB (która de facto ma mniej niż 32MB!!) formatuje się z ID 04h i AVR-DOS jej nie trawi...

Spróbuj jeszcze utworzyć partycję jakimś innym programem, który pozwala wybrać dowolny ID partycji (Ranish Partition Manager) i utwórz: DOS, FAT16 >=32MB - czyli ID = 06h.


p.s. Widzę, że zmieniłeś posta, a ja pisałem odpowiedź off-line do poprzedniej wersji.

Piotr78
-
-
Posty: 11
Rejestracja: 16 kwie 2005, o 17:41
Lokalizacja: lubuskie

Postautor: Piotr78 » 22 kwie 2005, o 10:55

Czy możesz uściślić Mój tok rozumowania.

- Wczytałeś program "FLASHCARD-DEMO.BAS", dokonałeś poprawek i wskazanych ustawień.
- Odpaliłeś ten program, a symulacja programu z wykorzystaniem wirtualnej karty (XRAMDrive) przebiegła 100% poprawnie (u Mnie działa, sypnięcie się symulatora to był jednak wypadek).
- Poźniej zmieniłes sterownik na "CONFIG_FlashCardDrive.bas", zmieniłeś z powrotem "Const XRAMDrive = 0" wyłączyłeś External Access Enable, użyłeś LCD zamiast terminala i próbowałeś odpalić ten sam program z wykorzystaniem realnej karty.[...]
Dokladnie tak Panie Zbigniewie, niestety na chwile obecna dysponuje tylko taka karta :(

jeszcze ciekawszym zjawiskiem jest taka sytuacja, kiedy to wprowadzam taki program

Kod: Zaznacz cały

$regfile = "M128Def.dat" $crystal = 10000000 $external Waitms Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Lcd = 16 * 1a Config Date = Dmy , Separator = . Config Clock = Soft Enable Interrupts Time$ = "12:00:00" : Date$ = "05.05.03" $Include "CONFIG_FlashCardDrive.bas" $include "CONFIG_AVR-DOS.Bas" Dim Hhh As Byte Cls : Lcd "Setup Port and Reset Card ... " : Wait 1 If Drivecheck() = 0 Then Hhh = Driveinit() Cls : Lcd Hhh : Wait 1 Dim Berror As Byte Dim Abuffer(512) As Byte Dim Wsrampointer As Word Wsrampointer = Varptr(abuffer(1)) Berror = Drivegetidentity(wsrampointer) Cls : Lcd "OK" ; Berror : Wait 1 Dim S As String * 16 Dim F As Word For F = 1 To 512 S = S + Chr(abuffer(f)) If Len(s) = 16 Then S = Mid(s , 2) Cls : Lcd S : Waitms 50 Next F Else Cls : Lcd "Card not inserted, check Card!" : Wait 1 End End If Cls : Lcd "init ... " : Wait 1 Dim Berrorcode As Byte Berrorcode = Initfilesystem(1) 'musimy zainicjować system plików If Berrorcode > 0 Then Cls : Lcd "Błąd " ; Berrorcode Else Cls : Lcd "System plików zainicjowany poprawnie" End If End
system plikow ustawiony mam recznie przez Part Manager na wlasciwy 06h

po uruchomieniu powyzszego programu wszystko zdaje sie pracowac poprawnie na poczatku, petla FOR "wypluwa" zawartosc Drivegetidentity z CF na LCD, pozostale wyniki dzialania funkcji zwracaja 0 (no err) i tak dzieje sie niestety do nieszczesnego miejsca Initfilesystem(1) czyli ostatnie co widze na LCD to wlasnie "init ..." :(

jeszcze ciekawsze w tym wszystkim jest to, ze uklad i program zdaje sie dzialac losowo, poniewaz przy pierwszym uruchomieniu dochodzi do tego w/w etapu, kazde nastepne uruchomienie konczy sie juz w tym miejscu Cls : Lcd Hhh : Wait 1 czyli wysypuje sie tak jakby na Drivegetidentity(wsrampointer)

"odstanie" ukladu bez pwr dluzszy czas powoduje odpalenie sie programu nieco dalej do init ;) :shock:

jestem juz calkiem zdesperowany, czy tylko mi sie trafily takie egzemplarze czy to jest norma przy uruchamianiu CF? :/

[ Dodano: 22-04-2005, 11:22 ]
dodam jeszcze post aby nie bylo problemow z odp. offline ;)

wyzej zamieszczony program szukajac innej przyczyny oczyscilem z komentarzy, usunalem wszystkie PL znaki wyrzucane na LCD, wyremowalem procedurke generujaca driveintegrity i nadal mimo wszystko mechanizm staje na nieszczesnym init :(

stad moze taka propozycja, jesli nie sprawilo by to problemu czy dalo by rade podrzucic mi jakis sprawdzony gotowy skompilowany HEX, ktory dziala z jaks karta uzupelniony jedynie o config mojego LCD abym widzial do jakiego etapu i co w danej chwili sie dzieje

moze wtedy jakos bedzie latwiej ustalic przyczyne moich problemow, bylbym bardzo wdzieczny bo w sumie za duzo mozliwosci juz nie mam :/

[ Dodano: 22-04-2005, 12:30 ]
chcac wyeliminowac wszystkie watpliwosci zaopatrzylem sie w karte CF 128MB,

dokonalem takich samych testow jak z poprzednia (32MB) i rezultat dalej mam ten sam :x

kolejnym posunieciem w mojej despracji byla zmiana M128 na inny egzemplarz, zaprogramowanie go, sprawdzenie poprawnosci polaczen od strony elektrycznej i na koniec eksperymenty z dzieleniem zegara (moze 10MHz za szybko sie zachowuje) poprzez Clockdivison

oczywiscie rezultat w kolko ten sam :x

takze chyba nie obedzie sie bez sprawdzonego skompilowanego HEX-a :(

[ Dodano: 22-04-2005, 16:29 ]
kolejny wynik ostatnich testow:

pobralem nowsze wersje kodu z http://members.aon.at/voegel/Downloads.htm
ATMega128 you need:

In your project path:
-> Test_DOS_Drive.bas
-> Config_CompactFlash_M128.bas
-> Config_AVR-DOS.bas
-> FS_Interpreter.bas

in your Lib Path:
-> CF_HD.lbx
-> AVR-DOS.lbx
program testowy adaptujac do LCD w tej postaci

Kod: Zaznacz cały

$regfile = "M128def.dat" $crystal = 10000000 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Lcd = 16 * 1a Config Clock = Soft Enable Interrupts Config Date = Mdy , Separator = . Dim Btemp1 As Byte Cls : Lcd "Wait for Drive" : Wait 1 $Include "Config_CompactFlash_M128.bas" If Gbdriveerror = 0 Then $Include "Config_AVR-DOS.BAS" Cls : Lcd "Init File System ... " : Wait 1 Btemp1 = Initfilesystem(1) ' Partition 1 If Btemp1 <> 0 Then Cls : Lcd "Error: " ; Btemp1 ; " at Init file system" : Wait 1 Else Cls : Lcd " OK" : Wait 1 Cls : Lcd "Filesystem: " ; Gbfilesystem : Wait 1 Cls : Lcd "FAT Start Sector: " ; Glfatfirstsector : Wait 1 Cls : Lcd "Root Start Sector: " ; Glrootfirstsector : Wait 1 Cls : Lcd "Data First Sector: " ; Gldatafirstsector : Wait 1 Cls : Lcd "Max. Cluster Nummber: " ; Gwmaxclusternumber : Wait 1 Cls : Lcd "Sectors per Cluster: " ; Gbsectorspercluster : Wait 1 Cls : Lcd "Root Entries: " ; Gwrootentries : Wait 1 Cls : Lcd "Sectors per FAT: " ; Gwsectorsperfat : Wait 1 Cls : Lcd "Number of FATs: " ; Gbnumberoffats : Wait 1 End If Else Cls : Lcd "Error Init: " ; Gbdriveerror : Wait 1 End If $Include "FS_Interpreter.bas" End
uruchamiajac go otrzymalem nastepujacy wynik z Initfilesystem(1):

-> CF32MB - err 17 cpNoMBR Sector 0 on Card is not a Master Boot Record
-> CF128MB - err 18 cpNoPBR No Partition Sector

obie karty CF sa sformatowane pod FAT16 (DOS 06h)

Awatar użytkownika
ZbeeGin
-
-
Posty: 170
Rejestracja: 3 kwie 2003, o 10:10
Lokalizacja: Metropolia Katowice

Postautor: ZbeeGin » 23 kwie 2005, o 10:52

Nie pamiętam teraz, ale czy M128 ma interfejs JTAG?? Jeśli ma to wyłącz go ustawiając odpowiedni bit fuse.

Ja ze swej strony mogę tylko sprawdzić twój program na sucho (XRAMDrive) w symulatorze. Nie posiadam niestety ani M128 ani interfejsu CF. :(

Piotr78
-
-
Posty: 11
Rejestracja: 16 kwie 2005, o 17:41
Lokalizacja: lubuskie

Postautor: Piotr78 » 23 kwie 2005, o 17:55

W porzadku, mimo wszystko i tak dziekuje za zainteresowanie, swoj problem posrednio rozwiazalem :)

tzn nie wykorzystuje AVR-DOS tylko CF_HD.lib, teraz zczytuje sobie potrzebne dane niskopoziomowo, fakt, ze jest to mniej wygodne ale chociaz moge wykorzystac CF ;)

najlepiej to przetestowac na plikach dzwiekowych, tok postepowania jest taki:
1. na CF wgrywam skonwretowany z wav PCM 8bit unsigned 11025Hz, ktory ma na poczatku wpisany unikatowy ciag, np. mus1 (mozna to zrobic HexEditor-em)
2. defragmentuje profilaktycznie CF zeby plik szed sektor po sektorze ;)
3. taki CF skanuje programem A w poszukiwaniu pozycji pliku
4. potem zapuszczam prg B ktory sektor po sektorze odczytuje od tej pozycji plik i sobie gra (wysyla na D/A probki) :)
$regfile = "M128def.dat"
$crystal = 10000000

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 1a

Config Clock = Soft
Enable Interrupts
Config Date = Mdy , Separator = .

Cls : Lcd "Wait for Drive" : Wait 1
$Include "Config_CompactFlash_M128.bas" ' Does drive init too

If Gbdriveerror = 0 Then

Dim Berror As Byte
Dim Abuffer(512) As Byte
Dim Wsrampointer As Word
Wsrampointer = Varptr(abuffer(1))

Dim G As Long
Dim S As String * 512
Dim F As Word

Dim Sr As Byte

Cls : Lcd "find..." : Wait 1

For G = 1 To 65530
Berror = Drivereadsector(wsrampointer , G)

For F = 1 To 512
S = S + Chr(abuffer(f))
Next F

Sr = Instr(s , "symfonia")
If Sr > 0 Then
Cls : Lcd "s: " ; G ; " p: " ; Sr : Wait 1
End If

S = ""

Next G
Else
Cls : Lcd "Error Init: " ; Gbdriveerror : Wait 1
End If

End
$regfile = "M128def.dat"
$crystal = 10000000

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 1a
Config Portf = Output

Config Clock = Soft
Enable Interrupts
Config Date = Mdy , Separator = .

Cls : Lcd "Wait for Drive" : Wait 1
$Include "Config_CompactFlash_M128.bas" ' Does drive init too

If Gbdriveerror = 0 Then

Dim Berror As Byte
Dim Abuffer(512) As Byte
Dim Wsrampointer As Word
Wsrampointer = Varptr(abuffer(1))

Dim G As Long
Dim F As Word

Cls : Lcd "play" : Wait 1
For G = 2790 To 65530
Berror = Drivereadsector(wsrampointer , G)

For F = 1 To 512
Portf = Abuffer(f) : Waitus 50
Next F

Next G

Else
Cls : Lcd "Error Init: " ; Gbdriveerror : Wait 1
End If

End
Lepsze w jakosci dzwieku rezultaty mozna osiagac stosujac przerwania w procedurze odtwarzajacej, fakt, ze celem mojego ukladu nie jest budowa odtwarzacza MP3 ;)

Takze wszystko wskazuje na to, ze komunikacja z CF dziala na obu kartach bez problemu jedynie system plikow szwankuje, sprawdze jeszcze z odflagowaniem tego fuse-a i dam znac ;)

pozdr

Awatar użytkownika
ZbeeGin
-
-
Posty: 170
Rejestracja: 3 kwie 2003, o 10:10
Lokalizacja: Metropolia Katowice

Postautor: ZbeeGin » 23 kwie 2005, o 18:21

Jeśli jescze masz ochotę się tym bawić (AVR-DOS) to możesz jeszcze spróbować zwiększyć dwukrotnie wartości przypisane parametrom HWStack, SWStack i Frame Space w opcjach kompilatora. Być może program się zawiesza nie przez błąd w AVR-DOS tylko przez przepełnienie któregoś ze stosów. Przecież InitFileSystem jest funkcją, a te korzystają intensywnie z tych obszarów.

Piotr78
-
-
Posty: 11
Rejestracja: 16 kwie 2005, o 17:41
Lokalizacja: lubuskie

Postautor: Piotr78 » 24 kwie 2005, o 15:58

Powitac :)

no niesety, ani fuse ani stosy czy tez Frame nie pomogly, po prostu wychodzi na to, ze avr-dos ma jakis bug skoro nawet te wszystkie zabiegi zawodza, dziwne, ze autor biblioteki o tym nie wie i tego nie koryguje :/

Swoja droga jak widze topic ten jest dosc licznie przegladany, jednak nikt w nim glosu nie zabral w kwestii tego, ze u niego to pracuje, stad tym bardziej potwierdzaja sie moje przypuszczenia iz jest to blad softu a nie jakichs niedopatrzen z naszej strony ;)

jeszcze raz pozdrawiam i dzieki za zainteresowanie, pozostaje mi korzystanie w wlasnego "dos-a" inside DOS na CF :D

milego weekendu :)

Jacek S
-
-
Posty: 2
Rejestracja: 31 sie 2008, o 13:54
Lokalizacja: Kraków

Postautor: Jacek S » 31 sie 2008, o 14:19

Witam,

Bardzo mnie zainteresował temat.
1.Czy dałoby się zrobić zapisywanie niewielkich danych na kartę MMC 16 MB przy pomocy Atmegi 8 ?
2. Czemu w programie nie ma funkcji INITFILESYSTEM ?
3. Czemu nie występują funkcje związane z configuracją SPI ?
4. Karta jest <32 MB, gdzie ustawia się o tym informacje, czy trzeba to robić ?

Proszę o odpowiedz chociaż na część pytań :599:

Awatar użytkownika
almatea
-
-
Posty: 240
Rejestracja: 12 gru 2003, o 17:02
Lokalizacja: Brzeszcze
Kontaktowanie:

Postautor: almatea » 1 wrz 2008, o 07:15

Witam.

Używam CF oraz MMC z poziomu Atmegi128 i wszystko śmiga jak należy.
Radzę Ci stosować karty powyżej 256MB.
Jeśli CF masz podłączony na przewodach, to zapomnij, żeby to poszło a jeśli już spróbuj osłonić je dłonią dociskając do stołu i wtedy odpalić elektronikę. Swoją drogą, maleńki kondensatorek na jednej z linii (później sprawdzę na jakiej) zdecydowanie poprawia pracę.
W jednym z EP był nawet publikowany mój projekcik w oparciu kartę CF.

Pozdrawiam

Jacek S
-
-
Posty: 2
Rejestracja: 31 sie 2008, o 13:54
Lokalizacja: Kraków

Postautor: Jacek S » 1 wrz 2008, o 18:18

Dzięki za odpowiedzi :637:

Chciałbym pobawić się MMC, programuje się je szeregowo przez SPI ?
Program chce napisać w Bascomie.
Ma to byc rejestrator temperatury, albo innej wielkosci. Pamięć MMC była by umieszczona blisko uP, a wyciągana okresowo w celu szczytania danych na PC.
Zaopatrzyłem się w artykuły z EP 5,6,7,8,9 z 2004 roku. Niewiem, czy po przeczytaniu tego wszystkiego będę w stanie zrobić to urządzenie.
Czy w razie trudności będę mógł na Ciebie liczyć.
Pozdrawiam

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 33 gości