SD kártya használat egyszerűen
- webgeneral
- Újonc

- Hozzászólások: 6
- Csatlakozott: 2008. június 3. kedd, 6:00
SD kártya használat egyszerűen
Szeretnék bascom-ban egy olyan kis függvénygyűjteményt készíteni ami a következőt tudja:
SD kártyáról egy adott szektort beolvas
SD kártyára egy adott szektort kiír.
Végigkerestem már a fél netet, de nem találtam egyszerű megoldást csak C-ben.
AVR-DOS-ra nincs szükségem csak a közvetlen írásra-olvasásra.
Az SRAM-ban egy 512byte-os tömböt használok így oda ír és onnan olvasnak a program.
Merre induljak el? Vagy teljesen rossz felé indultam?
(Sajnos a szerencsétlen minden nyelvből egy kicsit generáció tagja vagyok így az angol doksik nem sokat segítettek).
A PC oldal nem gond delphiben írtam egy programot amivel simán tudok írni-olvasni közvetlenül.
SD kártyáról egy adott szektort beolvas
SD kártyára egy adott szektort kiír.
Végigkerestem már a fél netet, de nem találtam egyszerű megoldást csak C-ben.
AVR-DOS-ra nincs szükségem csak a közvetlen írásra-olvasásra.
Az SRAM-ban egy 512byte-os tömböt használok így oda ír és onnan olvasnak a program.
Merre induljak el? Vagy teljesen rossz felé indultam?
(Sajnos a szerencsétlen minden nyelvből egy kicsit generáció tagja vagyok így az angol doksik nem sokat segítettek).
A PC oldal nem gond delphiben írtam egy programot amivel simán tudok írni-olvasni közvetlenül.
Ilyen topik már van „ATMega32 + SD kártya”:
http://avr.tavir.hu/modules.php?name=Fo ... a&start=15
Talán ott próbálj először olvasgatni!

http://avr.tavir.hu/modules.php?name=Fo ... a&start=15
Talán ott próbálj először olvasgatni!
Csak C-ben találtam neked valamit.
Atmel ATmega (ATmega16 / ATmega32) - MMC (Multi Media Card) Flash Memory Extension
http://www.captain.at/electronic-atmega-mmc.php

Atmel ATmega (ATmega16 / ATmega32) - MMC (Multi Media Card) Flash Memory Extension
http://www.captain.at/electronic-atmega-mmc.php
- webgeneral
- Újonc

- Hozzászólások: 6
- Csatlakozott: 2008. június 3. kedd, 6:00
Nem FAT32-vel
Olvastam több AVR-DOS megoldást, de nekem kifejezetten a low-level része kéne vagyis nem érdekes az ATMega32-es megoldás.
Éppen most találtam ki, hogy hogyan fogom megoldani ATTiny2313 vagy hasonló kis chippel.
Ezekhez csak a szektorok írását és olvasását kell megoldanom.
Amúgy az SRAM méret problémáját egyszerűen úgy oldom meg, hogy ha pl 128byte SRAM-om van akkor az első 64byte-ot használom a maradékot 448 byte egyszerűen kiolvasom, de nem jegyzem meg. Ugyanígy az írásnál is. Így minden szektorból csak 64 byte-ot használok.
Igaz 8-ad annyi részt tudok így felhasználni, de még így is drasztikus árkülönbség van egy SD kártya és bármilyen chippel szemben ár/kapacitás szempontjából.
Arról nem is beszélve, hogy simán lehet programot írni amivel bármely PC-ről a fenti struktúrában tudok file-okat létrehozni, kezelni.
A fenti oldalt én ismegtaláltam elkezdtem "bascomra fordítani" csak nagyon sok az amit nem ismerek belőle.
Éppen most találtam ki, hogy hogyan fogom megoldani ATTiny2313 vagy hasonló kis chippel.
Ezekhez csak a szektorok írását és olvasását kell megoldanom.
Amúgy az SRAM méret problémáját egyszerűen úgy oldom meg, hogy ha pl 128byte SRAM-om van akkor az első 64byte-ot használom a maradékot 448 byte egyszerűen kiolvasom, de nem jegyzem meg. Ugyanígy az írásnál is. Így minden szektorból csak 64 byte-ot használok.
Igaz 8-ad annyi részt tudok így felhasználni, de még így is drasztikus árkülönbség van egy SD kártya és bármilyen chippel szemben ár/kapacitás szempontjából.
Arról nem is beszélve, hogy simán lehet programot írni amivel bármely PC-ről a fenti struktúrában tudok file-okat létrehozni, kezelni.
A fenti oldalt én ismegtaláltam elkezdtem "bascomra fordítani" csak nagyon sok az amit nem ismerek belőle.
- webgeneral
- Újonc

- Hozzászólások: 6
- Csatlakozott: 2008. június 3. kedd, 6:00
Egyszerű:
Pl.: van egy szélerősség mérő kütyüm.
Gyakorlatilag a mérés nem probléma, de azt tárolni is kell sőt sokat és jó részletezéssel kell tárolni mondjuk mp bontásban. Az 86400 adat/nap vagyis 1 byte-al számolva 86Kbyte/nap.
Egy 32Mb-os sdram az 250Ft ezen, ha 64byte-al számolom akkor 4Mbyte-ot vagyis kb 1 hónap adatát tudom tárolni. PC-vel simán lehet olvasni egy kis szoftverrel nem kell még az AVR meg a gép összekötésével is bajlódni. Csak kimegyek kicserélem a kártyát és már mehet is tovább a mérés.
Ha FAT32-vel csinálom akkor mondjuk egy ATMega88 560Ft egy ATTiny45 330 Ft.
Nem nagy különbség ebben igazatok van, de egy dologban mégis nagy.
Gyakorlatilag az ATTiny45-nek van helye a másik meg nem fér bele a tokba amibe kerülne
. Túl sok a lába és nem fér bele.
Ezen kívül a FAT32 túl bonyolult és hát ahhoz egy full bascom is kell, na meg egy csomó helyet elvesz az amúgy is szűkös memóriából.
Pl.: van egy szélerősség mérő kütyüm.
Gyakorlatilag a mérés nem probléma, de azt tárolni is kell sőt sokat és jó részletezéssel kell tárolni mondjuk mp bontásban. Az 86400 adat/nap vagyis 1 byte-al számolva 86Kbyte/nap.
Egy 32Mb-os sdram az 250Ft ezen, ha 64byte-al számolom akkor 4Mbyte-ot vagyis kb 1 hónap adatát tudom tárolni. PC-vel simán lehet olvasni egy kis szoftverrel nem kell még az AVR meg a gép összekötésével is bajlódni. Csak kimegyek kicserélem a kártyát és már mehet is tovább a mérés.
Ha FAT32-vel csinálom akkor mondjuk egy ATMega88 560Ft egy ATTiny45 330 Ft.
Nem nagy különbség ebben igazatok van, de egy dologban mégis nagy.
Gyakorlatilag az ATTiny45-nek van helye a másik meg nem fér bele a tokba amibe kerülne
Ezen kívül a FAT32 túl bonyolult és hát ahhoz egy full bascom is kell, na meg egy csomó helyet elvesz az amúgy is szűkös memóriából.
Az int. áramköröket általában többféle tokozásban kapni.
Mint ahogy egy DIP/DIL tok részerint sokkal nagyobb, furatgalván
beültetésre felkészítve.(vagy a próbapaneleken célszerűbb)Addig
egy SMD (felületszerelt)méreteiben is kicsinyített, felületszerelt
nyákokhoz ahol esetleg a hely is számít.A te esetedben Mega8,88,...
168...stb.stb..csak egy 7mm *7mm -es 2mm magas négyzet.
Az avr-ek manualjában (ill. az atmel-nek van agy exel táblában is
letölthető verziója)megtekintheted ezeket a tokozásokat..
Vagy csak próbapanelezel?
Mint ahogy egy DIP/DIL tok részerint sokkal nagyobb, furatgalván
beültetésre felkészítve.(vagy a próbapaneleken célszerűbb)Addig
egy SMD (felületszerelt)méreteiben is kicsinyített, felületszerelt
nyákokhoz ahol esetleg a hely is számít.A te esetedben Mega8,88,...
168...stb.stb..csak egy 7mm *7mm -es 2mm magas négyzet.
Az avr-ek manualjában (ill. az atmel-nek van agy exel táblában is
letölthető verziója)megtekintheted ezeket a tokozásokat..
Vagy csak próbapanelezel?
Vagy esetleg SPI interf. rendelkező at45db321 v. 642 soros
flash memória, az egyik 32Mbit a másik 64 viszont csak a
32Mbit az SO8 tokozás a másik TSOP28 viszont mindkettőnél
CS-el megdublázható a címezés.Kicsit belekukkantva az egyik
manuáljában sztandard eeprom olvasás-írás emulációval rendelkezik.
Dehát a soros interf. miatt könnyű írni hozzá konstans parancsokat.
(a manualba nincs mondjuk hogy a 321et lehet kapni so8w ben de a
ret.hu-n van ilyen 640 forintért)
Ezzel mondjuk érdemes volna behatóbban is foglalkozni.(Robi
)
flash memória, az egyik 32Mbit a másik 64 viszont csak a
32Mbit az SO8 tokozás a másik TSOP28 viszont mindkettőnél
CS-el megdublázható a címezés.Kicsit belekukkantva az egyik
manuáljában sztandard eeprom olvasás-írás emulációval rendelkezik.
Dehát a soros interf. miatt könnyű írni hozzá konstans parancsokat.
(a manualba nincs mondjuk hogy a 321et lehet kapni so8w ben de a
ret.hu-n van ilyen 640 forintért)
Ezzel mondjuk érdemes volna behatóbban is foglalkozni.(Robi
Hátha a céláramkörre rátervezel még egy rs232-t az avr-hez.(vagy usb)
Akkor az avrt rá lehet venni arra hogy átküldje az adatokat.
Nézd meg az smtkemence programját amit Robi írt.Ott is az
RS232-n terminálból lehet mondani a programnak hogy melyik alrutin
induljon el.Neked elég három
-adatlogolás
-adatkiolvasás
-flash törlése
Program futását meg egy darab gombal intx megszakíthatod.
Diagram programszerkezetre:
mondjuk így:
Főprogram:
-Folyamatos adatlogolás rutin 'Ezt azért simán csak ide mert akkor
ha áramszünet lépet fel vagy watchdog mindig folyatatja.. Esetleg
plusz flashben tárolni az épp aktuális addresst.
-volt megszakítás? ha volt ugorj az rs232 rutinra
intx:
jelzés megszakításra
rs232 rutin:
-memória kiolvasás
-kiolvasás után közöljük az átküldöt adatmennyiséget aztán
-kérdés a törlésre ha igen akkor flash törlése
ez kb 3 IC ami feltétlen szükséges és elfér 20mm*20mm nyákon
plussz valami csatlakozó a tápnak meg a rs meg az isp (na jó esetleg egy tápkocka..vagy..kettő)
Nekem eddig ez volt a szimpi az mmc-t kicsit bénábnak érzem a bascom oldalról az spi az biztos hogy egyszerűbb.
Akkor az avrt rá lehet venni arra hogy átküldje az adatokat.
Nézd meg az smtkemence programját amit Robi írt.Ott is az
RS232-n terminálból lehet mondani a programnak hogy melyik alrutin
induljon el.Neked elég három
-adatlogolás
-adatkiolvasás
-flash törlése
Program futását meg egy darab gombal intx megszakíthatod.
Diagram programszerkezetre:
mondjuk így:
Főprogram:
-Folyamatos adatlogolás rutin 'Ezt azért simán csak ide mert akkor
ha áramszünet lépet fel vagy watchdog mindig folyatatja.. Esetleg
plusz flashben tárolni az épp aktuális addresst.
-volt megszakítás? ha volt ugorj az rs232 rutinra
intx:
jelzés megszakításra
rs232 rutin:
-memória kiolvasás
-kiolvasás után közöljük az átküldöt adatmennyiséget aztán
-kérdés a törlésre ha igen akkor flash törlése
ez kb 3 IC ami feltétlen szükséges és elfér 20mm*20mm nyákon
plussz valami csatlakozó a tápnak meg a rs meg az isp (na jó esetleg egy tápkocka..vagy..kettő)
Nekem eddig ez volt a szimpi az mmc-t kicsit bénábnak érzem a bascom oldalról az spi az biztos hogy egyszerűbb.
- webgeneral
- Újonc

- Hozzászólások: 6
- Csatlakozott: 2008. június 3. kedd, 6:00
Egy dolgot elfelejtettetek:
Az eszközt nem hozzuk "haza" az kint marad a terepen ahol tovább loggolja az adatkat. Gyakorlatilag 1 km-re van tőlem ahol loggolom a szélerősséget és fel van erősítve az egész egy oszlopra.
Sokkal célravezetőbb az sd kártya amiból olcsósága miatt kettőt is lehet venni és folyamatosan cserélni.
Az eszközt nem hozzuk "haza" az kint marad a terepen ahol tovább loggolja az adatkat. Gyakorlatilag 1 km-re van tőlem ahol loggolom a szélerősséget és fel van erősítve az egész egy oszlopra.
Sokkal célravezetőbb az sd kártya amiból olcsósága miatt kettőt is lehet venni és folyamatosan cserélni.
Csinálsz két ilyet akkuval együtt cseréled..
Csak te tudod használni....
Más nem tud venni bele sd kártyát?Dehogyisnem..... Céláramkört?...(Azt meg csak aki építette.)(Ja hogy saját hobby célra kell akkor mindegy:)
Annyiért amennyiért az sd kártyát veszed kb szerintem ezt is meg tudod csinálni.(Meg az aljzatot gondolom klassz fémtokos rugósat mert az azegyedüli ami használható is.)
Negatívumok:
Bascomban SD kártyára... talán majd egyszer lesz ilyen is...
Ha c programozó vagy akkor viszont eltévesztetted a fórumot....
Mennyi egy ilyen sd kártya aljzat?
Különben meg mint ötletként írtam végülis úgy csinálod ahogy tetszik..
Csak te tudod használni....
Más nem tud venni bele sd kártyát?Dehogyisnem..... Céláramkört?...(Azt meg csak aki építette.)(Ja hogy saját hobby célra kell akkor mindegy:)
Annyiért amennyiért az sd kártyát veszed kb szerintem ezt is meg tudod csinálni.(Meg az aljzatot gondolom klassz fémtokos rugósat mert az azegyedüli ami használható is.)
Negatívumok:
Bascomban SD kártyára... talán majd egyszer lesz ilyen is...
Ha c programozó vagy akkor viszont eltévesztetted a fórumot....
Mennyi egy ilyen sd kártya aljzat?
Különben meg mint ötletként írtam végülis úgy csinálod ahogy tetszik..