Я работаю с 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?
Ответы:
Программное обеспечение ОК
Наборы команд 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:
Переход на более производительные чипы купит вам больше таймеров и ШИМ. Какой объем флэш-памяти и SRAM у вас есть, зависит от конкретного чипа. Большинство деталей AtMega доступны в формате PDIP, причем действительно большое количество выводов - QFP.
Варианты SPI и I2C
Можно использовать устройства MCP I2C (TWI для AVR) и SPI с UC AVR. Вам действительно нужно внимательно прочитать разделы SPI и TWI таблицы данных AVR, не пропускайте ни одной строки. Существует несколько регистров управления для порядка данных, полярности часов и т. Д. Для каждого интерфейса. Все это изложено в таблицах и очень читабельно. Нетрудно связать AVR и PIC. Вам просто нужно будет поиграть с режимами SPI или TWI, пока вы не установите связь.
источник
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 для более подробной информации.
источник
Я одинаково хорошо работаю над 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, и у меня тоже были некоторые проблемы с их заводской поддержкой.)
Что касается того, что использовать ... попробуйте оба, это как разница между кока-колой и пепси. Они очень, очень похожи, и выбор обычно сводится к цене и инструментам, которые вы предпочитаете использовать.
источник