Страницы курса:

Уроки

Задания


index.htm
01.htm
02.htm
03.htm
04.htm
05.htm
06.htm
07.htm
08.htm
09.htm


z1.htm
z2.htm
z3.htm
z4.htm
z5.htm
z6.htm
z7.htm
z8.htm
z9.htm
z10.htm
z11.htm

New! - ФОРУМ!

Совет - умейте правильно находить информацию!


Задача - упражнение  7

Цель задачи:  

Добавить в устройство и Научиться использовать 2 МегаБайта памяти - не забывающей данные при выключении питания. 

Память это микросхема  AT45DB161 - семейства AT45 - DataFlash компании ATMEL.  

Файловую систему для микросхем этой серии от компании ATMEL вы можете найти в файло-обменнике caxapa.ru или спросить в конфе

За основу для этой задачи я взял АпНоут - пример применения этой микросхемы памяти от производителя, AN AVR335 (здесь он есть на русском языке).

Скачайте АпНоуты - это примеры применения AVR от производителя этих МК
 

Для выполнения задачи необходимо:

 

 

  • - источник питания 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 - там вообще много полезной информации.

 

     
 

Программируя для AVR я пришел к выводу, что CodeVisionAVR это наиболее простой для старта и приятный в работе компилятор

А его Help и особенно раздел о Генераторе Начального текста программы (CodeWizard) конфигурирующего по вашему запросу аппаратуру МК - это практически курс AVR, мой ему и в подметки не годится!

 
     

 

Я конвертировал исходный код на языке Си написанный под компилятор IAR из AVR335  под компилятор CodeVisionAVR

Исходный код программы AVR335  содержал ошибку! В буфер памяти записывалось не 528 байт а 529 и, соответственно, первый байт сохраняемых данных из каждых 529 пропадал.  На качестве звука это почти не отражается, а вот для хранения данных такое не допустимо. Я исправил код и теперь все данные сохраняются без изъяна. 

Я исправил и комментарии в тексте программы. 

Главное, я сделал заголовочный файл   at45d161.h

Этот файл содержит основные функции для работы с этой микросхемой памяти - в нем перечислены все опкоды - команды управления микросхемой - из ДШ. Файл содержит комментарии на русском языке. Я постарался максимально облегчить вам задачу: файл at45d161.h позволяет вам просто записывать байт за байтом в память не задумываясь какие процессы в ней происходят и сколько времени занимают. просто напишите в тексте вашей программы:

write_to_flash (vash_byte);

и значение хранящееся в вашей переменной:

unsigned char vash_byte; 

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

все так просто!

 Для демонстрации работы устройства служит программа в файле main.c  - это простая программа, может быть легко модифицирована под ваши потребности.


В процессе работы МК будет мигать светодиодами, красный у меня подключен к PA4 а зеленый к PA5. Еще он будет выводить данные считанные из памяти в UART на адаптер rs232 в ПК. настройте соответствующий порт на скорость 115200.

Обмену данными между МК и ПК посвящены задачи 4 и

Для приема данных существует много программ - я использовал  LookRS232  вы можете скачать ее.

Пример принятых компьютером данных в архиве к задаче (в верху страницы) в файле: 5page.log (читать с низу в верх!). Проверьте его соответствие тому что должна делать программа! 

Вы можете использовать любую допустимую для МК частоту тактирования - сделайте соответствующие изменения в настройках скорости UART и свойствах проекта! 

Ну вот и  все, теперь ваше устройство может быть прекрасным Дата-Логером - сохранить внушительный объем данных. 

помните, что при отключении питания во время записи данных, пропадет содержимое одного из двух, активного в данный момент времени буфера микросхемы. Т.е. вы можете потерять максимум 528 байт отправленных в память последними, так что записывайте данные с запасом ...

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

Я проверил и отладил их в реальной схеме - все работает! 

Всё !   Задача закончена.

 Задачи Упражнения курса

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Rating All.BY Rambler's Top100 МЕТА - Украина. Рейтинг сайтов


2009-2015 123avr.com