Перехід від PIC до AVR [закрито]


14

Я працював з PIC16 та PIC18 вже більше трьох років і хотів би також познайомитися з AVR. Я не маю на увазі конкретного проекту, але хотів би спробувати різні архітектури. Я хотів би отримати звіт про сумісність щодо PIC та AVR.

програмне забезпечення uC
Я знайомий зі складанням та C для PIC16 та PIC18. Як варіанти складання та С для мікроконтролерів AVR відрізняються від варіантів PIC? Чи багато відмінностей?

Програмне
забезпечення для ПК Яке програмне забезпечення мені потрібно для складання та збирання моїх програм для AVR-чіпів? Це безкоштовно і де його можна завантажити?

Обладнання для програмування
Я використовував WISP648 VOTI для програмування фотографій, але ця плата не може програмувати AVR. Чи потрібно купувати програміст чи є в Інтернеті схеми, які я можу створити сам?

Обладнання uC
Для ПІК я багато використовував PIC18F4620 . Я шукаю AVR з подібними функціями. Особливості, які мені подобаються:

  • Внутрішній осцилятор
  • Таймери
  • Версія 5V та 3.3V
  • АЦП
  • MSSP з підтримкою I2C та SPI
  • (E) USART
  • ШІМ
  • Багато штифтів вводу / виводу
  • > = 32 КБ пам'яті програми,> = 2 кБ оперативної пам'яті
  • DIP-пакет

Який чіп AVR матиме однакові функції? Пакет - це вимикач угод, я дуже хочу DIP, PDIP або SPDIP. Яким би був AVR із порівнянними функціями?

Варіанти SPI та I2C
мені сказали, що Microchip має свої варіанти протоколів SPI та I2C. Я часто використовую ведені пристрої SPI та I2C з мікрочіпа в поєднанні з PIC. Чи зможу я використовувати ці фішки (23K256, RTC, ENC28J60, ...) у поєднанні з AVR? На додаток до цього, чи можна було б зв’язати AVR та чіп PIC за допомогою I2C або SPI?


@LeonHeller вибачте, що мені не було зрозуміло, я не маю на увазі конкретного проекту, але хотів би трохи пограти, щоб познайомитися з різною архітектурою.

5
Це питання занадто широке і не дуже підходить для нашого формату Q + A, але в цілому ви читаєте аркуші даних процесорів, які ви плануєте використовувати. Я не знаю, як це на Темній стороні, але, напевно, в Атмеля є путівник, як Microchip. Ці компанії мають занадто багато мікросів, щоб хтось мав це на увазі. Я вже понад 15 років професійно зробив понад 100 проектів PIC, але все-таки проконсультуйтеся з посібником із вибору, коли вибираєте новий.
Олін Латроп

1
Які інструкції встановлюють використання AVR, інструменти розробки та інше, легко вивчити. Ці речі добре підтримуються, як PIC. Я рекомендую це розважальне відео: youtube.com/watch?v=DBftApUQ8QI
Kaz

Погляньте на electronics.stackexchange.com/a/66163/8627 та змініть Linux для Windows. Мережа інструментів багато в чому однакова. Не тотожна, але повна для Google.
jippie

@jippie приємно! Збережено в моїй закладці, коли мої зразки надійшли :)

Відповіді:


8

програмне забезпечення uC

Набори інструкцій PIC і AVR схожі, але я б не почав програмувати AVR в зборах. Програма в С, зі студією Atmel. Він постачається в комплекті з AVR-версією gcc і має дійсно хороший розбирач, який показує вам написаний вами рядок C, і під ним, отримані інструкції по збірці, дуже зручно. Я також завантажую WinAVR .

Програмне забезпечення ПК

Використовуйте студію Atmel . Не переймайтесь Eclipse, Блокнотом програміста чи будь-якими іншими випадковими IDE, якими користуються люди. Atmel Studio базується на Visual Studio, має всі види плагінів, доступних від Atmel, і вбудований хороший симулятор.

Програмування обладнання

Існує багато дешевих програмістів AVR, таких як Bus Pirate, але отримуйте ICSP Atmel . Цілком варті додаткових витрат, якщо ви збираєтесь зробити більше одного проекту AVR. Він використовує USB і керується зсередини Atmel Studio.

UC обладнання

Є інструмент вибору , але в цілому типовим обладнанням для AtMega низького рівня є:

Internal Oscillator (8 MHz)
3 Timers
2.7-5.5V Supply range
8-channel multiplexed ADC
I2C and SPI support
USART
2 PWMs that work in conjunction with the 8 bit timers

Якщо ви перейдете до більш чітких фішок, ви придбаєте більше таймерів та ШІМ. Скільки флеш-пам’яті та SRAM у вас є, залежить від конкретного чіпа. Більшість частин деталей AtMega доступні в PDIP, причому дійсно високий вміст підрахунку шпильок - QFP.

Варіанти SPI та I2C

