Firmware pre specialny logger
Napísané: 02 Aug 2021, 16:46
Caute borci,
potreboval by som vyvinut/vyrobit program pre nejaky procesor / pfga a pod, kto s cim pracuje a trufne si .
hardware si nadizajnujem sam.
Moja predstava je :
1: dam vediet co potrebujem aby procesor robil, ako rychlo a pod... vypocty a pod
2. dotycny clovek co si to vezme ze to spravi, teda ten FW pre procak, mi napise, aky procesor by bol podla neho na to ok ( resp. s cim ma skusenosti a vie, ze to bude na tom fungovat a bude moznost casom nieco navyse pridat).
3. nakreslim si medzicasom schemu podla toho, ako dostanem instrukcie ( ktore piny/porty budu pouzite, aky krystal clock a podobne).
4. obojstranne si schvalime ze vsetko je jak ma byt a mozeme na tom robit ( dotycny na FW, ja na HW).
5. nie je to projekt ktory ponahla, radsej to chcem v klude, dajme tomu aspon rozrobene do oktobra? a dotiahnute potom neskorsie.
____________________________________________________
A teraz v skratke co potrebujem + zakladne poziadavky (na zacatok nech nieco funguje)
Potrebujem nakodit firmware, ktory bude kontinualne citat 4 vstupy (fotodiodove).
- Data budu liezt z AD7386BCPZ - 4 kanalovy ADC, treba nastudovat DS koli obsluhe ( SPI komunikacia).
- AD prevodnik bude na 3.3V, takze priamo spojene s procakom, tiez na 3.3V beziacom. Hodnoty prichadzajuce budu 0-3.3V.
-Rychlost citania 100kSps, 250kSps prepinatelna switchom ( HIGH/LOW) - citat iba pri zapnuti zariadenia a potom celu dobu behu procaku uz ignorovat.
-hodnoty surove zapisovat na kartu (SD karta, asi 32GB kapacita, FAT16/32 formatovanie ( aby sa to dalo v pc stiahnut) - CSV alebo TXT subor, to je jedno, hodnoty oddelene ciarkou alebo medzerou alebo minusom, to je jedno). Staci aby sa vytvoril jeden subor, pridal prvy riadok HEADER data a potom do neho tlacit data. ( periodicky ukladat subor, aby sa nekoruptoval ked zariadenie vypnem. Pri 100kSpS to je dakych 0.8MB/s, 250kSps bude nieco okolo 2MB/s, co su neni horibilne rychlosti.
- cas - stahovat z GPS ( bude pripojene cez UART, klasicke NMEA spravy), cas ukladat v riadkoch k surovym datam raz za sekundu ( t.j. v 0 sekunde zacne riadok s casom a datumom, potom surove data pokracuju v dalsich riadkoch bez datumu a casu, az do dalsej sekundy, kedy zas pribudne aj datum/cas na sekundy presne. - najlepsie data datum/cas na koniec datoveho riadku ( koli neskorsiemu spracovaniu dat)
- nejaku jednu externu ledku, trebars cervenu, raz za par sekund nou bliknut, aby som vedel, ze zariadenie nezatuhlo dajako, proste ze to zije.
Ak treba pridat nejaku externu RAMku koli datam, staci napisat.
Nehram sa na spotrebu ani nic podobne, hlavne potrebujem aby to tahalo v poriadku a nemalo problemy ze trebars zabudne zapisat na kartu a pod.
K funkcii, ak treba kludne dat dva vstupy na interrupty napriklad ( start a stop vstup) , pridam si tam dve tlacidla a pokojne sa tym moze zapinat, vypinat logovanie. ( aby to nebolo viazane na vypnutie napajania).
Joo, este doplnim, kedze vela ludi to videlo ale nikto nic nepise, ze to nechcem zadarmo Cas nad niecim straveny nie je zadarmo a ja to samozrejme chapem.
potreboval by som vyvinut/vyrobit program pre nejaky procesor / pfga a pod, kto s cim pracuje a trufne si .
hardware si nadizajnujem sam.
Moja predstava je :
1: dam vediet co potrebujem aby procesor robil, ako rychlo a pod... vypocty a pod
2. dotycny clovek co si to vezme ze to spravi, teda ten FW pre procak, mi napise, aky procesor by bol podla neho na to ok ( resp. s cim ma skusenosti a vie, ze to bude na tom fungovat a bude moznost casom nieco navyse pridat).
3. nakreslim si medzicasom schemu podla toho, ako dostanem instrukcie ( ktore piny/porty budu pouzite, aky krystal clock a podobne).
4. obojstranne si schvalime ze vsetko je jak ma byt a mozeme na tom robit ( dotycny na FW, ja na HW).
5. nie je to projekt ktory ponahla, radsej to chcem v klude, dajme tomu aspon rozrobene do oktobra? a dotiahnute potom neskorsie.
____________________________________________________
A teraz v skratke co potrebujem + zakladne poziadavky (na zacatok nech nieco funguje)
Potrebujem nakodit firmware, ktory bude kontinualne citat 4 vstupy (fotodiodove).
- Data budu liezt z AD7386BCPZ - 4 kanalovy ADC, treba nastudovat DS koli obsluhe ( SPI komunikacia).
- AD prevodnik bude na 3.3V, takze priamo spojene s procakom, tiez na 3.3V beziacom. Hodnoty prichadzajuce budu 0-3.3V.
-Rychlost citania 100kSps, 250kSps prepinatelna switchom ( HIGH/LOW) - citat iba pri zapnuti zariadenia a potom celu dobu behu procaku uz ignorovat.
-hodnoty surove zapisovat na kartu (SD karta, asi 32GB kapacita, FAT16/32 formatovanie ( aby sa to dalo v pc stiahnut) - CSV alebo TXT subor, to je jedno, hodnoty oddelene ciarkou alebo medzerou alebo minusom, to je jedno). Staci aby sa vytvoril jeden subor, pridal prvy riadok HEADER data a potom do neho tlacit data. ( periodicky ukladat subor, aby sa nekoruptoval ked zariadenie vypnem. Pri 100kSpS to je dakych 0.8MB/s, 250kSps bude nieco okolo 2MB/s, co su neni horibilne rychlosti.
- cas - stahovat z GPS ( bude pripojene cez UART, klasicke NMEA spravy), cas ukladat v riadkoch k surovym datam raz za sekundu ( t.j. v 0 sekunde zacne riadok s casom a datumom, potom surove data pokracuju v dalsich riadkoch bez datumu a casu, az do dalsej sekundy, kedy zas pribudne aj datum/cas na sekundy presne. - najlepsie data datum/cas na koniec datoveho riadku ( koli neskorsiemu spracovaniu dat)
- nejaku jednu externu ledku, trebars cervenu, raz za par sekund nou bliknut, aby som vedel, ze zariadenie nezatuhlo dajako, proste ze to zije.
Ak treba pridat nejaku externu RAMku koli datam, staci napisat.
Nehram sa na spotrebu ani nic podobne, hlavne potrebujem aby to tahalo v poriadku a nemalo problemy ze trebars zabudne zapisat na kartu a pod.
K funkcii, ak treba kludne dat dva vstupy na interrupty napriklad ( start a stop vstup) , pridam si tam dve tlacidla a pokojne sa tym moze zapinat, vypinat logovanie. ( aby to nebolo viazane na vypnutie napajania).
Joo, este doplnim, kedze vela ludi to videlo ale nikto nic nepise, ze to nechcem zadarmo Cas nad niecim straveny nie je zadarmo a ja to samozrejme chapem.