SD kártya eltávilítása és újrainicializálása

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10033
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: Robert » 2016. december 13. kedd, 13:03

A kérdés AVR-es topicban hangzott el :)
Mondjuk az Arduino sem a sebesség/optimalizációbajnok - de mint mindenütt az erőforrásokat rendeljük alá a feladatnak..
FFT illetve egyéb erőforrás-igényes feladatot nem is AVR-en kezdek, de logolni gyűjtött adatokat - simán elegendő lehet.
Az ESP8266 melett lasssan elérhető lesz az ESP-32. Azonos programkód, így a hordozhatóság és a egyszerre szoftver/hardware váltás is megoldódik... (A szoftver azonos tud maradni)...
De lassan egy tesztprogrammal ki kellene próbálni:
- AVR, DUE, ESP8266 tapasztalatokat.... És ez bővíthető az ESP32 illetve STM rendszerekkel.,..


De sokszor a feladat minimális adatok mentését jelenti. Ott meg nem a chip lesz a szűk keresztmetszet, nem is az SD kártya....
http://www.tavir.hu - a gazda :)

bagizoltan
Bitmanipulátor
Hozzászólások: 128
Csatlakozott: 2015. december 8. kedd, 19:52
Tartózkodási hely: Budapest

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: bagizoltan » 2016. december 15. csütörtök, 7:00

Szia Csabesz!
Én egy erősen kezdő Arduino hobbista vagyok. Tudnál arra nagyon röviden válaszolni, mi kell ahhoz, hogy STM32 blue pill panellel kezdjek szórakozni? Amit jelenleg használok: Arduino Uno R2, Arduino C, programozóm nincs Arduino ISP-vel szoktam chip-et programozni. Az így szerzett tapasztalatok érnek valamit, vagy mindent elölről kell kezdeni? Fejlesztő eszköznek maradhat az Arduino C?
Azért keltette fel az érdeklődésemet, mert vettem magamnak egy digitális oszcilloszkóp kittet, ami 12 bites AD konverterrel és 1Mhz mintavételi frekivel dolgozik és STM32 chip van benne. Ez már komoly teljesítmény a jelenlegi eszközökhöz képest! Vannak benne plusz lehetőségek.
Köszönettel
Bagi

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3348
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: kapu48 » 2016. december 15. csütörtök, 10:35

A modul 3.3v-os csak néhány láb 5v toleráns. Mivel teljesen más a kontroller felépítése, ezért nem 100%-ig szoftver-kompatibilis. Amúgy DIP40 tok méretű. A processzor 32bites ARM CORTEX M-3 72MHz órajel mellett kb 44MIPS-es. Az üres processzor soros porti bootloadert tartalmaz, ezért ahhoz plusz egy 3.3v-os USB <-> soros átalakító kell. Természetesen a későbbiekben az USB port is használható programozásra, is.
Bővebb infó róla http://www.stm32duino.com

Vegyél vele együt programozót is: https://fr.aliexpress.com/item/F18933-ST-LINK-Stlink-ST-Link-V2-Mini-STM8-STM32-Simulator-Download-Debugger-Flash-Programmer-Programming/32740023508.html?spm=2114.06020208.3.61.SnAYAb&ws_ab_test=searchweb0_0,searchweb201602_2_10065_10068_10084_10083_10080_10082_10081_10060_10061_10062_10056_10055_10054_10059_10099_10078_10079_427_10073_10103_10102_10096_10052_10050_10051,searchweb201603_9&btsid=351c8588-2773-42d6-818d-2b5bc5b5eacc

vargham
Chipgyilok
Hozzászólások: 275
Csatlakozott: 2014. január 8. szerda, 8:32
Kapcsolat:

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: vargham » 2016. december 15. csütörtök, 14:01

Rendszeresen használom, lásd második hozzászólás itt:
http://forum.tavir.hu/viewtopic.php?f=32&t=1958

