Skocz do zawartości

[C] Programowanie AT90PWM3


AE

Pomocna odpowiedź

Cześć,

Zadam z pozoru dość trywialne pytanie. Jak zaprogramować mikrokontroler AT90PWM3?

W datasheet-cie (strona 179) jest jasno napisane, że są dwa "typy" SPI. Jeden (domyślny), standardowy SPI do komunikacji, a drugi alternatywny służący do programowania. W rejestrze MCUCR, bit 7, czyli SPIPS musi być 1, aby móc korzystać z tego alternatywnego SPI do programowania. Domyślnie jest ten bit ustawiony na 0 - zwykły SPI do komunikacji. To jest pierwszy uC, w którym coś takiego spotkałem i za bardzo nie wiem jak to ugryźć. Jak ustawić ten bit na 1?

Mam programator STK500.

Pozdrawiam

Link do komentarza
Share on other sites

A zerknij sobie na schemat SPI w tym procesorze. To nie jest drugi kontroler SPI, tylko drugi kanał tego samego SPIa.

Tak na szybko nie doczytałem się także żeby można użyć tego drugiego kanału do programowania. Na schemacie jest wyraźnie narysowany kanał A (przy czym widzę zależy to też od obudowy CPU ? i jest to prawda dla tej w 24 pinach), czyli domyślny. Co ma i swoje uzasadnienie, bo podczas programowania dochodzi i tak do restartu CPU, wiec kontroler SPI i tak jest ustawiony domyślnie.

PS.Szkoda że nie wkleiłeś tu linku do twojego PDFa, bo w tym co ja mam na stronie 179, jest tylko opis rejestru SPI, z które nie wynika nic o czym ty piszesz ? Znaczy się u mnie jest to strona 178.

Ale ja bym sobie poszukał jeszcze ewentualnych Errat do tego CPU, żeby się nie okazało, że w kolejnych wersjach krzemu ATMEL znowu nie zmienił zdania, co do tego który SPI jest tym do programowania.

Ogólnie twórcy tego procesora strasznie namieszali, robiąc różne funkcje tego samego bitu konfiguracyjnego dla różnej obudowy.

Link do komentarza
Share on other sites

Na stronie 179, gdzie jest opis rejestru MCUCR jest napisane takie coś: "Note that programming port are always located on alternate SPI port." Nieco wyżej jest napisane, że Initial Value bitu SPIPS wynosi 0. Dodatkowo jest jeszcze takie coś: "On 32 pins packages, SPIPS has the following action:

– When the SPIPS bit is written to zero, the SPI signals are directed on pins

MISO,MOSI, SCK and SS.

– When the SPIPS bit is written to one,the SPI signals are directed on alternate SPI

pins, MISO_A, MOSI_A, SCK_A and SS_A."

Właśnie dlatego trochę zgupialem z tym programowaniem. Programować można tylko z alternatywnego portu SPI, ale domyślnie jest zwykłe SPI. Tą "1" należy wpisać w kodzie i później go przerzucić do pramięci mikrokontrolera, ale, żeby to zrobić trzeba użyć SPI_A. Kwadratura koła albo czegoś nie rozumiem... 🙂 Ciekawa zagwostka.

Ogólnie mało osób się nim bawi. O informacje ciężko, ale zasłyszałem teorie, że należy poprostu podłączyć programator do SPI_A i podobno działa. Na razie robię płykę do niego, jak polutuje to spróbuje tej czarodziejskiej sztuczki:)

a tutaj jest link do pdf`a:

http://www.tme.eu/pl/Document/1128fee45423727e7b98f79a0d9e414a/at90pwm2_2b_3_3b.pdf

Link do komentarza
Share on other sites

Tzn. Mi się wydaje że trzeba przytoczyć to w całości, tzn:

Thanks to SPIPS (SPI Pin Select) in MCUCR Sfr, SPI pins can be redirected.

On 32 pins packages, SPIPS has the following action:

– When the SPIPS bit is written to zero, the SPI signals are directed on pins

MISO,MOSI, SCK and SS.

– When the SPIPS bit is written to one,the SPI signals are directed on alternate SPI

pins, MISO_A, MOSI_A, SCK_A and SS_A.

On 24 pins package, SPIPS has the following action:

– When the SPIPS bit is written to zero, the SPI signals are directed on alternate SPI

pins, MISO_A, MOSI_A, SCK_A and SS_A.

– When the SPIPS bit is written to one,the SPI signals are directed on pins

MISO,MOSI, SCK and SS.

Note that programming port are always located on alternate SPI port.

Z tego tekstu wyraźnie wynika że domyślnie aktywny kanał SPI zależy od obudowy procesora, co konstrukcyjnie jest nonsensem no ale widocznie projektanci ATMELA robili te CPU w primaaprilis.

Natomiast jak się zerknie na stronę 294 tej samej noty, to zobaczymy oto taki rysunek dotyczący programowania przez SPI.

Który znowusz sugeruje, że faktycznie do programowania jest używany kanał A ?

Teraz bądź tu mądry i pisz wiersze no.

Główny problem to to że procesory te są tylko w SMD, jak był dip, to wkładasz do podstawki przylutujesz parę kabli i sprawdzisz którym potem go zaprogramujesz. co prawda do SMD też są podstawki testowe, ale kosztują majątek. Jedynie przylutować procesor do płytki przelotki SMD na DIP i sprawdzić.

PS. Im bardziej przeglądam notę tego CPU tym bardziej podoba mi sie do robotyki.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Przytoczylem akurat ten cytat z datasheet`a, bo mam tego cudaka w obudowie SO32. Programowanie jest możliwe tylko z alternatywnego SPI (MISO_A, MOSI_A, SCK_A). Ma wiele ciekawych funkcji. W robotyce amatorskiej na pewno znajdzie zastosowanie. Szkoda tylko, że mało ludzi nim się bawi. Nigdzie nie udało mi się znaleźć bibliotego do eagla, więc zrobilem ją sam. PCB ciągle tworzy się. Jak tylko coś już zmajstruje to dam znać.

Link do komentarza
Share on other sites

Mało kto się nim bawi, bo mało kto wie że istnieje. grupa AT90PWm to kilka procesorów zaprojektowanych do specjalnych zastosowań, jak przetwornice, czy sterowniki silników BLCD, czy falowniki. Nie są też jakoś tragicznie popularne w handlu.

No i AT90 kojarzy się wielu z nieprodukowanymi już dziś pierwszymi AVRemi, może dla tego.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.