SD-карта на AVR: на USI и без FS

Как видно из заглавия, будем обходиться без «железного» SPI — на тиньках его нет. Зато есть USI, его и заюзаем. Можно, конечно, и программный SPI написать, но там нужен таймер, а их вечно мало. Также хочу отметить, что вряд ли этот опус можно считать полноценной статьей по SD-картам — скорее, некоторые наброски на тему подводных камней (потому и находится в личном разделе). В общем, отмазки закончились, к делу!

Читать дальше

Мультимастер на USI

AVR
Это логическое продолжение предыдущей статьи «USI в двухпроводном режиме».
В этой статье пойдет рассказ о построении системы связи нескольких микроконтроллеров в составе одного устройства, на основе аппаратного модуля USI. Описаны «грабли» и «подводные камни» USI, а так же пути их обхода, на основе реального кода.
Все это реализовано и отлажено на двух микроконтроллерах ATtiny44A, один из которых работал на 8МГц, а другой на 1МГц. Размер кода 408 байт (204 слова).

Читать дальше
  • +2
  • 21 марта 2016, 12:30
  • iva

Про gcc и кодировки

Прочитав статью про создание самодельных шрифтов вспомнил про свои мучения. Правда, у меня проблема возникла в тот момент, когда я зашил созданный шрифт и попытался вывести с помощью AVR-ки русские строки, то есть, с кодировками utf-8/win-1251. Про них и пост.


Читать дальше

И снова о программаторах для AVR

ПРОЛОГ

На заре использования микроконтроллеров конечно же немаловажным было наличие программатора, а для новичка это было делом трудоемким. Прочитав кучу форумов, и не найдя какой-то универсальности случайно наткнулся в журнале Радио на замечательный в то время проект PonyProg в тандеме с хардварным JDM флешером подключаемым к com portу персонального компьютера. Сразу же повторил базовый модуль, модуль под микроконтроллеры фирмы Atmel AVR, микроконтроллеры фирмы Microchip PIC. А сколько радости было, когда я запрограммировал им первый PIC (хороший флешер для PIC — WinPic800)!



Читать дальше
  • +5
  • 02 февраля 2016, 11:09
  • Jman
  • 4

Размер страницы EEPROM у AVR семейства ATmega (E2PAGESIZE)

Как всем известно, EEPROM разных производителей имеют страничное стирание и перезапись страницы (даже если меняется один байт).
Конечно кроме самых мелких, там одна страница == один байт, но этот случай мы сейчас не рассматриваем.
Интересно выяснить какой же размер страницы внутреннего EEPROM у AVR семейства ATmega.

Запись байта по какому-то адресу автоматом запускает последовательность действий: копирование страницы EEPROM (той, где расположена записываемая ячейка) во временную RAM-страницу; модификацию записываемого байта в RAM-странице; очистку всей страницы EEPROM, и, наконец, запись RAM-страницы в EEPROM.
В современных атмелах даташит говорит нам о том что:
The EEPROM array is programmed one byte at a time by supplying the address and data together with the appropriate Write instruction. An EEPROM memory location is first automatically erased before new data is written.


Читать дальше
  • +3
  • 22 января 2016, 21:52
  • UR5SIX

Новость

AVR
Насколько я понял Микрочип купил Атмел.
Но производство АВР будет продолжено.
www.microchip.com/pagehandler/en-us/aboutus/acquisitions/atmel-acquisition.html

USI в двухпроводном режиме

AVR
Потребовалось мне сделать связь между микроконтроллерам, причем такую, что бы каждый мог начинать передачу по своему желанию и не мешать при этом высказываться другим, иначе это называется «режим мультимастер». Очень нужно НЕ использовать прерывания (они нужны для других функций).

Присмотревшись к коммуникационным возможностям, аппаратно реализованных в AVR, перепробовав их на зуб, остановился на USI. Вроде бы странный выбор, повсеместно его стараются обойти, ссылаясь на странности поведения, на сложности использования и прочие страшилки…
Согласен, есть такое дело, сам «нашишковал» достаточно, пока догадался разобраться со странностями непосредственно «в железе», благо цифровой осциллограф есть в наличии.

Как выяснилось, причиной «чуднОго поведения USI» является недостаточно полное описание его в документации. Нет, явных ошибок я там не нашел, просто читаю одно, понимаю другое, пишу код… и получаю: «ничего не работает» и «фигня полная».



Читать дальше
  • +5
  • 18 января 2016, 20:09
  • iva

Стечение обстоятельств

Некоторое время назад я попытался подключить к AVR-ке внешнюю память. Конкретно, соединить ATmega8515 и AS7C256. Увы, в процессе обнаружилось несколько неприятных моментов.


Читать дальше

Простой проигрыватель мелодий на Attiny13

Для новогодней поделки сделал простой проигрыватель-пищалку.




Читать дальше

Новогодняя елка из светодиодов

До нового года осталось меньше двух недель, а новогоднего настроения все нет? Нужно срочно сделать что-то электронно-новогоднее, со светодиодами и ассемблером. Забегая вперед, вот что вышло:



Читать дальше