Я работаю с PIC16 и PIC18 уже более трех лет и хотел бы также познакомиться с AVR. У меня нет конкретного проекта, но я хотел бы попробовать разные архитектуры. Я хотел бы получить отчет о совместимости PIC и AVR.
Программное обеспечение UC
Я знаком с ассемблером и C для PIC16 и PIC18. Чем варианты Assembly и C для микроконтроллеров AVR отличаются от вариантов PIC? Много ли различий?
Программное обеспечение ПК
Какое программное обеспечение мне потребуется для компиляции и сборки моих программ для чипов AVR? Это бесплатно и где можно скачать?
Аппаратное обеспечение
для программирования Я использовал Wisp648 от VOTI для программирования PIC, но эта плата не может программировать AVR. Должен ли я покупать программатор или в Интернете есть схемы, которые я могу собрать самостоятельно?
Аппаратное обеспечение
uC Для PIC я часто использовал PIC18F4620 . Я ищу AVR с аналогичными функциями. Особенности, которые мне нравятся:
Какой чип 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. Он поставляется в комплекте с AVR-версией gcc и имеет действительно хороший дизассемблер, который показывает написанную вами строку C, а под ней результирующие инструкции по сборке, что очень удобно. Я бы тоже WinAVR скачал .
программное обеспечение ПК
Используйте Атмел Студио . Не беспокойтесь об Eclipse, Programmer's Notepad или любых других случайных IDE, которые люди используют. Atmel Studio основана на Visual Studio, имеет все виды подключаемых модулей, доступных от Atmel, и имеет хороший встроенный симулятор.
Аппаратное обеспечение для программирования
Есть много дешевых программаторов AVR, таких как Bus Pirate, но возьмите Atmel ICSP . Это полностью оправдывает дополнительные расходы, если вы собираетесь реализовать более одного проекта 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, пока вы не установите связь.
Я одинаково хорошо работаю на 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, и у меня тоже были некоторые проблемы с их заводской поддержкой.)
Что касается того, что использовать ... попробуйте оба, это как разница между кока-колой и пепси. Они очень, очень похожи, и выбор обычно сводится к цене и инструментам, которые вы предпочитаете использовать.
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-wire, I2C, SMBus) навскидку, но, насколько мне известно, большинство периферийных устройств совместимы на базовом уровне. Прочитайте страницы Wiki для более подробной информации.
пользователь17592
Олин Латроп
Каз
Джиппи
пользователь17592
Джиппи
пользователь17592
клабаккио
пользователь17592
Крис Стрэттон