HRP-N3 - серия источников питания с максимальной пиковой мощностью в 350% от MEAN WELL

Система регистрации данных на Atmega32 с записью на SD карту памяти. Часть 2. Настройка и работа системы, ПО для микроконтроллера

В первой части мы изучили принципиальную схему и основные ее компоненты для реализации задачи сбора и накопления данных.

На схеме видны два светодиода и кнопка. Светодиоды предназначены для индикации наличия питания и активном режиме записи данных, кнопка предназначена для запуска и остановки регистрации данных.

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Рассмотрим последовательность действий при различных режимах работы системы.

Установка даты/времени (или отладочный режим):

  • подключите модуль SD карты, установите карту памяти в слот;
  • подключите кабель RS-232 к системе. В установках программы Hyper Terminal необходимо установить скорость обмена данными 19200 Бод, без проверки четности, 8 бит данных, 1 стоп-бит, аппаратное управление потоком отключено;
  • подключите питание к системе при этом удерживая кнопку S1 нажатой;
  • зеленый светодиод свидетельствует о наличии питания;
  • в окне терминальной программы Hyper Terminal отобразится меню (на рисунке ниже). Выберите необходимый пункт меню и следуйте инструкциям;
  • после установки даты/времени или по окончанию отладки выберите пункт меню 0 (Exit the Menu) для выхода из меню и перехода в режим сбора данных;
  • отключите кабель RS-232.

Вид окна программы Hyper Terminal и меню при подключении системы регистрации и накопления данных по интерфейсу RS232

Вид окна программы Hyper Terminal

Нормальный режим работы (сбор и накопление данных):

  • подключите питание к системе;
  • зеленый светодиод свидетельствует о наличии питания;
  • для старта процесса сбора данных нажмите кнопку;
  • красный светодиод индицирует о том, что запись данных ведется;
  • для остановки записи нажмите кнопку снова, красный светодиод отключится, свидетельствуя об остановке записи;
  • для чтения сохраненных данных можно использовать ПК, имеющий устройство считывания карт памяти SD, а также данные можно получить по интерфейсу RS-232 в отладочном режиме.

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

Файлы с данными сохраняются в формате CSV. Например, данные сохраненные 30 мая 2011 года будут находиться в файле 30052011.CSV.

Примерный вид окна табличного редактора Exel с открытым файлом.

 Файл формата CSV сохраняемый на SD карту памяти (система сбора данных)
Клкините для увеличения

Данные сохраняются с интервалом 5 секунд. Данный интервал пользователи могут изменить самостоятельно, подкорректировав исходный код (main.c) и перекомпилировав проект. Исходный код написан в AVR Studio с использованием Си-компилятора WinAVR (avr-gcc).

Загрузки

Файлы проекта (AVR Studio) – скачать

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: microSD ATmega32 Data-Logger. Part 2. Operation of the circuit

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • Есть нестыковки в схеме железа и софта МК.На схеме и фотках виден кварц 16 МГц, а МК работает на 8-и Мгц внутреннего источника.Значение Fuses в статье не обозначены. Прошил для внешнего кварца, схема моргает красным и не откликается в терминале. перепаял на 8 Мгц кварц и получил ответ SD Card не обнаружена.Это правда, я пока не собрал её подключение. В программировании на Си я не силён, поэтому обратившись на сайт автора,обнаружил в его переписке значения fuses и подтверждение тактирования МК от внутр. источника. Схему подключения SD хочу сделать на преобразователях уровня. По результатам сообщу.
  • Доделал схему.Попробовал измерить напряжение ААА батарейки и питания схемы, немного погрел пальцем датчик температуры.Результаты правдоподобные. По обработке данных тоже нет проблем.Я использовал Openoffice Calc и Kingoffice(клон MS office 2003). Приложил исходный файл и обработку. По деталям:Датчик температуры TMP35 (Analog Device), преобразователи лог. уровней для SD card -SN74LVC1T45. Огромное спасибо автору! В дальнейшем - планы изготовить первичные преобразователи аналоговых величин в пост. напряжение 0-5 вольт.
  • User_AVR, скажите, реально ли применить в этом логгере Atmega8 с питанием 3.3 вольта? Тогда не нужен преобразователь уровней. Подойдет ли прошивка без изменений? И еще - можно ли выкинуть датчик температуры? (нету у меня его). Полный размах аналоговых входов 5 вольт или 3.3 вольта - мне не важно.
  • Смотрим даташит и видим: ATmega8 (0 - 16 МГц) - рабочее напряжение 4.5 В- 5.5 В; ATmega8L (0 - 8 МГц) - рабочее напряжение 2.7 В - 5.5В. Датчик температуры (аналоговый) я думаю можно не использовать - все равно данные получаем с АЦП микроконтроллера.
  • Я спрашивал не "вааще", а вполне конкретно - запустится ли данная прошивка на Atmega8? Ведь написана для Мега32, а там есть порт А, которого нет в Мега8.
  • Я думал, что это очевидно, тем более вы сами прекрасно видите отличия микроконтроллеров - прошивка под mega32 не подойдет для mega8, по крайней мере без корректировки и компилирования под конкретный мк.
  • iev91, для меги8 нужно перекомпилировать проект.Я в Си немного совсем, поэтому не знаю точно как это сделать, но что просто прошив данной для меги32 не будет работать-уверен. По датчику согласен- можно не ставить, но тогда в обработке по этому каналу(если он нужен) учитываем перевод из градусов в вольты. Ещё одна особенность проекта такая- Автор применил готовый модуль для microSD стороннего производителя. В этом модуле применён преобразователь уровня на CD4050. Видимо там нет преобразования сигнала MISO(предположил из анализа схемы модуля)- данные приходят прямо на вывод меги. Я же поставил преобразование уровня и там. Это в свою очередь сделало невозможным программирование по ISP без отключения этого вывода меги от вывода ПУ. Я резал дорожку, можно поставить джампер, или применить ПУ с z-состоянием.(В Авторском варианте-просто вынуть карту).Но DIP корпус в панельке проще прошить в программаторе.
  • Поддерживает SDHC. Но есть и нехорошие особенности. 1.Портит файлы. Открыть невозможно.После chkdsk/f лечения размера файла,он открывается, но теряются строки блоками по 20- 30 мин. 2.Может убить карту, если при записи пропадёт питание.У меня из 4 Гб стало 2. Файл содержит данные за сутки.Пробовал прервать запись(кнопкой) и прочитать карту в компе-почти всегда сбойный файл если период более 1 часа. Посоветуйте по первой проблеме пожалуйста, где может быть ошибка? Я в Си не очень.
  • Могли бы Вы переделать прошивку под измерение напряжения и силы тока по трем фазам в сети 220 вольт, и частоты напряжения сети по одной фазе?
  • Я этот логгер и использовал для измерения напряжения и тока в сети, только 1-фаз.Не вижу препятствий для 3-х.Прошивку менять не нужно. Датчик тока брал на эффекте Холла. Насчёт частоты,тоже можно придумать преобразователь F->U. Не стал дальше продолжать в виду нестабильности работы конструкции.
  • По ходу , похоже что придется все равно переписывать реализации функций на асме как надо , раз этот CheN там в своих библиотеках напортачил, да и в тонкостях организации рабочей FAT и командах к SD разбираться , а то пока этот CheN там заметит свои баги ...
  • Не поленитесь и загляните в исходные файлы обсуждаемого [URL="http://www.rlocman.ru/shem/schematics.html?di=106266"]проекта[/URL]. В частности в файл "FAT32.c", "SD_routines.c". Хоть код и структурирован, и снабжён комментариями, но многое не реализовано, поэтому не стоит ждать стабильной работы со всеми картами памяти, а равно и стандартных функций создания каталогов, поддержки длинных имён и т.д. В блоге автора [URL]http://www.dharmanitech.com/[/URL] больше 600 комментариев к схеме логгера. Даже из первых нескольких десятков вопросов ясно, что проблемы хаотично возникают от карты к карте, в зависимости от размера и процента заполнения и т.д. У кого-то работает с SDHC 16Гб, у кого-то портит SD/SDHC 2Гб, 4Гб. Dharmani, автор, не собирается развивать проект, но отвечает на многие вопросы и даёт советы, как-то уменьшить скорость SPI, подправить те или иные постоянные в "SD_routines.h" или же исправить проблему со сбоем в процедуре инициализации путём проверки надёжности фиксации карты в держателе. Мне этот код нравится. Наверное, если его проанализировать параллельно с известным руководством [URL="http://www.cs.ucr.edu/~amitra/sdcard/ProdManualSDCardv1.9.pdf"]SanDisk SD manual[/URL], к которому отправляют на многих интернет форумах, будет хотя бы понятно, что к чему.
  • А возможна не запись на SD карту памяти, а передача видео-потока через Wi-Fi?(на смартфон например)
  • Комрады, как вы думаете - что делать, если у меня мигает зеленый светодиод, т.е. произошел сбой микросхемы реального времени?
Полный вариант обсуждения »