Можливе використання пристроїв MCP I2C (TWI для AVR) та SPI з AVR uC. Вам справді потрібно уважно прочитати розділи SPI та TWI таблиці AVR, не пропускайте рядки. Існує кілька регістрів управління для порядку замовлення даних, полярності годин та ін. Для кожного інтерфейсу. Це все викладено в таблицях даних і дуже читабельно. Зв’язати AVR та PIC було б не важко. Вам просто потрібно буде грати з режимами SPI або TWI, поки ви не встановите зв'язок.


3
Аттіні - менший брат Атмеги. Вони дуже схожі, коли мова йде про їх програмування. Я "переніс" програмне забезпечення від мега-крихітного, просто змінивши тип деталі в Makefile.
jippie

@CamilStaps jippie робить хороший момент. Я не знаю, чи це схожість з PIC, але процесори AVR здебільшого діляться іменами регістрів та бітовими замовленнями. Є деякі винятки, як більш спроможний процесор може порушити регістр управління на дві частини. Усі таблиці мають розділ опису реєстру в кожній главі, що полегшує порівняння.
Метт Янг

PIC так само, принаймні в одній родині (PIC16, PIC18, ..). Дякую за пораду (@jippie)!

Це чудове пояснення. Мої улюблені чіпи AVR - це ATmega328p та ATtiny24. Інші поширені лінії - це tinyx5 та tiny2313. Вони доступні в DIP, і всі вони мають той самий інтерфейс програмування на основі SPI: ISP. Для дешевого швидкого запуску спробуйте цей програміст USB від Sparkfun : sparkfun.com/products/9825 Також варто згадати популярний програмний пакет для Windows, відомий як WinAVR: winavr.sourceforge.net Вам не потрібна якась розробка плата, просто джерело живлення, байпасні кришки, а може бути і кришталь.
Курт Е. Клотьє

12

Я однаково добре працюю над PIC та AVR (і іншими теж).

Мені подобаються AVR багато в чому через AVR-libc . Це гідна вбудована бібліотека , яка є відкритим вихідним кодом і досить добре документований ( ВІДМІНУ PLIB Microchip, але PLIB має повний вихідний код, який я дійсно ціную). AVR використовують звичайні старі gcc та gdb, що означає, що ніякі ідіотичні IDE не заважають мені. Ці ж інструменти працюють у Windows, OSX та Linux, і мені не потрібно 600 МБ + IDE з Java та Netbeans або Eclipse, щоб подорожувати або забруднювати моє джерело власним сміттям.

Програмування AVR зазвичай проводиться через ISP або JTAG ( останнім питанням з цього приводу було нещодавно ), а з точки зору програмування він насправді не сильно відрізняється від будь-якого іншого мікрофона.

З особистої точки зору, я перетворився на дуже неприязні таблиці даних Microchip та нумерацію деталей. Я вирізав зуби на вбудованому дизайні Microchip, і я любив їх довго, довго, але коли шукаю мікро в ці дні, я, як правило, починаю з Atmel, хоча вони теж не без своїх вад. (SAM-BA є сміттям для своїх частин SAM, і у мене виникли певні проблеми з їх заводською підтримкою.)

Щодо того, що використовувати ... спробуйте і те, і інше, це як різниця між Коксом і Пепсі. Вони дуже-дуже схожі, і вибір зазвичай зводиться до ціни та інструментів, які ви вважаєте за краще використовувати.


11
  • C буде однаковим з деякими невеликими відмінностями компілятора. Збірка буде зовсім іншою, оскільки це інша архітектура. Я раджу піти з C і, можливо, підібрати достатню збірку, щоб можна було накреслити деякі важливі процедури.

  • Що стосується IDE та програміста, Atmel має схожі пропозиції на Microchip, просто подивіться на їхній веб-сайт, скачайте безкоштовний IDE та виберіть програміста.

  • Схожий чіп на 18F може бути чимось на зразок ATMega328 (той, який використовується в Arduinos). Я вважаю, що вони мають версії пакету DIP.

  • Так, I2C і SPI повинні працювати точно так само. Пов’язання AVR та PIC не повинно бути проблемою.

Відмова - я довго не використовував AVR. В основному я зараз використовую PIC та ARM, але в минулому у мене ніколи не виникало проблем, пов'язаних із SPI / I2C, часто використовуючи SPI для з'єднання, наприклад, PIC / Atmel EEPROM / Cortex-M3 / FPGA. SPI - це дуже базовий протокол, до якого майже будь-який сучасний мікрофон повинен бути здатний апаратно.
I2C трохи складніший. Я не можу згадати історію ліцензування / іменування (наприклад, 2-провідний, I2C, SMBus) у верхній частині голови, але наскільки я знаю, більшість периферійних пристроїв сумісні на базовому рівні. Прочитайте сторінки Вікі для більш детальної інформації.


TWI (Two Wire Interface) Atmel сумісний з I2C. I2C можна ліцензувати від NXP (колишня технологія Philips), але Atmel вдалося обійти ліцензійну плату.
jippie
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.