[ arakis @ 15.09.2011. 05:43 ] @
Da li je moguce napisati software za recimo pic24 ili pic32 mikrokontrolere koji pri startu cita recimo prvih 100 reci sa kartice i ucitava u svoju programsku memoriju, zatim izvrsava tih 100 reci, koje bi bile recimo neki meni/

Preko tog menija izaberes program koji zelis da startujes, on kaze pic-u na kojoj poziciji se nalazi taj program u kartici, on ubaci zeljeni prog u svoju prog memoriju i otpocne izvrsavanje.

e sad ovo mi deluje kao da je izvodljivo, vecina novijih pic-ova dozvoljava da se pise i brise program memorija od strane samog pic-a. ono sto me interesuje jest koliko je ovo prakticno izvodljivo sa obzirom da flash memorija ima ogranicen broj upisa, tj koliko bi trajao dati pic, i ako je ovo neprakticno da li postoji nacin da se koristi externa memorija kao program memorija a da se pritom ne izgubi na preformansama izvrsavanja programa. recimo neka brza RAM memorija.
[ bogdan.kecman @ 15.09.2011. 06:21 ] @
ucitavanje koda sa sd-a u flash se ne isplati - mnogo brzo bi rikno flash ali postoje piconje koji umeju da izvrsavaju kod iz ram-a (na primer PIC32MX795F512L ) tako da mozes externe programe / funkcije da drzis na SD-u ili u nekom externom eeprom-u :) ... imas primer uz mplab8 u "MPLAB C32\examples\c32_examples\ram_execution" kako se to radi, tako na primer mozes da izbacis veci deo svog programa u externi eeprom i da ucitavas funkcije kaki ti trebaju .. opet si naravno limitiran ram-om (taj pic32 ima samo 128k ram-a ako se dobro secam) a i mplab nije bas lagan za te operacije, realno ne mozes da odjednom iskompajliras 200 funkcija koje ces da sibnes na eeprom nego mora jednu po jednu ... pogledaj primer da ne naglabam bez potrebe :)

imas nesto prilicno zanimljivo sto radi malo drugacije, pogledaj http://www.cpustick.com/. To ne radi to sto si ti mislio ali je "os na chipu" sa prilazom sd-u etc etc .. pogledaj kad stignes zanimljivo je, podrzava cudo mcu-ova + usb client, usb host, ethernet, uart ... programi se pisu u basic-u (na zalost) ali to sve radi vrlo dobro .. pogledaj primere .. u basic-u nacukas sta oces, on sacuva te basic programe lokalno, kazes mu koji da izvrsi ... radi ko gwbasic nekad na dos-u, interpretira taj basic program, ali kao sto rekoh radi zastrasujuce brzo... ima podrsku za sve zivo ... ko voli basic to je za njega extra okruzenje ... a okacis se na njega seriskom portom i kao nekad pod dosom, imas editor i vozi :)


[ bogdan.kecman @ 15.09.2011. 06:28 ] @
btw ako nisi vezan bas za pic (a ne vidim sto bi bio) mnogo je iskusnije da pogledas arm .. cortex m3 ima varijante koji mogu da izvrsavaju kod sa externog ram-a, dakle stavis mu 10M rama i izvrsis kod odande direkt :) .. trazi ARM koji ima EMC (external memory controller) - na primer LPC178x/7x. Ovo doduse nisam nikad probao ali bi trebalo da radi 1/1

[ arakis @ 15.09.2011. 06:49 ] @
ova arm varijanta deluje kao ono sto mi treba, e sad, nizam vezan za pic, osim sto za njega jedino ima programator Pickit 2, kolko kosta programator za te lpc arm chipove i gde kod nas ima da se nabavi, sporedno pitanje jel moze da ga programira bus pirat ili blaster, (da utepam 2 muve jednim udarcem) jedino mi je ogranicenje lemljenje tj neverujem u svoje sposobnosti tako da bilo sta manje komplikovanjije od tqfp nebi islo, verovatno bi preveo vise vremena proveravajuci da li sam sve dobro zalemio nego razvijajuci dati projekat.

inace svrha projekta nije da vuce biblioteke sa sd-a, vec rposto su sd memorije ogromne, a ovi 32bitni MC mogu da adresiraju i do 4gb, mislio sam da napravim unierzalnu plocicu i da na karticu stavim recimo 100 razlicitih programa koje bi menijem izabrao i dati mc izvrsavao.