Nekem az mbed / CoIDE páros jobban bejött, mint az Arduino IDE / STM32 Arduino páros.
ST-Link klónt tényleg vegyél, nagyon olcsó. CoIDE felismeri, és azonnal működik a debug, semihosting, stb. Ilyen az Arduino IDE-ben nincs.

Majdnem mindegyik I/O 5V toleráns. A háromból kettő soros port is.
Up to 80 fast I/O ports. 26/37/51/80 I/Os, all mappable on 16 external interrupt vectors and almost all 5 V-tolerant


Forrás:
http://www.st.com/content/ccc/resource/technical/document/datasheet/33/d4/6f/1d/df/0b/4c/6d/CD00161566.pdf/files/CD00161566.pdf/jcr:content/translations/en.CD00161566.pdf

Avatar
csabeszq
Bitfaragó
Hozzászólások: 676
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: csabeszq » 2016. december 15. csütörtök, 15:21

Annyit hozzátennék, hogy tulajdonképpen az Arduino nagyon kevés helyre jó kész termékként.

Az Arduino arra való, hogy veszel egy IC-t ebay-ről és leteszteled, hogy működik-e.
Az STM32 a perifériáival és DMA-val egy hihetetlen ütős chip, viszont ezeket a képességeket az Arduino kb. 0%-ban használja ki.

Magyarul Arduino alatt annyit fogsz tudni, mint Atmega328P alatt, csak 5-szörös sebességgel (72MHz).

Én köztes megoldást alkalmazok AVR-en, ahol az Arduino megy, ott használom. Ahol nem, ott meg megírom a szükséges rutinokat. Amikor már egy mikrovezérlővel 2-nél több komponenst akarsz vezérelni, Arduino alatt baj lesz.

Példa erre az I2C lib-et (Wire):
- mindaddig, amíg az adatot nem fogadtad, vagy nem küld ki, az Arduino áll és vár, nem csinál semmit
- eközben egy csomó másik perifériával tudnál dumálni, de az Arduino áll és vár

Mikrokontrollereknél az I2C igazából hobbitevékenység, mert ha épp nem ér rá, alacsonyban tartja az SCL vonalat. Amikor meg épp semmit sem csinál, akkor lekezeli a kérést. Nem kell azonnal válaszolni, nem kell parázni, amikor épp ráérsz, akkor válaszolsz. Rengeteg helyen akaszt téged az Arduino, köztük olyan helyeken is, ahol simán lekezelhetné a kérést háttérben és visszaszól amikor kész van a végeredményről.

Az Arduino filozófiájába (meghívod a rutint, vár, utána megkapod a választ) az STM32 DMA-val történő szórakozás semennyire nem illik bele. Az ESP8266-ra is ez vonatkozik. Nálam a komplett Wifi klienst újra kellett írni, hogy ne akasszon, mert más dolgom is lenne, nem akarok várakozni...

bagizoltan
Bitmanipulátor
Hozzászólások: 128
Csatlakozott: 2015. december 8. kedd, 19:52
Tartózkodási hely: Budapest

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: bagizoltan » 2016. december 15. csütörtök, 16:22

Szia!

Milyen fejlesztő eszközt javasolsz STM32-höz egy hobbistának?
Azt azért hozzá tenném, hogy Arduinóval is egészen hasznos dolgokat sikerült megcsinálnom, és annak volt köszönhető, hogy a fejlesztő eszköz ennyire egyszerű! Így a profi fejlesztő eszközök egyrészt túl bonyolultak, másrészt várhatóan költségesek. Azonban csábító a teljesítmény, és egyszer talán elérkezik ez is...
Ha jól értem az Arduino C fejlesztő eszközzel is fejleszthetek, rá is tudom valamivel tölteni az STM32-re valamivel, azonban csak a nagyobb órajelből fakadó sebességet tudom kihasználni!

Köszönettel

Bagi

