Sida 1 av 1

PWM och SPI lagt på samma pinnar

Postat: 22 september 2011, 20:27:20
av Tekko
Är det inte lite korkat av Atmel att lägga SPI interfacet på samma pinnar som två utgång för PWM ? Rör sej om MEGA328, först var det amplitudreglering av sinusmodulationen av PWM ut i mjukvara, men det gick inte att göra med bra resultat, vilket jag valde att lösa med digitalpottar och sen modulera om till pwm igen med komparatorer.

Andra problemet var att jag skulle använda digitalpottar styrda över SPI men då ligger dessa jävla utgångsjävlar på samma förbannade utgångshelveten som mina PWM kommer ut på!! :evil: FAAN det e som om högre makter försöker säga "du skall hålla dig till analoga kretsar"

Upptäckte detta i morse vilket åter igen har satt käppar i hjulen för mitt projekt.

Pga dessa problem ovan så e det fan på gränsen att jag kommer välja att gå tillbaka till orginalideen med att använda 2-4st(16-32bit) CD4015 dubbla 4 utgångars skiftregister och ett lass resistorer per fas för att för att syntesera mina 3fas sinusar, problemet här e att varje fas kommer ta upp ett helt 160x100 kort, dvs 3st kort + kort för PWM och kraft.

Orginalideen:
Bild

Re: PWM och SPI lagt på samma pinnar

Postat: 22 september 2011, 20:28:31
av jesper
Det är väl bara att fixa SPI i mjukvara.
Ca. 5-10 rader kod.

Re: PWM och SPI lagt på samma pinnar

Postat: 22 september 2011, 20:36:33
av Tekko
Problemet där e ju då att man måste ha kunskapen att kunna skriva den koden från scratch då de inkluderade exemplen för SPI i arduinomjukvaran bara stöder de hårdvarudefenierade SPI utgångarna.

Re: PWM och SPI lagt på samma pinnar

Postat: 22 september 2011, 20:39:59
av mrfrenzy
Du kan använda arduinokortet som ett rent utvecklingskort och programmerare och köra vanlig C-kod från tex AVRStudio. Det är inte så långt till att lära sig när du har meckat lite med arduinomjukvaran.
Då finns plötsligt massor av exempelkod för både spi och pwm ute på nätet.

Re: PWM och SPI lagt på samma pinnar

Postat: 22 september 2011, 20:50:43
av Tekko
Oavsett vilken väg jag väljer att gå med detta projekt så funderar jag på att testa prata med en cd-spelarmodul från en kompaktstereo vars styrning troligen är SPI, brukar va serial clock och serial data på dom vilket kan vara = SPI interface, kan iofs även va I2C

Sen e det bara att luska ut vilka nuffror mellan 0 och 255 som motsvarar play, stop, pause, byta låt åt endera håll, snabbspola åt endera håll osv.

Samt att jag ska leka lite med prylar jag tatt hem från jobbet och se om jag kan prata med dom över RX/TX.

Re: PWM och SPI lagt på samma pinnar

Postat: 22 september 2011, 21:32:37
av sodjan
Du har säkert redan kollat det, men den aktuella processorn
kanske inte har valbara utgångspinnar för de olika enheterna.

Re: PWM och SPI lagt på samma pinnar

Postat: 22 september 2011, 21:56:34
av Tekko
Atmel tänkte uppenbarligen inte på att man kanske vill använda alla pwm pinnarna samtidigt som SPI, funderade på en större processor, tex MEGA2560 men jag tror inte mitt projekt är värt 300 spänn.

Re: PWM och SPI lagt på samma pinnar

Postat: 22 september 2011, 22:00:43
av Swech
Vad är det för hastighet på PWMen då?

Swech

Re: PWM och SPI lagt på samma pinnar

Postat: 22 september 2011, 22:10:02
av Tekko
Jag tänkte köra runt 64kHz pwm carrier och upp till nån kHz modulation. Funderade på att ha knappar för att kunna stega pwm bärfrekvensen upp och ner men om det hade gått att flytta spi till andra pinnar så hade jag inte haft någe utgångar kvar.

Såvida det inte går att använda pwm utgångar som vanliga digitalutgångar för andra saker genom att inaktivera den utgången i pwm delen och sen adressera en annan funktion till den utgången.

Ville lixom ha en LCD med också för att visa inställd pwm carrier frequency, moduleringsfrekverns, ström och spänning ut till motorn, men som sagt så är det slut på utgångar.

Re: PWM och SPI lagt på samma pinnar

Postat: 23 september 2011, 10:01:58
av hatten
Självklart går det att använda PWM-utgångarna som GPIO.

Annars har du väl två alternativ:
Byt port på SPI genom att använda "USART in SPI mode", se avsnitt 21 i databladet (doc8271)
Byt port på PWM genom att byta till en annan Timer/Counter. Om du behöver 16 bitars upplösning är du dessvärre låst till TC1.