-konkretna ideja mi je da sve spakujem na plocicu koja bi bila indenticna replika(po dimenzijama) nokia 3310, i na njoj bi stavio battery/power managment ic, tako da bi dobio ekran, tastaturu, bateriju........ i sve to da ne moze da se prepozna razlika izmedju pravog fona, jedino bi promenio jeck da sa nekim visepolnim micro molex-om sa recimo 30 pinova, preko kojih bi vrsio interfejs sa drugim periferijama, dodao bi i stereo jack, sa najosnovniji EUSART interfes, RX,TX, gnd. ili i2c...
[ bogdan.kecman @ 15.09.2011. 06:52 ] @
arm se pece preko jtag-a dakle bus blaster radi bez problema .. a trebalo bi da moze i bus pirate da ga spece
[ arakis @ 15.09.2011. 06:58 ] @
sweet
[ the_tosic @ 15.09.2011. 08:07 ] @
@arakis posto videh pre neki dan da si postovao na etf forumu.
Ne znam koliko dobro stojis sa arhitekturom racunara (virtuelna memorija, cache) i sa operativnim sistemima (kontekst, zamena konteksta itd)
Na rti imas predmet Sistemsko programiranje ir3sp. Za domaci smo radili program za upravljanje virtuelnom memorijom na arm-u (nista komplikovano oko 200-300 linija koda, bez i/o modula to je radio asistent).
Nas program ucitava program sa HD (nismo mi realizovali citanje al nebitno) u pageFile (isto na hdd) i dinamicki po potrebi stranicu po stranicu ucitava u memoriju i izvrsava je. Taj nas program se izvrsavao u emulatoru arm-a tako da bi glat uz izmene mogao i na pravom arm-u. Jedini "problem" sto bi znaci trebali da mu se dodaju moduli za ulaz/izlaz sa sd kartice itd...
Sad u septembru za prj iz tog predmeta radjena zamena niti kada im istekne vreme cekanja (ali bez virtuelne memorije).
Kontam da ta dva projekta mogu da ti budu osnova za neki mali OS sa virtuelnom memorijom i time sharingom.
[ arakis @ 15.09.2011. 08:24 ] @
Polozio sam AR, ali brate koliko su dosadne lab vezbe bile nemogu da ti opisem.
inace ja sam Telekom odesku i najblize stos sam/cu prici nekom mc je par desetina metara kod kolega iz susedne ucioncie. :d.

koji arm ste koristili?
[ the_tosic @ 15.09.2011. 09:00 ] @
Intel XScale PXA255 odnosno emulator te plocice :).
[ bogdan.kecman @ 15.09.2011. 09:16 ] @
Citat:
the_tosic: Intel XScale PXA255 odnosno emulator te plocice :).


PXA255 je XSCALE tj ARM V5TE, dakle CPU ne MCU... Nista protiv doticnog (ja bi onda radije isao na ARM9 nego na XScale) ali to nije bilo pitanje OP-a. Sa CPU-om se te stvari rade potpuno drugacije posto CPU svejedno ima externu memoriju (sto za data sto za ram) dok MCU uglavnom niti moze da izvrsava ram (zavisi od arhitekture) niti moze direktno da adresira spoljnu memoriju (osim rektih primeraka sa EMC-om) ...Dakle ovo sto je pitao za CPU je "jedini nacin" za radi, dok sa druge strane MCU radi skroz drugacije
[ arakis @ 15.09.2011. 09:23 ] @
jel su arm-ovi jedini MCU sa externom kontorlom memorije, pazi nemora da bude 32bitni, interesuje me ko sve proizvodi mikrokontrolere sa eexternom ontrolom memorije
[ arakis @ 15.09.2011. 09:38 ] @
nasao sam da neki pic-ovi imaju EMI external memory interfejs, konkretno pic18f87j10 e sad koliko utice na performanse mikrokontolera kada izvrsava operacije iz externe memorije.
[ bogdan.kecman @ 15.09.2011. 09:40 ] @
jok, naravno da nisu ..

motorola, renesanse, TI, phillips, Cypress .. svi prave mcu-e sa EMC-om ..