vargham
Chipgyilok
Hozzászólások: 275
Csatlakozott: 2014. január 8. szerda, 8:32
Kapcsolat:

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: vargham » 2016. december 15. csütörtök, 16:37

bagizoltan írta:Milyen fejlesztő eszközt javasolsz STM32-höz egy hobbistának?
Azt azért hozzá tenném, hogy Arduinóval is egészen hasznos dolgokat sikerült megcsinálnom, és annak volt köszönhető, hogy a fejlesztő eszköz ennyire egyszerű! Így a profi fejlesztő eszközök egyrészt túl bonyolultak, másrészt várhatóan költségesek.

Kedves Zoltán!

Elolvastad a hozzászólásaimat? Megnézted a linkelt eszközöket? Regisztráltál a http://developer.mbed.com.org oldalon, és megnézted hogyan működik?

STM32 legolcsóbb board: 2$
Maple mini klón: 3,5$
Programozó/debugger: 2$

Free (ingyen) IDE, ami azonnal működik, és az Arduino-hoz hasonlóan gyors sikerélményt nyújt: MBED online. Böngészőben/szerveren fut, még telepíteni sem kell.
Az Arduino-tól eltérően viszont van továbblépési lehetőség, realtime OS, professzionális offline eszközök, debugger, stb.
Free, offline IDE, ami azonnal működik, soronként léptethető debuggerrel: CoIDE.

Mit szeretnél még?

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3348
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: kapu48 » 2016. december 15. csütörtök, 16:46

Azért nem ilyen rossz a helyzet Arduino háza táján, mint ahogyan ti ismeritek!
PL.:
https://github.com/victorpv/STM32F1_Modified/blob/master/libraries/SPI/src/SPI.cpp
359. sortól SPI-DMA megoldva!
/* Roger Clark and Victor Perez, 2015
* Performs a DMA SPI transfer with at least a receive buffer.
* If a TX buffer is not provided, FF is sent over and over for the lenght of the transfer.
* On exit TX buffer is not modified, and RX buffer cotains the received data.
* Still in progress.
*/

Ez csak 1 kiragadott ellen példa!
Csak keresni kellene a dolgokat!

Sajnos ez a téma már nagyon OFF itt!

bagizoltan
Bitmanipulátor
Hozzászólások: 128
Csatlakozott: 2015. december 8. kedd, 19:52
Tartózkodási hely: Budapest

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: bagizoltan » 2016. december 16. péntek, 16:40

Szia wargham!

Igazad van, nem olvastam el a linkeket amiket mutattál, mert feladtam kb. a negyedénél. A hozzászólásaidat olvastam, de nekem nem áll össze kép! Az a baj, hogy nem értitek Ti gyakorlott programozók, hogy mit nem ért egy kezdő gyakorlatlan emberke. A linkekkel és hozzászólásokkal megmutatott út sajnos számomra elvész az érthetőség/érthetetlenség homályában.

Ha jól hámoztam ki a leveledből, akkor az Arduino C-t el kell dobnom, helyette kell valami más pl. MBED online. Úgy láttam a meglévő programjaimat át kell írnom elég alaposan, de a programozón kívül más már nem kell hozzá! Jól értem?

Még nem akarom elkezdeni a fejlesztést, csak tájékozódni szeretnék, ha majd egyszer lesz rá időm, és hatni kezd az agyserkentő tabletta, akkor érdemes-e elindulnom ezen az úton, vagy hagyjam a fenébe az egészet!

Előre is köszönöm a választ!

Bagi
utóirat: tudom, hogy off ebben a témában, de még ezt beszéljük végig röviden. Köszi!

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3348
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: kapu48 » 2016. december 16. péntek, 18:33

Ez van! Ha minden út Rómába vezet!

vargham Ajánlja a jobbik és nehezebb módszert.
Ami már bizonyos gyakorlatot igényel!

