Кастомная прошивка ПЛИС

Для чего все это?
Начав изучать ПЛИС ALTRA EPM240 я сделал отладочную плату с надеждой получить модуль способный выполнить множество задач при объединении преимуществ двух разных архитектур (высокую скорость и параллелизм обработки с гибкостью и многофункциональностью).


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

AVR - Запись данных во флеш память

AVR
Встроенная EEPROM стремительно заканчивается, а данные куда-то записывать надо. Знакомая ситуация, не правда-ли?

Что мы обычно делаем в таких случаях? Ставим внешнюю EEPROM, флеш или SD карточку на 32 гига. Это оправдано, если устройство достаточно сложное. А если оно состоит из одной тиньки и двух с половиной светодиодов? Тогда подключение внешней памяти грозит кардинальными изменениями в алгоритме, а может и пинов банально не хватит.

Но ведь у нас есть своя флеш память, которая в подавляющем большинстве случаев заполнена чуть менее, чем на половину. Отлично! Её и используем для записи данных.



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

Время говорить с камнями или USART Multi-processor Communication Mode

AVR
В устройствах, которые чуть сложнее «помигать на демоплате» часто встает вопрос коммуникации между блоками. Какие у нас есть варианты организации шины «один мастер-куча слейвов»?
1. SPI — классика жанра. Минус — надо к каждому слейву тянуть линию SS — Slave Select, чтобы выбирать конкретного
2. I2C (TWI) — вроде все хорошо, правда развязать двунаправленную шину — гемор тот еще.
3. ну и герой нашего обзора — USART Multi-processor Communication Mode

Работает на камнях, где есть полноценный USART (это меги). За базовый камень возьмем atmega32a.



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

Моддинг программатора

Некоторое время назад был мною куплен на ибее по смешной цене ($11 кажется) программатор. Некоторое время лежал и использовался в том виде, в котором пришел, т.е. в виде платы. Но Как-то мне боязно за него стало, придавлю, замкну, или еще чего-нибудь неприятное. И сделал я для него корпус. А так как к прекрасному все же тянет, то оформил, как рука взяла. Ну а руки сами знаете, откуда растут. Рисовать я не умею, но сильно старался.





Присутствует «световод» для светодиодиков, питание красным, работа — красным+синим=фиолетовым. Крышка открывается для доступа к джамперам. Краску поморщило, когда пытался покрыть хотя бы тонким слоем лака, но я решил, что это не баг, а фитча, добавил немного брутальности в виде черно-желтых полосок, и мне понравилось. Корпус из пено-ПВХ, рисовано акриловой краской. Миниатюрки красить оказалось намного проще, чем рисовать кирпич DIP.

AVR - Power management или как правильно спать

AVR
Когда начинаешь задумываться о снижении потребления камня — обычно все остальное уже вылизано. И светодиод мигает как надо, и RTOS исправно щелкает задачами, и экранчик подмигивает курсором. Соответственно, этот раздел можно рассматривать как мини-квалификационный экзамен на AVR-джедая. После него остается только всякая экзотика — вроде асинхронных счетчиков или External Memory Interface у старших мег.

Как вообще мы можем влиять на энергопотребление кристалла? Что там вообще потребляет?

Основной элемент кристалла — полевой транзистор. Он в стабильном режиме практически не потребляет энергии — емкость затвора изолирована и практически не разряжается, сопротивление в открытом состоянии мало. А вот при переключении нам надо очень быстро перезарядить эту емкость. Соответственно, чем быстрее, тем больше тока надо вдуть в затвор. А чем больше ток при постоянном сопротивлении, тем больше потери. И поэтому, чем выше тактовая частота, тем больше энергопотребление. Отсюда вывод — если хотим экономить, то сразу надо снижать частоту.

Память. То же самое — в стабильном режиме практически ничего не потребляет (наноамперы). Основные затраты — при чтении и записи.

Отсюда вывод — остановив процессор, затормозив его часы до нуля, можно снизить энергопотребление кристалла до минимума. Попробуем достичь его.



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

Еще плата

Покажу еще одну платку — последнюю (по списку) макетку под AVR (хотя, наверное, можно всунуть все что имеет 40 ног и зовется микроконтроллером, т.к. ноги жестко не привязаны).
Очень она мне помогла, за что ей огромное спасибо и почетное место в шкафу славы.

Читать дальше
  • +1
  • 25 апреля 2011, 21:09
  • psv
  • 1

Двухцветный светодиод.

Вобщем расковырял какойто древний монитор и выташил от туда двухцветный светодиод(красный и зелёный) и решил его пременить.



Читать дальше
  • -2
  • 25 апреля 2011, 16:18
  • Andrey

Включаем светодиод

Разумеется МК тут ненужен совсем, но ведь надо на чем-то учится. Схемка будет самая класическая:

!!! Не забудте кинуть 10 ногу МК на землю, а 20 на +!!!
Со схемой я думаю всё понятно, теперь займемся прошивкой.
;************************
;***Включаем светодиод***
;************************

;---Команды управления
.include "tn2313def.inc"
.list
.def     temp = R16
;---Начало кода
.cseg
.org     0
;---Инициализация стека
Ldi      temp, RAMEND
out      SPL, temp
;---Инициализация портов ВВ
Ldi      temp, 0
out      DDRD, temp
Ldi      temp, 0xFF
out      DDRB, temp
out      PORTB, temp
out      PORTD, temp
;---Инициализация компаратора
Ldi      temp, 0x80
out      ACSR, temp
;---Основной цикл
main:    in     temp, PIND
         out    PORTB, temp
		 rjmp   main

В прошивке тоже нет ничего сложного.
В прикреплённом файле находится прошивка и печатка в формате SL5.
***Отзеркальте печатку перед печатью***
Правильно собраная схема работает с первого раза.
Архив: upload.com.ua/get/902544121/Прошивка и плата.rar
  • -3
  • 25 апреля 2011, 14:45
  • Andrey

Простейший тактовый генератор для разлочки AVR от неверных фьюзов.

Недавно я собрал себе USBasp, и перешел с Uniprof на USBASP AVRDUDE PROG. ГУИшка, конечно, хорошая, но мне пока трудно перестроиться на обратную нотацию фьюз-бит. И вот этот момент настал: я залочил свою мегу16 на внешний тактовый сигнал.


Читать дальше
  • -1
  • 24 апреля 2011, 17:18
  • enq

Нетривиальный будильник

Завязка: Дело было… на информатике, делать было нечего…

Сидели мы с другом на паре и обсуждали микроконтроллерные будильники. В один момент мой друг заметил: «А я ведь и не проснусь со звука обычного баззера… Вот был бы он погромче...» И тут нам в голову пришла извращенская идея: а что если МК прицепить к плееру, и он будет по утрам включать нужную песню? Я взялся за это только из спортивного интереса, посмотреть, что получится.


Читать дальше
  • 0
  • 23 апреля 2011, 12:15
  • enq