za microchip znam sigurno da nema 8/16 bit koji imaju external memory controller, za 32bitne nisam siguran (ovi 32bitni picovi koje ja teram nemaju)
za AVR ovi mali (atmega i ekipa) nemaju, ovi veci 32bitni (npr AVR32 UC3) imaju SMC (static memory controller) sto je generalno ista prica - znaci dodas externi sram u addressed space mcu-a, e sad ne znam dal AVR moze da izvrsava program koji se tu nalazi ili mu je to samo RAM..
[ bogdan.kecman @ 15.09.2011. 09:41 ] @
EMI je strasan .. pogledaj ww1.microchip.com/downloads/en/AppNotes/00869b.pdf

EDIT: da pojasnim, EMI (koliko se ja secam, mozda gresim proveri) dozvoljava samo table read i table write i to je to ne moze da koristi to normalno
[ arakis @ 15.09.2011. 09:45 ] @
na osnovu ovog
http://www.microchip.com/stell...deId=1824&appnote=en012106
pise da imaju ovi 18f picovi EMI,
The PIC18F8XXX subset is made up of 80-pin parts that further extend the capabilities by providing access to external memory devices. Through the addition of external memory devices, an 8-bit application has the power to utilize unprecedented amounts of code or data; up to 2 Mbytes for an 8-bit microcontroller!

e sad ono sto me mnogo vise interesuje jeste uticaj na performanse, ako recimo fura 10MIPS sa internom memorijom kolikoi je uticaj ako se predje na externu
[ bogdan.kecman @ 15.09.2011. 10:00 ] @
dadoh ti link na taj datasheet ...

ako se ja dobro secam (rekoh moguce da sam ja jos onda nesto pogresno skontao) on ume samo da radi table read i table write preko EMI-a. E sad, moguce da je to u jednom od modova posto on ima modove u koje bacas mcu ako imas EMI pa onda mozes da vidis ili ne vidi interni ram .. ima fora da koristis externi ram za aplikaciju ali "samo" externi ram - nema internog onda uopste + ima nekih medju varijanti ali sa varijantom da ti je glavni program u mcu-u a funkcije napolju to nije radilo kako treba ...

kada je sve vani, trebalo bi da radi odlicno, imas verovatno neki wait state kao sto imas na 32bitnim mcu-ovima i svuda gde ti je cpu freq brzi od storage-a tako da imas umesto 4 takta dodatni ws. To je konfigurabilno tako da ti sam odlucujes koliki ces ws da stavis u odnosu na to koliko ti je brza memorija napolju - ako stavis brzu onda teras sa ws=0 i imas iste performanse kao da je unutra
[ arakis @ 15.09.2011. 10:05 ] @
hvala
[ goran_68 @ 15.09.2011. 11:12 ] @
Jedna od zanimljivih varijanti za igranje i učenje, a za koju ja nikad nisam imao vremena, je ARM sa dignutim Linuxom. ARM treba da ima MMU (Memory Management Units) a ako nema može uclinux:
http://www.uclinux.org


