Sida 1 av 3

Dags för dsPIC!

Postat: 7 juni 2007, 01:23:30
av $tiff
Nu har äntligen en tumme lossnat, jag har kommit till skott och sparkat igång en dsPIC30F4012. :!:

Jag har redan gjort ett "labkort", vars syfte kommer vara hemligt tills jag genererar lite fler resultat.

Microchip är trevliga när det gäller supporten. MPLAB C30 (komplett IDE med C-kompilator) gratis studentversion med vettig begränsning är gött! Jag kör på en lånad ICD 2 så länge (tack micke_s).

Just nu ligger jag på nivån "Blinka två lysdioder med en 118 MHz kvasi-DSP-processor". Att köra den så snabbt är dock mest dumt, eftersom chippet i sig slukar många gånger mer än lysdioderna (den behöver kylfläns då!) :doh:

Innan jag gör något kul så måste jag sparka igång ett riktigt UART-bibliotek med ringbuffert och avbrottshantering och allt detdär viktiga, det håller jag på med just nu (tar mer än en eftermiddag på en ny plattform...). :hacker:

Tänkte mest höra om det är någon som vill dela med sig av färdiga gottepåsar, det är ju lite dumt att skriva allt två gånger om man kan undvika :)

Mer info kommer i takt med eventuella framgångar!


dsPIC-relaterade trådar i forumet:
Propeller, AVR32 eller vad?
Börja med DSP. Tips ?
Problem med programmering av dsPIC
Dåliga resultat från 10bit A/D dsPIC30F4011
Blivande guiden: µC bortom 8 bitar

Postat: 7 juni 2007, 10:35:31
av MicaelKarlsson
Låter ju kul! :D

Lycka till!

Postat: 7 juni 2007, 10:38:31
av karlstedt
Är projektet så hemligt så du inte kan visa en bild på labbkortet?

Lycka till iaf!

Postat: 7 juni 2007, 16:43:04
av JimmyAndersson
Jag har några dsPIC'ar, men det tänkta projektet fick flytta ner på prioriteringslistan, så jag har inte programmerat något än.

Det ska bli intresssant att följa den här tråden! :)

Postat: 7 juni 2007, 20:24:35
av pheer
Om du kör i C kan denna vara användbar för decimaltalsdivision med avrundning:
Har inte kollat på ett tag, men det är inte helt omöjligt att de fixat bättre
stöd för decimaltalsinstruktionerna i C30 nu.

Kod: Markera allt

;------------------------------------------------------------------------------
; fractional DivF(fractional a, fractional int b)
; Cond.: 	a < b, b != 0
; Inputs: 	fractional a
; 			fractional b
; Returns: 	a/b, 0-65535 (= -1 - 1)
;------------------------------------------------------------------------------
.text
_DivF:	;
	MOV	W0, W2
	MOV	W1, W3
	REPEAT	#17
	DIVF	W2, W3
	RETURN


Postat: 8 juni 2007, 04:16:31
av bearing
Ser att du länkat till tråden "Problem med programmering av dsPIC". Jag löste problemet genom att bygga en ICD-klon. Den fungerar som programmerare, men inte som debugger (för mig).

Vad använder du för programmeringsenhet?

Postat: 8 juni 2007, 09:34:42
av Micke_s
Misstänkter att han använder min :lol:

Postat: 8 juni 2007, 09:35:25
av sodjan
> Vad använder du för programmeringsenhet?

Och vad var oklart med :

> Jag kör på en lånad ICD 2 så länge...

Postat: 8 juni 2007, 18:24:17
av bearing
Jaha, hade inte läst så noga.

Postat: 29 juni 2007, 00:28:33
av $tiff
Äntligen dags för lite uppdatering!

Eftersom ni tjatar så mycket ( :roll: ) så bjussar jag på en inte allt för avslöjande bild:

Bild

Idag har jag fått igång mitt bibliotek med avbrotsstyrd UART, ringbufferthantering för in- och utgående data o.s.v. Efter en hel del bråkande med en besvärlig statusflagga fick jag böja mig för en lite annan lösning för att få det att funka bra. Jag tror seriöst att det är något fel på just den flaggan.

Imorgon (tittar besviket på klockan) sparkar jag förhoppningsvis igång PWM-modulen.

För övrigt har jag skaffat mig en egen ICD2 så jag kan leka när jag vill utan att behöva bootloader.

Edit: Pekade om bild

Postat: 29 juni 2007, 00:54:06
av Micke_s
Nice bild.
Så nu har du chansen att bränna din egen istället :lol:

Postat: 29 juni 2007, 04:14:25
av Johan.o
Jag är mycket nyfiken på vad det ska användas till, hmm..
:humm:

Svårt att läsa vad det står på kristallen, för den snurrar inte runt i 30MIPS på bilden antar jag?

Blir lite avundsjuk, nästan så jag också måste försöka att klämma in
lite dsPIC pulande under sommaren också. Fuskigt, ni Civilingenjörer
har ju fler sommarlov än vi högskoleingenjörer :wink:

Postat: 29 juni 2007, 11:44:35
av $tiff
Fler sommarlov? Ja, jo, och fler omtentor och större studieskuld :doh: :)

Kristallen är en 7372800 Hz. dsPIC kör med PLL, valbar 4,8,16 ggr. Därefter har de ju instruktionsfrekvens på en fjärdedel av klockfrekvensen. Med denna kristall och 16*PLL kommer man så nära maximal exekverisngshastighet som möjligt ( 30 MIPS ). Fast i det läget eldar dsPICen på mer än vad den kan göra av med utan extra kylning...

Postat: 5 juli 2007, 14:56:06
av $tiff
Det var visst långt tills "imorgon".

Nu har jag fått igång PWM-skrället iaf. dsPICen är konsekvent, den bråkade mycket med mig här också!

Bild Bild
Vänster:
Grundtestet. En av de tre tillgängliga paren av komplementära faskorrekta PWM-utgångar med ställbara dödtider och flanker (lätt att invertera någon/båda av dem om det behövs). På bild 57.6 kHz PWM och 15 bitars upplösning (tror jag det var), vilket är den högsta tillgängliga upplösningen.
Höger:
Med lite eld i baken på dsPICen så kunde jag få den att spotta ut ~0.9 MHz PWM i 32 steg med komplemetära utgångar och dödtid! Anledningen till de taskiga vågformerna är att jag hade 2 m ful-kablar till oscilloskopet.

Stay tuned, more to come! :D

Postat: 5 juli 2007, 22:37:53
av $tiff
Jodå, nu funkar ADCn också. Den kan gå fort...
Väldigt lurig den med faktist! Det finns 4 S/H till en ADC som man kan konfigurera tills man mår illa (vilket jag gör nu). Vitsen är att kunna läsa av upp till 4 samplingar tagna i exakt samma ögonblick.

ADC + höghastighetsPWM, kan det bli något? :)

Nu tror jag att jag låter dsPIC ligga och vila några dagar och leker lite med AVR igen, de är snällare!