Я хочу отойти от Arduino и начать несколько проектов с использованием более многофункциональных микроконтроллеров. Я смотрел на PIC18F4550 из-за его набора функций, но я избегаю продуктов PIC, в основном потому, что у меня нет программатора, а picKIT немного дорогой (50 долларов за picKIT II, 70 долларов за picKIT III) . Я не так много изучал предложения AVR, но думаю, что, возможно, захочу. Вот что я ищу:
У кого-нибудь есть рекомендации в ту или иную сторону?
Хотя PIC18F4550 является приличным uC, и существует довольно много примеров его использования для USB, он по-прежнему 8-битный и, вероятно, находится в той же «лиге», что и ваш Arduino.
Если вам нужно немного больше мощности, я бы, возможно, посмотрел на 16-битный PIC24 / dsPIC (намного более мощный и все еще доступный в сквозном отверстии) или даже PIC32 (только для поверхностного монтажа, и вы обычно используете C для программирования это)
Я думал, что PicKit3 (я полагаю, вы имеете в виду это) был не так уж и плох с точки зрения цены, с точки зрения программистов, но если вы хотите дешевле, вы можете выбрать PicKit2, который, хотя официально больше не поддерживается, по-прежнему будет использоваться с 99% Ассортимент микросхем.
Есть также много других достойных программаторов для PIC, например, предложения Embed Inc - если вы выберете 16-битные части 3,3 В, я думаю, LProg за 25 долларов подойдет.
Хотя онлайн-ресурсы и хорошая связанная книга (например, Learning to Fly the PIC24 — обратите внимание, что она написана на C) облегчают начало работы, я бы привык к тщательному чтению таблиц данных (и справочного руководства по семейству в случае PIC24/dsPIC). , это необходимая часть использования любого микроконтроллера и единственный способ (ИМХО) научиться использовать их в полной мере, особенно более сложные. Даже в приведенной выше книге (хотя и хорошо написанной) упущено много деталей более низкого уровня.
Лично я клянусь чипами PIC.
Я тоже часто ругаюсь на них.
Да, вы получаете много контактов ввода-вывода. Да, вы получаете внутренний осциллятор. Да, вы получаете встроенный USB, CAN, SPI, I²C, АЦП, ЦАП (на некоторых dsPIC), кухонную раковину и даже луну на флешке.
Увы, онлайн-поддержка в лучшем случае отрывочна. Существует довольно обширная библиотека приложений, доступная для загрузки, но способ ее составления оставляет желать лучшего.
Вы говорите, что программатор PIC дороговат? Это не должно быть. Я использую дешевый клон с ebay. В нем нет всех наворотов (нет отладки), но он хорошо работает для меня, и все основные программы для программирования работают с ним. Аппаратное обеспечение с открытым исходным кодом — вы можете скачать схемы и прошивку с Microchip, если хотите. Вы также можете загрузить спецификации того, как выполнять программирование, если хотите создать свой собственный программатор — он просто последовательный, поэтому (кроме +12V Vpp) вы сможете создать программатор с помощью Arduino.
Что касается других… Я знаю, что в новых платах Arduino UNO чип FDTI заменен на чип Atmel MEGA8U2 со встроенным USB. Я не уверен, доступен ли он в виде PDIP или нет.
1 и 5: Многие модели AVR Atmel поставляются в 40-контактном DIP-корпусе, соответствующем этим требованиям. 40-контактная модель, которую я сейчас использую, имеет 4 8-битных порта ввода-вывода == 32 порта ввода-вывода (если не используются какие-либо другие периферийные устройства).
2: Arduino может реализовать этот метод программирования, используя свой загрузчик, который всегда находится во флэш-памяти чипа. Для программирования через UART (что и делает Arduino для программирования) может потребоваться немного работы. Вот еще немного информации о загрузчике, если вам интересно. Хорошей новостью является то, что вам ничего из этого не понадобится, если вы используете программатор ICSP, который не требует внешних схем.
3: Посмотрите здесь и используйте Ctrl+F в браузере, чтобы найти детали с поддержкой USB.
4: И PIC, и AVR имеют массу ресурсов для обучения. Однако не пытайтесь избегать чтения таблицы данных - это абсолютно необходимо, и я не знаю, как вы сможете обойтись без нее, если хотите написать прошивку (сборку или C) на любой платформе.
5: См. первый пункт.
6: В наши дни внутренние генераторы стали почти стандартной функцией. Опять же, обратитесь к описанию их продукта или обратитесь к техническому описанию, чтобы знать наверняка. Пример: щелкнув случайную часть на сайте Atmel и прокрутив параметры, вы обнаружите поле, которое говорит вам Calibrated RC Oscillator: yes
<-- это означает, что есть внутренний осциллятор.
Я бы не сильно беспокоился о том, какой из них (PIC или AVR) вы выберете. В любом случае, вам, скорее всего, придется купить программатор ICSP.
Боюсь, если вы настаиваете и на USB, и на сквозном разъеме, то вы, вероятно, застряли либо с AVR, либо с PIC. Большинство «больших парней» используют QFP или QFN для чипов с USB и достаточным количеством контактов, чтобы иметь 32 GPIO. Однако использовать разделительную доску QFP не так уж сложно. Если вы хотите попробовать это, вот пара, которую я могу предложить:
1) МСП430. Приятная маломощная 16-битная архитектура, разумный набор инструкций, довольно простые (IMO) периферийные устройства. Комплект за 4,30 доллара доступен в виде безрискового вступления (включает в себя программатор и отладчик). Тем не менее, DIP-части, такие как на Launchpad, довольно ограничены, и вам придется перейти на QFP, если вы хотите что-то для своих требований.
2) Чип Cortex-M3 или Cortex-M0 ARM. На рынке есть несколько предложений, например серия LPC от NXP (см. LPCXpresso , около 30 долларов) или STM32 от ST (STM32VLDISCOVERY, около 12 долларов). Эти красавицы 32-битные, поэтому обладают большой мощностью, но несколько сложнее, чем 8-битные.
Почему бы вам не придерживаться Arduino, потому что Arduino Due будет использовать микроконтроллер на базе ARM Atmel SAM3U?
Если вы хотите изучить язык ассемблера, я предлагаю найти хорошего программиста, который поддерживает отладку. Как правило, они дороже (50-100 долларов), но когда у вас есть ошибка, которую вы просто не можете понять, нет ничего лучше, чем увидеть, что происходит внутри микроконтроллера. Поскольку вы пришли из мира Arduino, вы, вероятно, очень привыкли к отладке с использованием вывода данных через последовательный порт, но особенно если вы хотите изучить язык ассемблера, просто включение последовательного порта без отладчика потребует «Кодирование в темноте». ".
Мне очень понравилась ATXMega. Многие чипы Atmel могут быть запрограммированы на C с использованием Atmel Software Framework, который имеет отличные примеры и отлично справляется с сокрытием использования указателей (что является большим преимуществом при программировании на Arduino). Он отвечает всем вашим требованиям, указанным выше, включая некоторые с USB и особенно вводом-выводом с 34-78 в корпусах от 44 до 100 контактов, за исключением того, что он доступен только для поверхностного монтажа, но я припаял его вручную с помощью паяльника, фитиля припоя и 7-кратного увеличения, чтобы убедиться, что не было любые паяные мосты.
Мне очень нравится Atmel Studio, но я немного предвзят, потому что моя повседневная работа использует Visual Studio, и Atmel Studio основана на ней. Отладка в Atmel Studio действительно удобна, поскольку все регистры конфигурации и их состояния хорошо видны. Я смог протестировать изготовленные на заказ печатные платы, используя только метод main() и отладчик.
Кевин Вермеер
КапитанКрейг
Кевин Вермеер
КапитанКрейг