[ bogdan.kecman @ 15.09.2011. 11:15 ] @
vecina arm ploca koje teraju linux su arm7 i jaci (a8, a9) ... problem sa njima za "kucnu uporabu" je sto vecma dolaze u BGA pakovanju
[ goran_68 @ 15.09.2011. 12:11 ] @
To stoji kao problem.
Baci pogled na STM32-103STK od olimex-a. Razvojni kit dolazi sa gomilom stvari koje tebi trebaju (Ima čak i nokia 3310 LCD). Ukoliko ti je 60 evrića puno iskoristi njihovu šemu pa napakuj nešto sam.
[ bogdan.kecman @ 15.09.2011. 12:23 ] @
na 103STK ce tesko da turi lindzu :( .. inace po meni najjaci kit za pocetnike sa arm-om je http://www.futurlec.com/STM32_Development_Board.shtml

dzabe je (40$) a radi razbija ...

olimexov jtag nije los mada ja koristim vise bus bluster 2

no SMT32F103 nema externi ram kontroler a mislim da ne ume ni da izvrsava kod iz ram-a ... odlicna sprava ali nije bas vezana za op
[ goran_68 @ 15.09.2011. 14:14 ] @
Najjeftiniji koji izgleda ima MMC je STM32F205RBT6 i dolazi u LQFP.
[ bogdan.kecman @ 15.09.2011. 20:25 ] @
lqfp moze da se zalemi rukom :D (za razliku od bga) .. on ima FSMC (STM32F205xx i STM32F207xx) .. trebalo bi da radi lepo no nisam nikad probao... ono sto je mnogo bitnije je podrska za loadable code u samom kompajleru, da li moras da kompajliras 10 puta pa da cupas lokacije ili mozes odjednom da iskompajliras sve u "virtelnom ram-u" sa "relocateable" kodom.
[ arakis @ 16.09.2011. 10:59 ] @
malo sam razmisljao dublje, koliko je ovo uopste izvodljivo, mislim na kompajliranje, soft pisem u c-u,
primer, pic32.
cuvanje na sd, upis pri paljenju na ram, pa izvrsavanje iz ram-a.
koliko je uopste izvodlivo pisanje u MPlabu soft koji bi se namenski startovao sa ram-a, kapiram da ako se pise u asembleru da nema nikakvih problema, ali kako kompajler da nateram da skokove i slicne stvari relativizuje u odnosu na trnutnu poz u memoriji..itd.

BTW, izvinjavam se za mali predhodni nesporazum, 128 kb bi mi bilo dovoljno po jednoj "aplikaciji" ,tj i mnogo manje, tako da pic32 odgovara, samo ako je izvodljivo preko C-a, hvala.

-sustina je da napravi univerzalni uredjaj za interfejs sa drugim cipovima, nesto kao Bus pirat, samo bez kompa.
e sad na kartici bi se cuvale razlicite vrste formata interfejsa.
recimo za interfejs sa max6675, ide SPI, ucitava 2 byta , nalazi relevantni podatak o temp unutar ta 2 byta, i prikazuje na ekran, ponavlja svakih 0.3s
onda drugi bi bio, emulacija UART terminala, salje preko uarta otkucano, i prikazuje na ekranu dobijeno. itd.
ili recimo logovanje neke voltaze kroz vreme, itd.......

posto takvih formata fakticki moze da bude bezbroj, a da nebi updatovao firmware svaki put kad zelim nesto novo, ovako bi jednostvno ucitavao preko SD-a.

-inace posto sami programi nisu nista komplikovani, pic32 mi je malo overkill, sta mislite o FRAM seriji msp430, oni imaju program mermoriju koja moze da se prepijuse nekoliko triliona puta...
[ goran_68 @ 16.09.2011. 11:36 ] @
Možda je jednostavnije da preko menija odabereš tip interfejsa (i2c, SPI, UART,1-Wire...), jednu ili više lokacija sa kojih nešto čitaš ili pišeš pa da podatke prikažeš na LCD? I sve to ponovo u intervalu koji takođe možeš zadati. Ako je potrebna matematika, da bi dobio čitljiv podatak, možeš i da nju definišeš preko tastature. Dakle, tvoj softver bi podržavao sve poznate interfejse i ne bi imalo potrebe za izmenom. Ukoliko nema bagova ;). Parametre za nekoliko najčešće korišćenih primera komunikacije (ili poslednjih nekoliko) možeš čuvati u eepromu pa ih zvati odatle. Kad izbaci neki novi čip sa poznatim interfejsom nema izmene softvera, sve je tu.
[ arakis @ 16.09.2011. 14:03 ] @
fora je sto bi da napravim mogucnost da se dodaje custon interfejs bez potrebe menjanja firmware-a, ali sto vise razmisljam kontam da je dosta 1 MB za cuvanje svih interfejsa, tako da verovatno je bojle koristiti eeprom od sd-a
[ bogdan.kecman @ 16.09.2011. 14:33 ] @
vidi ovako, "nebitno" je gde cuvas externe funkcije, neki externi i2c eeprom, sd kartica ili nesto peto ..

sto se C-a tice, nije problem, jedini je cim sto nije lako iskompajlirati tu externu funkciju "samu za sebe". Dakle ono sto bi morao da radis je da u linker skriptu definises mesto za tu funkciju i onda da imas tvoj program ceo + tu funkciju koja je u #code mojaexterna i onda da kompajliras svaku funkciju sa tvojim kodom. Dakle svaki put kada ti treba tvoja funkcija ti iskompajliras CEO app samo je u #code mojaexterna svaki put druga funkcija. Onda iz HEX-a izvadis sve sa lokacije mojaexterna (koja znas gde je posto si je definisao u linker skriptu) i to zapamtis kao neki obj koji onda drzis u eeprom-u/sd-u ili saljes preko rs232 ..

