Даталоггер на PIC с SD-картой и 4х-канальным АЦП

TOPИногда требуется записывать значения каких-либо параметров на крату памяти для дальнейшего анализа на компьютере. Для этого существуют такие устройства, как даталоггеры. Предлагаемый даталоггер на PIC18 обладает следующими характеристиками:

-простой дизайн, доступный для повторения радиолюбителями
-запись данных на карту памяти SD в виде простых текстовых файлов
-4 12-битных канала АЦП
-прост в использовании и конфигурировании
-экономичный
-недорогой

Внешний вид готового устройства сверху и снизу:

TOP1BOT

Схема даталоггера показана на рисунке

sch  

Источник питания обеспечивает два напряжения 5В для питания микроконтроллера и 3,3В для питания SD-карты. Вы можете использовать любые регуляторы на 5 и 3,3 В, только имейте ввиду, что согласно спецификации, SD-карты могут потреблять до 200 мА в зависимост от модели.

Даталоггер работает с SDкартами, отформатированными в FAT16, поэтому максимальный объем файла может быть не более 4ГБ.

Программа запоминает общее число произведенных серий замеров и присваивает новый номер следующей серии замеров. В начале каждой серии даталоггер создает два новых текстовых файла на карте памяти. Первый называется D_x.TXT (где x - номер серии замеров), в нем содержатся данные с АЦП всех каналов. Второй называется S_x.TXT (где x - номер серии замеров), в нем содержится системная информация, такая как события или ошибки во время замеров.

Если какой-либо из этих файлов уже существует, он не удаляется, а дополняется новыми строками.

Для конфигурирования даталоггера все, что Вы должны сделать -  это создать текстовый файл с именем ADC.TXT и записать его на карту памяти. Параметры для даталоггера должны быть записаны в первой строке этого файла и должны быть разделены точкой с запятой, напримерЖ “100;200;0;”.

  1. Первый параметр - это период сэмплирования в миллисекундах. Минимальное период сэмплирования -  5мс (200 сэмплов в сек), максимальный период -   99999999мс. В этом примере период равен 100мс.
  2. Второй параметр - это максимальное количество сэмплов. “0” означает бесконечное количество сэмплов. Тем не менее, оно должно быть между 1 и 99999999.
  3. Третий параметр - это режим энергосбережения. “0” выключает его, а “1” - включает. Если период сэмплирования меньше 30 секунд, этот параметр игнорируется. См. ниже более детальное описание режима.

Блок-схема программы даталоггера:

FC_EN

– После включения даталоггер проверяет, вставлена ли карта, и все ли с ней впорядке. Затем он проверяет настройки в файле ADC.TXT. Если существует проблема, то светодиод "SD LED" будет постоянно гореть. Если проблем нет, светодиод "SD LED" мигнет несколько раз во время чтения и создания новых файлов на карте памяти и погаснет,  обозначая, что даталоггер готов к записи данных.

– Нажмите кнопку для начала записи данных. Во время работы с картой памяти светодиод "SD LED" будет периодически загораться, обозначая, что  извлечение карты или отключение питания даталоггера небезопасно для данных на карте. Если светодиод "SD LED"  не горит,  то можно извлечь карту или отключить устройство.

– Нажмите кнопку в любое время для остановки записи данных. Если максимальное количество сэмплов уже достигнуто, даталоггер отключится, и все дальнейшие команды будут проигнорированы, пока вы не перезапустите его.

*Если светодиод "SD LED" все время горит, это означает какую-то проблему с SD-картой или с настройками. Для подробной информации смотрите соответствующий файл на карте.

** Светодиод "PW LED" мигает с периодичностью в 4 секунды и длительностью 100 мс, индицируя, что с питанием все в порядке и микроконтроллер работает без проблем.

 

Общий ток потребления зависит от типа SD-карты и режима работы самого даталоггера. Режим энергосбережения работает следующим образом:

  1. Если период измерений меньше 2 сек, даталоггер и карта памяти всегда включены. Ток потребления даталогера около 20 мА, а ток потребления карты памяти зависит от ее модели.
  2. Если период измерений больше 2 сек, даталоггер всегда включен, а карта памяти примерно на секунду только чтобы записать данные. В оставшуюся часть периода карта отключена.
  3. Режим энергосбережения (если период сэмплирования меньше 30 секунд, этот параметр игнорируется) – между каждой записью данных SD-карта отключается, а микроконтроллер останавливает внешний кварц, переходя на внутренний резонатор. Кварц и SD-карта примерно на секунду только для проведения измерения и записи данных на карту. Это позволяет снизить общее потребление до 5 мА. Однако, это компромисс. Внутренний резонатор гораздо более температурозависим, чем внешний кварц, он калибруется на заводе при 25 градусах Цельсия и зависит от внешней температруры, что будет давать ошибку до  +-5% отклонения времени между измерениями, вместо 0.002% при использовании кварца все время.

Общая стоимость компонентов этого даталоггера составляет от $6 до $8.

Даталоггер может быть собран на элементах DIP-размера и выводных деталях на любой макетной плате, но для него также разработана печатная плата под поверхностный монтаж. В ссылках ниже есть герберы для изготовления платы, а также прошивка и примеры файлов, записываемых на карту.

PCB

Прошивка: SIMPLE_SD_DATA_LOGGER_FIRMWARE.ZIP
Чертеж платы: SIMPLE_SD_DATA_LOGGER – CADCAM.ZIP

Файлы на карте:
ADC.TXT
D_0.TXT
S_0.TXT

Прошивка для контроллеров серий 18F25x0: ADDITIONAL_FIRMWARE_2520_2550_2580.ZIP

Источник: permalink.

Загрузка...