Курс AVR123.nm.ru |
|
||
Задача - упражнение 7
Книги и учебники по микроконтроллерам AVR там
Цель
задачи: Память это
микросхема AT45DB161
- семейства Файловую
систему для микросхем этой серии от
компании ATMEL вы можете найти в файло-обменнике
caxapa.ru или спросить в конфе.
Скачайте
АпНоуты - это примеры
применения AVR
Для
выполнения задачи необходимо: - Data Sheet на AT45DB161 - архив с текстами программ (11 кБ) - прочитать статью: Последовательная память семейства DataFlash® корпорации Atmel - идеальное решение для реализации внешней памяти Если у вас нет модели AT45 для VMLAB или PROTEUS то ещё : - макетная плата или устройство содержащее схему:
- источник питания 5 вольт, стабилизированный. - адаптер для внутрисистемного программирования - ISP (см подробней о прошивании МК стр. 7 курса) - адаптер для соединения МК с COM портом компьютера выполненный на микросхеме MAX232 или на одном из множества более дешевых клонов. пример в задаче 06 курса. - свободное время и желание.
Кратенько
как обычно: - это очень интересная и полезная микросхема - и стоит она не дорого 4-5 $. - занимает всего 5 ножeк МК причем 4-мя из них может делится с другими устройствами имеющими последовательный интерфейс - SPI. - она
миниатюрная и я на макетке смонтировал
ее прямо на "спину" МК медными не изолированными,
тонкими проводками вытащенными из
многожильного провода. После пайки и Обратите внимание: номинальное напряжение питания этой микросхемы 3,6 вольт и ниже! А в апликухе от производителя ее питают 5-ю вольтами. Такое решение я счел оправданным, потому что выводы микросхемы не боятся напряжения 5 вольт - об этом прямо сказано в ДатаШите. А вот какое напряжение точно погубит микросхему в ДШ умолчали. Но в Корпорации "Точка опоры" мне сказали, что ставят такие микросхемы в свои ранее разработанные под 5-ти вольтовые микросхемы устройства - отказов в работе памяти нет. У меня работает "в железе" от 5 вольт. Если для питания этой микросхемы вы примените 3,6 вольт, а МК будет питаться от 5 вольт, то вам нужно будет применить схему согласования уровней сигнала - ее можно легко найти в интернете, на atmel.ru или на том же gaw.ru - там вообще много полезной информации.
Я
конвертировал исходный код на языке Си
написанный под
Исходный
код программы AVR335
содержал ошибку! Я исправил и комментарии в тексте программы.
Главное, я сделал заголовочный файл at45d161.h Этот файл
содержит основные функции для работы с
этой микросхемой памяти - в нем
перечислены все опкоды - команды
управления микросхемой - из ДШ.
Я постарался максимально облегчить вам задачу: файл at45d161.h позволяет вам просто записывать байт за байтом в память не задумываясь какие процессы в ней происходят и сколько времени занимают. просто напишите в тексте вашей программы: write_to_flash (vash_byte); и значение хранящееся в вашей переменной: unsigned char vash_byte; будет записано в микросхему памяти, а когда вы снова вызовите эту функцию новое значение будет записано уже в следующую ячейку памяти. все так просто!
Для демонстрации работы устройства служит программа в файле main.c - это простая программа, может быть легко модифицирована под ваши потребности.
Обмену
данными между МК и ПК Для приема данных существует много программ - я использовал LookRS232 вы можете скачать ее. Пример принятых компьютером данных в архиве к задаче (в верху страницы) в файле: 5page.log (читать с низу в верх!). Проверьте его соответствие тому что должна делать программа!
Вы можете
использовать любую допустимую для МК
частоту тактирования - сделайте
соответствующие изменения в настройках
скорости UART и свойствах проекта!
Ну вот и все, теперь ваше устройство может быть прекрасным Дата-Логером - сохранить внушительный объем данных. помните, что при отключении питания во время записи данных, пропадет содержимое одного из двух, активного в данный момент времени буфера микросхемы. Т.е. вы можете потерять максимум 528 байт отправленных в память последними, так что записывайте данные с запасом ...
Если вам что-то не понятно, не получается - пожалуйста перечитайте задачу еще раз, подумайте, просмотрите рекомендованный материал и тексты программ. Я проверил и отладил их в реальной схеме - все работает!
Всё ! Задача закончена.
|