dakle nije nemoguce al je "blago smaranje"

bas je na mchip forumu relativno skoro neki lik pitao da li moze da napravi "pic sa virtualnih 5M rama" da bi odjednom iskompajlirao sve funkcije i dobio je odgovor da ne mere
[ arakis @ 16.09.2011. 14:38 ] @
znaci zezanje, whoo hoo
[ bogdan.kecman @ 16.09.2011. 14:39 ] @
elem, sad sam tek video "sto bi ti to pravio" i mislim da gresis debelo... mnogo je iskusnija varijanta ono sto radi pickit2. Dakle imas sitan interpreter na pic-u koji ne ume da radi "nista" .. nego bitbanguje 5 linija i setuje 2.5-13V na sestoj. Ti mu onda posaljes skript koji on izvrsi (na pickit2 ga saljes preko usb-a, ti mozes da ga cuvas na sd ili u nekom i2c ili spi eepromu). Takav setup ti daje mogucnost da implementiras bilo koji skript lagano te da se takva sprava moze koristiti od toga da upise SVF u fpga do toga da iscitava eeprome i slicno ... kako radi takav sistem mozes da vidis u sourcetu pickit2, naravno tebi treba dodatno par stvari (varijable u koje upisujes iscitane vrednosti, ispis istih na ekran etc etc, ali nista strasno)... takav pristup omogucuje da pickit2 pece i atmele radi kao logic analyzer, signal generator etc etc ... mnogo bolje da imas dobar interpreter nego da se siljis i pises kod koji dinamicki ucitavas, posebno sto sa 80MHz pic32 mozes da interpretiras kod extra brzo. Takodje pogledaj jos jednom onaj stickos, on ima tacno to sto tebi treba ... interpreter, programe cuvas na sd-u, imas ethernet usb .. ima na sebi editor za programe .. sve radi 1/1 ..
[ arakis @ 16.09.2011. 15:13 ] @
ali mi je basic :p. da ima u c-u odma bi se primio,
ali upravu si taj stick os deluje kao prava stvar,
ili nesto slicno sam da razvijem, naravno dosta bazicnije(pun intended),(kapiram da bi se oteglio)
[ bogdan.kecman @ 16.09.2011. 15:24 ] @
zavisi sta je cilj ali je generalno lakse/brze da napises brdo programa za chipos koji rade to sto ti treba nego da pravis chipos pa na njega da dodajes programe :) ... no kao sto rekoh, zavisi sta je cilj, ako je cilj sprava koja bi isla u prodaju (citaj buspirate portable) onda je malo truba da koristis tudji proizvod. Ako je to klasican projekat za tebe + open source projekat - onda je bolje da iskoristis chipos .. ako je cilj da ucis - uradi oba :D
[ arakis @ 16.09.2011. 17:25 ] @
ako budem imao vremena razvicu ga sam, a ako ne , nista od toga, stvarno mi se svidja taj stickos ali ipak bi vleo nesto sam da razvijem.
polako mi se i pocetni principi javljaju u glavi, da sebi pojednostavim razvojni put, prvo cu "firmware" da razvijem okvirno u visual studio 2010 kao console app koji ucitava podatke iz datoteke, pa cu od datle da je portujem na pic, naravno sve vreme imajuci u vidu de se portuje na pic.

nazalost sve to nakon sto zavrsim PID kontrolor za slolomnku, koji sam zakocio pre par meseci i sad mi bode oci.