Én ajánlottam a könnyebb, STM32Fxx <-> arduinoba integrálás módszerét!
Beszúrva a Linket, ahol ezzel foglalkoznak fórúm oldalakon keresztül.
És bizonyítottan eléggé pezseg az oldal, minden megtalálható benne.

Nem kel újabb IDEt megtanulni, csak Arduinon belül, az ARM plusz lehetőségeinek kihasználását kel megismerni.
Kezdőknek ez könnyebben járható út szerintem.
Installation on Windows:
http://www.stm32duino.com/viewtopic.php?f=20&t=32
És nekik még ez is elég a feladataik megoldásához.

Mind 2 módszer meg kel ismerni, tanulás nélkül ez nem fog menni!

vargham
Chipgyilok
Hozzászólások: 275
Csatlakozott: 2014. január 8. szerda, 8:32
Kapcsolat:

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: vargham » 2016. december 18. vasárnap, 15:53

bagizoltan írta:Szia wargham!
Az a baj, hogy nem értitek Ti gyakorlott programozók, hogy mit nem ért egy kezdő gyakorlatlan emberke.
feladtam kb. a negyedénél

A Vargha jó lesz szimplán is, nem vagyok lengyel. ;-)

Gyakorlott programozó? Attól függ, hogy az mit jelent. :-) Nem biztos, hogy az vagyok, vannak nálam sokkal gyakorlottabbak, mikrokontroller területen pedig pláne. Meg különben is mitől lesz valaki gyakorlott?

Én így értem: Először mindenki gyakorlatlan. Csak néhányan nem adják fel. Ha pofára esnek, újra nekifutnak. Akárhányszor. És minél többször esnek pofára, annál többet tanulnak. Így lesz belőlük gyakorlott. :-)

Egyébként amit nem értesz, arra keress rá a neten. Próbáld ki. Olvass dokumentációt. Próbáld ki másképp. Égjen el az MCU, olvadjon a műanyag, ne sajnáld! :-) Aztán gyere ide, és meséld el, hogy hányféleképpen nem sikerült. :-)

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3348
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: kapu48 » 2016. december 18. vasárnap, 17:52

Miért ijesztgeted?
Nem ég az le olyan könnyen!

Velem már előfordult, hogy fordítva dugtam rá az USB tápra!
És túlélte mindkettő! Gondolom az USB áramkorlátozásénak köszönhetően.

bagizoltan
Bitmanipulátor
Hozzászólások: 128
Csatlakozott: 2015. december 8. kedd, 19:52
Tartózkodási hely: Budapest

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: bagizoltan » 2016. december 19. hétfő, 10:59

Sziasztok!

Biztosan én kérdezek rosszul, de kb. annyi infó kellett volna - amit meg is kaptam több kör után - hogy igen, megy Arduino alól a fejlesztés STM32 alapú modulokkal!! (ugye jól értelmezem a kapu48 által küldött linket?)

Értem, hogy tanulni kell, és senki nem fogja megtanítani nekem, értem, hogy utánna kell olvasni stb. Értek mindent!
Teljes tiszteletem mindenkinek aki válaszol egy-egy bugyuta kérdésre, de jellemzően egy igen-nem helyett olyan linkeket és bonyolult infókat adtok, amivel ugyanannyi idő alatt boldogulok, mintha nem is kérdeztem volna! És most nehogy felkapjátok a vizet, men akarok bántani senkit, és köszönettel tartozom a válaszokért.

Köszi az off lehetőséget!

Bagi

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3348
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: kapu48 » 2016. december 19. hétfő, 14:34

Szerintem, ha tovább akarsz a témáról beszélgetni?
Menjünk át ide: STM32F103C8T6 kérdés
viewtopic.php?f=32&t=1958

Ha más is rákeres, a témára itt könnyebben megtalálja, és nem kel az egészet leírni újra!
Már a válaszomat is ott találod meg!

apeape
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2017. november 2. csütörtök, 11:01

Re: SD kártya eltávilítása és újrainicializálása

