Переключение с PIC на AVR [закрыто]

13

Я работаю с PIC16 и PIC18 уже более трех лет и хотел бы также познакомиться с AVR. У меня нет конкретного проекта, но я хотел бы попробовать разные архитектуры. Я хотел бы получить отчет о совместимости PIC и AVR.

Программное обеспечение UC
Я знаком со сборкой и C для PIC16 и PIC18. Чем варианты Assembly и C для микроконтроллеров AVR отличаются от вариантов PIC? Много ли различий?

Программное
обеспечение для ПК Какое программное обеспечение мне понадобится для компиляции и сборки моих программ для микросхем AVR? Это бесплатно и где я могу скачать его?

Аппаратное обеспечение для программирования
Я использовал Visp648 от VOTI для программирования PIC, но эта плата не может программировать AVR. Нужно ли покупать программатора или есть какие-нибудь схемы, доступные в сети, которые я могу построить сам?

Оборудование UC
Для PIC я много использовал PIC18F4620 . Я ищу AVR с аналогичными функциями. Функции, которые мне нравятся:

  • Внутренний генератор
  • Таймеры
  • Версия 5 В и 3,3 В
  • адъютант
  • MSSP с поддержкой I2C и SPI
  • (Е) УСАПП
  • PWM
  • Много выводов ввода / вывода
  • > = 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, но в целом вы читаете таблицы данных о процессорах, которые вы планируете использовать. Я не знаю, как это выглядит на Темной стороне, но Atmel, вероятно, имеет руководство по выбору, как у Microchip. В этих компаниях слишком много микросхем, чтобы кто-нибудь мог их иметь в виду. За 15 лет я профессионально выполнил более 100 проектов PIC, но все еще обращаюсь к руководству по выбору при выборе нового.
Олин Латроп
1
Какой набор инструкций используется AVR, инструменты разработки и т. Д. Легко исследуются. Эти вещи хорошо поддерживаются, как PIC. Я рекомендую это занимательное видео: youtube.com/watch?v=DBftApUQ8QI
Kaz
Взгляните на electronics.stackexchange.com/a/66163/8627 и измените Linux для Windows. Цепочка инструментов во многом такая же. Не идентичный, но полный вещей для Google.
Джиппи
@ Джиппи, хорошо! Сохранено в моей закладке, когда мои образцы прибыли :)

Ответы:

8

Программное обеспечение ОК

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

Программное обеспечение для ПК

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

Аппаратное обеспечение программирования

Есть много дешевых программистов AVR, таких как Bus Pirate, но есть Atmel ICSP . Это полностью стоит дополнительных затрат, если вы собираетесь сделать более одного проекта AVR. Он использует USB и управляется изнутри Atmel Studio.

аппаратное обеспечение ОК

Существует инструмент выбора , но, как правило, низкоуровневое типичное оборудование 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 с UC AVR. Вам действительно нужно внимательно прочитать разделы SPI и TWI таблицы данных AVR, не пропускайте ни одной строки. Существует несколько регистров управления для порядка данных, полярности часов и т. Д. Для каждого интерфейса. Все это изложено в таблицах и очень читабельно. Нетрудно связать AVR и PIC. Вам просто нужно будет поиграть с режимами SPI или TWI, пока вы не установите связь.

Мэтт Янг
источник
3
ATtiny - младший брат ATmega. Они очень похожи в программировании. Я «портировал» программное обеспечение от мега к крошечному, просто изменив тип детали в Makefile.
Джиппи
@CamilStaps Джиппи делает хорошую мысль. Я не знаю, похоже ли это на 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. Вам не нужны какие-либо разработки. плата, просто блок питания, обходные заглушки, а может и кристалл.
Курт Э. Клотье
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) на моей голове, но, насколько я знаю, большинство периферийных устройств совместимы на базовом уровне. Прочитайте страницы Wiki для более подробной информации.

Оли Глейзер
источник
TWI (двухпроводной интерфейс) Atmel совместим с I2C. I2C можно получить по лицензии от NXP (прежняя технология Philips), но Atmel удалось обойти лицензионный сбор.
Джиппи
11

Я одинаково хорошо работаю над PIC и AVR (и другими тоже).

Мне нравятся AVR во многом из-за AVR-libc . Это достойная встроенная библиотека , которая является открытым исходным кодом и достаточно хорошо документирован ( ОТЛИЧИЕ PLIB Microchip, но PLIB имеет полный исходный код, который я действительно ценю). AVR используют обычные старые gcc и gdb, что означает, что никакие идиотские IDE не будут мешать мне. Те же инструменты работают в Windows, OSX и Linux, и мне не нужна IDE более 600 МБ с Java и Netbeans или Eclipse, чтобы отключить или загрязнить дерево исходных текстов собственным мусором.

Программирование AVR обычно выполняется через ISP или JTAG ( недавно был задан вопрос об этом), и с точки зрения программирования, оно на самом деле мало чем отличается от любого другого микро.

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

Что касается того, что использовать ... попробуйте оба, это как разница между кока-колой и пепси. Они очень, очень похожи, и выбор обычно сводится к цене и инструментам, которые вы предпочитаете использовать.

akohlsmith
источник