ps. inace ideja mi nije bila da prodajem, al sad kad spomene......
fora je u tome, da sam u poslednje vreme navatao gomilu 3310 i 3210 i 5110 nokia radi ekrancica, juce 3X5110 za 100 din :D, i nakon sto im iscupam ekran resto telefona mi bez veze pravi djubre u fioki. Kad malo bolje pogledas, jack,kontakt za bateriju, baterija ,16 dugmica, i ekran lako mogu da se iskoriste u istom kucistu ako napravis pcb indenticnih dimenzija kao original. i sad trazim nacin kako ovo da iskoristim. padale su mi razne fore napamet, Multimetar, Superprobe klon, ..... za sada mi deluje ova fora sa buspiratom kao najkorisnija, nazalost i najkomplikovanija.
[ bogdan.kecman @ 16.09.2011. 22:29 ] @
kreni sa superprobe-om, imas onaj klon prepisan u C-ju, uzmi neki "jos veci" pic i dopisi sta te jos zanima od funkcija i zbudzi u 5110 :) veruj mi bice interesantniji projekat od "stand alone bp-a" - evo ja se razmisljam de bi mogao da mi treba stand alone bp i ne mogu da smislim vec neko vreme - gde god radim bilo koji debugging - imam laptop u blizini
[ arakis @ 17.09.2011. 10:13 ] @
pazi ni ja se ne bakcam sa elektronikom dalje od pola metra od kompa, ali opet mi se svidja ideja da se sastavi nesto kao univerzalni sistem za interfesj. Bus pirat je extra, ali da razvijes sam svoj interfejs za svaki chip posebno bi bilo dosta komplikovanije od ovoga sto sam ja zamislio. Nemam pojma, za sad ovo su samo varnice pred paljenje sijalice iznad glave :D. Verovatno nesto izmedju superproba/miltimetra i bus pirata ce na kraju da se iskombinuje.
[ bogdan.kecman @ 17.09.2011. 10:17 ] @
za bus pirate je extra lako da napravis dodatni interface - tome sluzi binary bit bang mode
[ arakis @ 17.09.2011. 10:38 ] @
cekaj moguce da sam se ja istripovao, ali zar netrebas prvo da napravis celu windows/linux aplikacuju?
[ bogdan.kecman @ 17.09.2011. 15:39 ] @
Citat:
arakis: cekaj moguce da sam se ja istripovao, ali zar netrebas prvo da napravis celu windows/linux aplikacuju?


za bus pirate? napises skript za chat za linux ili za neki od fancy terminala za windoze .. ima vec brdo skripti koje rade brdo stvari ... dodatno koji je problem da napravis "aplikaciju" - imas 2 linije da otvoris seriski port i to je to, posle to ga saljes na isti sta hoces i bitbangujes izlaz, dakle pises odma direktno implementaciju protokola u svom omiljenom jeziku, os c os c++ os php os tcl, perl, python, php, ruby ili visual basic .. sta ume da pristupi seriskom portu u tome implementiras taj custom protokol koji te zanima za koji god device (mada bp vec pokriva sve bitne protokole ne znam sta ti fali od istih ?) ... ne postoji teorija da ti je teze da implementiras protokol za BP nego za taj device koji bi napravio... moze samo da bude lakse posto za bp pises protokol u bilo kom jeziku na kompu dok bi za taj tvoj device morao da kompajliras posebnu relocateable funkciju sa limitom max velicine koju onda prebacis na ... ma daj ... ko sto rekoh za protokol - bp je keva ako imas komp u blizini ... stand alone sprava je ok mada meni bas bas nikad nije trebala niti mislim da bi ikad imao potrebe za istom... mnogo je iskusnije napraviti dobar multmer u 5110 kucistu ... sa nekim dspic-om ili pic32 .. neki A/V/R/L/C/ESR metar u lepoj kutiji sa tim spi display-em .. doduse meni je u planu da napravim jedan koji ce biti u velikoj desktop kutiji sa 320x200 tft-om :) ali neka super probe varijanta u 5110 kucalu bi bila EXTRA projekat.
[ arakis @ 17.09.2011. 16:23 ] @
pih a sve sam lepo smislio, ok multimer it is, samo cu obavezno da ga implementiram sa 4 ili vise kanala, da moze da meri ulaznu i izlaznu snagi i slicne cake.

malo pitanje kolko je podoban pic-ov ADC za precizno merenje voltaze, sa externom referencom naravno, tj da li da mu dodam i externi adc ili da koristim interni, brzina je ok posto za multimer ti ni netreba brzina vec preciznost.

p.s. jos nisam stigao da se bakcem sa piratom pa otud neznanje, tek teba da mi stigne free pcb v3 pa da ga sastavim....
[ bogdan.kecman @ 17.09.2011. 16:31 ] @
picov adc je skroz ok, samo mu das dovoljno vremena da odradi konverziju i naravno externu referencu