HozzászólásSzerző: apeape » 2017. november 18. szombat, 19:40

Már 20 napja szívok avval , hogy SD kártyára vegyek adatokat. Végig olvastam a fórumnak erre vonatkozó részét <bagizoltan> járt ebben a cipőben kb egy évvel ezelőtt.
Több programot bemásoltam a YouTube.-ról , de egyik sem látta a kártyát. Sajnos angolul nem tudok, ezért nem sokat értettem belőle .
Már vettem 2 db új adatgyűjtőt és egyikkel sem működött.
- A hiba : nem sikerült a kártya inicializálása, az alábbi szöveg van a soros monitoron :

opening datalog.txt
error opening Vх±½¹Initializing SD card...Card failed, or not present
error opening datalog.txt
error opening datalog.txt

- most a legutóbbi program előre gyártott és itt található : ...ARDUINO 101\arduino-1.0.1\libaries\SD\examples\Datalogger
tehát , mindenkinek ott van a gépén.
- látszik , hogy az ARDUINO 1.0.1-et használom, úgy írtátok az a stabil
- az egyik kártyám 2GB a másik új 4GB
- kártyákat FAT -ra formáztam " a win7 a FAT és FAT32 -öt ajánlotta, akkor gondolom a FAT = FAT16-al "
- kártyaolvasóim : CS - SCK - MOSI - MISO - VCC - GND x- x- x- GND - +3,3 - +5 - CS - MOSI - SCK - MISO - GND
az SCK -t tekintettem CLK -nak
- ARDUINO UNO-m van több is és itt úgy tudom a lábak kötöttek :
CS - - D10 és D4 lábon próbáltam , mert itt láttam , hogy program függő
MOSI - - D11
MISO - - D12
CLK - - D13
Én teljesen amatőr vagyok , csak hőmérsékletet szeretnék mérni a lakásban és a radiátor ki és bemenetén. Ebben már nagyon jó vagyok, csak nem tudom eltárolni és a soros monitor nagyon hamar betelik.
Az 1.0.1 program csak számokat tud , de az 1.8.5 .-ön van plotter , de ez is csak 500 mérést lát , utána elvesztem az előző adatokat.
Tudna valaki egy atombiztos programot írni nekem, amivel biztosan be indul a kártyám és 10 egymást követő számot tudna rögzíteni.
Most írok először a fórumba és nem tudok képet beszúrni, különben tettem volna be fényképet és skiccet.
LEHETŐLEG EGYSZERŰ SZAVAKKAL ÍRJATOK !!! Mintha a lapát kezelési utasítását küldenétek nekem .

Bemásolom a programot is : kommenteket kiszedtem , hogy rövidebb legyen

Kód: Egész kijelölése

                                                      "   x x x x x x x x x x x x x x x  "
/*    DATALOGGER  */

#include <SD.h>
const int chipSelect = 4;

void setup()
{
 Serial.begin(9600);
   while (!Serial) {
    ;  }      // ERRE A PONTOS VESSZŐRE NEM TUDOM MI SZÜKSÉG VOLT , DE NEM ÉN VOLTAM
              // A FORDÍTÓT NEM ZAVARTA   

  Serial.print("Initializing SD card...");
    pinMode(10, OUTPUT);
    if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
       return;
  }
  Serial.println("card initialized.");
}

void loop()
{
  String dataString = "";
  for (int analogPin = 0; analogPin < 3; analogPin++) {
    int sensor = analogRead(analogPin);
    dataString += String(sensor);
    if (analogPin < 2) {
      dataString += ",";
    }
  }
  File dataFile = SD.open("datalog.txt", FILE_WRITE);
  if (dataFile) {
    dataFile.println(dataString);
    dataFile.close();
    Serial.println(dataString);
  } 
  else {
    Serial.println("error opening datalog.txt");
  }
}


Vissza: “Arduino / C-nyelvű programozás (AVR-Duino, EthDuino, Arduino, Diecimila)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég