Współpracuję z PIC16 i PIC18 od ponad trzech lat i chciałbym również poznać AVR. Nie mam na myśli konkretnego projektu, ale chciałbym spróbować z różnymi architekturami. Chciałbym otrzymać raport zgodności na temat PIC i AVR.
Oprogramowanie uC
Znam Zgromadzenie i C dla PIC16 i PIC18. W jaki sposób warianty montażu i C dla mikrokontrolerów AVR różnią się od wariantów PIC? Czy jest wiele różnic?
Oprogramowanie na PC
Jakie oprogramowanie byłoby potrzebne do skompilowania i złożenia moich programów dla układów AVR? Czy to jest darmowe i gdzie mogę je pobrać?
Sprzęt do programowania
Użyłem Wisp648 VOTI do programowania PIC, ale ta płyta nie może programować AVR-ów. Czy muszę kupić programator, czy w sieci są dostępne obwody, które sam mogę zbudować?
Sprzęt uC W
przypadku PIC bardzo często korzystałem z PIC18F4620 . Szukam AVR z podobnymi funkcjami. Funkcje, które lubię to:
- Wewnętrzny oscylator
- Timery
- Wersja 5 V i 3,3 V.
- ADC
- MSSP z obsługą I2C i SPI
- (E) USART
- PWM
- Wiele styków we / wy
- > = Pamięć programu 32kB,> = 2kB RAM
- Pakiet DIP
Który układ AVR miałby te same funkcje? Pakiet jest przełomowy, naprawdę chcę DIP, PDIP lub SPDIP. Czym byłby AVR z porównywalnymi funkcjami?
Warianty SPI i I2C
Powiedziano mi, że Microchip ma własne warianty protokołu SPI i I2C. Często używam urządzeń podrzędnych SPI i I2C firmy Microchip w połączeniu z PIC. Czy będę mógł używać tych układów (23K256, RTC, ENC28J60, ...) w połączeniu z AVR? Ponadto, czy byłoby możliwe połączenie AVR i układu PIC za pomocą I2C lub SPI?
Odpowiedzi:
Oprogramowanie uC
Zestawy instrukcji PIC i AVR są podobne, ale nie chciałbym zaczynać programowania AVR w asemblerze. Program w C, z Atmel Studio. Jest dostarczany z wersją gcc AVR i ma naprawdę dobry deasembler, który pokazuje linię napisanego przez Ciebie C, a pod nią wynikowe instrukcje montażu, bardzo przydatne. Chciałbym również pobrać WinAVR .
Oprogramowanie komputerowe
Użyj Atmel Studio . Nie przejmuj się Eclipse, Notatnikiem programisty lub jakimkolwiek innym przypadkowym IDE, którego używają ludzie. Atmel Studio jest oparte na Visual Studio, ma wszystkie wtyczki dostępne od Atmel i ma wbudowany dobry symulator.
Sprzęt do programowania
Istnieje wiele tanich programistów AVR, takich jak Bus Pirate, ale dostań Atmel ICSP . Jest to całkowicie warte dodatkowych kosztów, jeśli zamierzasz wykonać więcej niż jeden projekt AVR. Wykorzystuje USB i można nim sterować z poziomu Atmel Studio.
Sprzęt uC
Istnieje narzędzie do selekcji, ale ogólnie rzecz biorąc, typowy sprzęt AtMega klasy niskiej to:
Przejście na układy o wyższej wydajności spowoduje zakup większej liczby zegarów i PWM. Ilość dostępnej pamięci flash i SRAM zależy od konkretnego układu. Większość części AtMega jest dostępna w PDIP, przy czym naprawdę dużą liczbą pinów jest QFP.
Warianty SPI i I2C
Możliwe jest użycie MCP I2C (TWI dla AVR) i urządzeń SPI z AVR uCs. Naprawdę musisz uważnie przeczytać sekcje SPI i TWI arkusza danych AVR, nie pomijaj wiersza. Dla każdego interfejsu istnieje wiele rejestrów kontroli porządku danych, polaryzacji zegara itp. Wszystko jest przedstawione w arkuszach danych i jest bardzo czytelne. Nie byłoby trudno połączyć AVR i PIC. Musisz tylko grać w trybach SPI lub TWI, dopóki nie nawiążesz komunikacji.
źródło
Pracuję równie dobrze na PIC i AVR (i innych też).
Lubię AVR głównie z powodu AVR-libc . To przyzwoity wbudowane biblioteki, który jest open source i dość dobrze udokumentowane ( PRZECIWIEŃSTWIE PLIB Microchip, ale plib ma pełną źródło, które naprawdę docenić). AVR używają zwykłych starych gcc i gdb, co oznacza, że żadne idiotyczne IDE nie przeszkadzają. Te same narzędzia działają w systemach Windows, OSX i Linux i nie potrzebuję IDE 600 MB + z Javą i Netbeans lub Eclipse, aby potknąć się lub zepsuć moje drzewo źródłowe własnymi śmieciami.
Programowanie AVR-ów odbywa się zwykle przez ISP lub JTAG (pojawiło się ostatnie pytanie na ten temat) iz punktu widzenia programowania, tak naprawdę niewiele różni się od innych mikro.
Z osobistego punktu widzenia bardzo nie lubię arkuszy danych Microchip i numeracji części. Obcinam zęby na osadzonym projekcie za pomocą Microchip i kocham je przez długi, długi czas, ale kiedy szukam mikro, zaczynam od Atmela, chociaż nie są one również pozbawione wad. (SAM-BA jest śmieciem dla ich części SAM, a także miałem problemy z ich wsparciem fabrycznym.)
Jeśli chodzi o to, którego użyć ... spróbuj obu, to jest jak różnica między colą a pepsi. Są bardzo, bardzo podobne, a wybór zwykle sprowadza się do ceny i narzędzi, których wolisz używać.
źródło
C będzie taki sam z pewnymi małymi różnicami w kompilatorach. Montaż będzie zupełnie inny, ponieważ jest to inna architektura. Radzę iść z C, a może zebrać wystarczająco dużo zestawu, aby móc wprowadzić kilka ważnych procedur.
Dla IDE i programisty Atmel ma podobne oferty do Microchip, wystarczy zajrzeć na ich stronę internetową, pobrać bezpłatne IDE i wybrać programistę.
Podobny układ do 18F może być czymś takim jak ATMega328 (ten używany w Arduinos). Wierzę, że mają wersje pakietu DIP.
Tak, I2C i SPI powinny działać tak samo. Łączenie AVR i PIC nie powinno stanowić problemu.
Zastrzeżenie - Dawno nie korzystałem z AVR. Obecnie używam głównie PIC i ARM, ale nigdy wcześniej nie miałem problemu z łączeniem czegokolwiek ze SPI / I2C, ponieważ często używałem SPI do łączenia np. PIC / Atmel EEPROM / Cortex-M3 / FPGA. SPI jest bardzo podstawowym protokołem, który praktycznie każda nowoczesna mikro powinna być w stanie sprzętowo.
I2C jest nieco bardziej skomplikowany. Nie pamiętam historii licencjonowania / nazewnictwa (np. 2-żyłowy, I2C, SMBus) z góry mojej głowy, ale o ile mi wiadomo, większość urządzeń peryferyjnych jest kompatybilna na poziomie podstawowym. Zapoznaj się ze stronami Wiki, aby uzyskać więcej szczegółów.
źródło