Программирование микрочипа pic
У меня есть несколько микросхем pic, в основном pic16f72 и pic16f73 на старых схемах ИБП, понял, что они не так уж и плохи. Я уделяю особое внимание их возможностям adc.
У меня есть esp32 (мой первый микроконтроллер), и я очень разочарован, главным образом потому, что его АЦП дерьмовый, я провел некоторое исследование по программированию чипов pic, некоторые можно было запрограммировать через arduino, но мои чипы нигде не упоминались. Я хочу запрограммировать их через свой esp32..
Можно ли их запрограммировать через Arduino (в моем случае esp32)? Я могу построить некоторые базовые схемы, но программистам, занимающимся самодельными графическими процессорами, требуется предварительно запрограммированный микрочип, который я не смогу изготовить, если уже не умею его программировать.
@asim, 👍1
Обсуждение2 ответа
Кажется, вы говорите о двух разных вещах:
Программирование/запись PIC можно выполнить с помощью Arduino (поэтому вам не нужно создавать сложную схему программатора PIC). Неважно, какой тип микроконтроллера стоит на программаторе, главное, чтобы программатор говорил на ISP (протоколе программирования). Таким образом, даже если ваш конкретный PIC не упоминается на найденных вами сайтах, он все равно должен работать. Соединения каждый раз одинаковы, хотя в вашем конкретном PIC используемые функции контактов могут быть на других контактах (для этого обратитесь к техническому описанию).
Проект Arduino — это означает, что скетч/программа, написанная для обычного Arduino, обычно не может быть легко использована повторно. PIC — это разные микроконтроллеры с разным оборудованием, поэтому вам необходимо перенести эти проекты на ваш конкретный микроконтроллер, что может потребовать значительных изменений. Если у вас есть проект Arduino, который был написан непосредственно для вашего PIC, вы можете использовать его повторно. (Обязательно установите правильное ядро для вашего PIC в Arduino IDE)
Для PIC32 вам понадобится chipKIT. Поддерживаются не все чипы, но большинство чипов PIC32MX и PIC32MZ поддерживаются. Какие именно чипы PIC32 у вас есть?
Вам потребуется установить загрузчик, для чего вам понадобится программатор. Можно собрать программатор с помощью Arduino, хотя я бы взял дешевый клон PICkit2 из Китая.
Что касается 8-битных PIC, то нет, их нельзя запрограммировать как Arduino, просто потому, что компилятор C++ с открытым исходным кодом недоступен.
- Как объявить массив переменного размера (глобально)
- Программирование Arduino с использованием Python, а не C/C ++
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Как справиться с rollover millis()?
- Является ли использование malloc() и free() действительно плохой идеей для Arduino?
- Можно ли сделать несколько функций loop() с помощью Arduino Uno?
- Какие накладные расходы и другие соображения существуют при использовании структуры по сравнению с классом?
- устаревшее преобразование из строковой константы в 'char*'
В принципе, вы должны быть в состоянии запрограммировать каждый PIC, который работает с ISP, через Arduino. Хотя сам еще этого не делал, @chrisl
Можете ли вы указать мне правильное направление? Я спросил здесь, потому что я не знаю фото и если проекты Arduino в Интернете для программирования будут работать с моими фото, @asim
Каковы точные критерии выбора pic16F72/73? Вы упомянули плохую производительность АЦП esp32 (который является 12-битным), поэтому вы отказываетесь от него и выбираете два микроконтроллера, которые предлагают только АЦП с 8-битным разрешением? Приобретение Arduino Nano или Uno даст вам как минимум 10-битный АЦП. Если вы сказали, что ADC ESP32 — это дерьмо из-за его нелинейности, его можно откалибровать с помощью справочной таблицы [здесь](https://github.com/e-tinkers/esp32-adc-calibrate). Я сделал это, он все еще шумнее, чем микроконтроллер с более низкой скоростью, но это 12-битный АЦП, так что зависит от того, что вы ищете., @hcheung
Разрешение 8-битного АЦП на Pic16f72 означает разрешение 5/256=19,5 мВ/бит. Разрешение 12-битного АЦП на ESP32 означает разрешение 0,8 мВ/бит. если то, что вы измеряете, может выдерживать 19,5 мВ / бит, то нелинейность и более высокий уровень шума на ESP32, вероятно, в любом случае не имеют для вас большого значения., @hcheung
Кстати, вы можете найти всю информацию о PIC IDE и наборе инструментов на Microchip [веб-сайт](https://www.microchip.com/development-tools/), @hcheung
Имеет смысл, спасибо за расчеты, моей первой попыткой было использовать термистор для показаний температуры, но я не был удовлетворен и откалибровал его., @asim
Ха, использование термистора было именно тем, что я сделал, когда обнаружил проблему нелинейности ESP32 (я увидел разницу в 2 градуса Цельсия, вызванную нелинейностью), прочитайте мой [блог](https://www.e-tinkers. com/2019/10/использование-термистора-с-arduino-и-неожиданной-esp32-adc-нелинейностью/), @hcheung
Это блог, за которым я следил, вы использовали конденсатор? И я должен подключить его к 5v или 3.3v?, @asim