Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отладочная плата для ATMega2560
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
mr_ia
Очередная отладочная плата выкладываемая здесь. Проект не коммерческий делаю для себя.
Опишу вкратце. Я его малость урезал, а то он разросся неимоверно. Времени не хватает, и вообще накручивать до бесконечности можно…
Некоторая специфика при оформлении эл. cхем мне присуща сильно не ругайте
Решил сделать отладочную плату на которой с одной стороны хотел опробовать элементную базу (потенциально применимую в других изделиях), с другой стороны попрактиковаться в программировании микроконтроллеров.
В качестве контроллера взял ATMEGA2560 (по идее самую мощную из семейства), по причине имеющегося опыта работы с Атмелом и малым опытом программирования их в частности. (посмотрел CVAVR вроде относительно несложен, но выше AVR не прыгнешь, но для начала пойдет думаю).

Что на ней хотел сделать.
1. Поработать с интерфейсами USB(D2), RS-232(D12), беспроводная передача данных об этом отдельно. В одном девайсе планировал применить общение приборов посредством 433МГц, что здесь и реализовано на D8..D11, фактически там будут общаться 2 UARTа 2,3. Сделал еще RS-485 но плюнул все равно мне здесь не на чем тестировать и убрал. Поработать с SPI, I2C, 1-Wire, до комплекта еще 3-х проводной (D43).
2. Поработать c GPRS думаю использовать модем M2106 c M2106 DVB тест платой от терры по 232-ому интерфейсу. Брать буду со встроенным TCP-IP, возможно подключу на симку статический IP.
3. Поработать с GPS. Давно хочу все не получалось. GPS Модуль Copernicus с активной антенной (внешней).
4. В целом попрактиковаться в программировании.

Комплектацию выбирал подешевле, ибо не Рокфеллер, но в важных моментах не жадничал.

Питание. Все это дело питается или от USB основное питание (если мощи хватит) или от AC-DC преобразователя MPS-45-24. (24В, 1.9А). Так же от батарейного отсека 4хАА. Понижение с 24 до 5 через линейный преобразователь делал, т.к. жалко разоряться на импульсный. Попутно получаю 12 и 9В (мб пригодятся). Коммутация питания с батарейного, AC-DC питания или от USB через реле.
Из 5В делаем 3.3В посредством MАХ1685 (или 1684 что получиться достать) (3,3В, 1A). Важный момент для меня! возможность выключения и включения схемы по нажатию кнопки что и сделано через такой вот ресет.

Об интерфейсах.
О USB и RS-232 говорить особо нечего.
Побольше о 433МГц. Как говорил, общаются между собой 2 UARTa (2-ой и 3-ий) приемник и передатчик работают на 1 антенну (там еще есть вопрос о нем ниже…) переключаясь между приемом и передачей по управляющему сигналу с Атмела. Имеется возможность определять мощность сигнала на передачу и на прием (хотя мб и неактуально в условиях 1-ой платы, но не попробовать глупо).
На SPI висят:
o Датчик температуры (D24),
o RTC с резервным питанием (D25),
o Flash на 16-Mbit (D26),
o EEPROM на 256k (D27),
o Ethernet контроллер с SPI интерфейсом (D28).
Flash и EEPROM могут программироваться внешне (я AS-4 от аргуcофта использую). Т.к. ATMega работает тока с одним SPI управление и внешние события с микросхем замкнуты для экономии ног контроллера. Питание и сигнальные линии прерываются через переключатели. В целом, отключив SA41, SA31 вообще можно забыть об SPI периферии.
На 3-х проводном висит RTC (D43) с резервным питанием. Шина, основное питание и резервное питание могут отключаться через переключатель SA29.

На I2C висит:
o Преобразователь I2C в 1-Wire (D14),
o Датчик температуры (D15, D18),
o Две-RTC (D16, D17) D16 с резервным питанием,
o EEPROM 16-kbit (D19),
o 16-bit АЦП (D21),
o 8-bit ЦАП (D20),
o 2 Led драйвера (D22, D23) с управлением 2-ух семи сегментных индикатора (VD7, VD8) (по 3 знака) + 8 кнопок.
Адреса проверил, друг у друга не конфликтуют. SDA и SCL заведены куда нужно, а так же на 2 другие ноги Атмела (CVAVR позволяет программно реализовать I2C, а в Атмеле он есть железный). Сама шина + внешние прерывания с периферии + питание периферии может отключаться через переключатели. В целом, отключив SA21, SA26, SA35, SA36 вообще можно забыть об I2C периферии.

На 1-Wire висит:
o RTC (D29),
o Термометр (D30),
o Монитор батарейного питания (D32) с микросхемой приведения логических уровней (D31).
Питание, шина, прерывание могут отключаться переключателем SA30. Шина идет или на ногу Атмела для эмуляции 1-Wire (CVAVR позволяет) или на преобразователь I2C в 1-Wire (D14). Важный для меня момент монитор батарейного питания D32 (DS2438) ибо полезно в носимых приборах знать, когда сядут батарейки. Во первых непонятно при АЦП у него есть встроенная опора? Как работать с ней понятно, а как она работает не очень , 4 нога D32 VAD как я понимаю для АЦП напряжения батареи. Тогда непонятно почему она не заведена на + батареи на рисунке 1. В общем, есть по ней вопросы, а учитывая что опыта работы с 1-Wire у меня не было прошу проглядеть повнимательней.

Работа с GPRS.
Ну здесь все из области теории для меня, хотя особых сложностей не ожидаю. В качестве GSM\GPRS модема выбрал M2106B-410 V6.41B главные для меня плюсы: Встроенный TCP\IP и наличие отладочной платы за 500р. Управление по AT-командам. Питать можно как с внешнего источника, так и с платы (от батарейного отсека или AC-DC преобразователя). Если от платы питаться думаю оптически развязываться не нужно.

Работа с GPS.
Полезная вещь.
Так же все в области теории. Ожидаю неприятностей по управлению. Прошу уделить внимание активной антенне т.к. опыта работы с ВЧ нет. В принципе делал все по описанию (стр. 44 Copernicus_Manual_2006.pdf), т.е. использование активной антенны, без возможности определения состояния антенны (подключена или нет), но смущает индуктивность L4. Не нашел рекомендованную, взял эту от безысходности. Если порекомендуете что нить поинтереснее с удовольствием рассмотрю.


Part Number Inductance Test Frequency Rated Current Max. of DC Resistance Q (min.) Test Frequency Self Resonance Frequency (min.)
LQW18ANR10J00 100nH5% 100MHz 220mA 0.68ohm 34 150MHz 1800MHz
Нужно учесть что несущая у GPS 1575.42 MHz. (По крайней мере у гражданской вроде).
Питание, управление, прерывание с GPS можно отключить через переключатель SA37.

Еще немного о периферии.
Память. Хоть ATMega2560 и имеет на борту 8K-byte SRAM, на крайней случай решил добавить еще 64K-byte, для чего использую CY7C1019DV33 (D35), 1-Mbit (128K x 8) Static RAM. Адресов там 16, а на Атмеле позволительно 15 так что 16 адрес CY7C1019DV33 статично вешается или на землю или на высокий уровень. Подключение памяти как рекомендуют.

Индикация.
o Имеется возможность подключения знакосинтезирующего LCD (в CVAVR это просто),
o так же думал подрубить графический LCD BP320240C если удастся достать,
o 2-а семисегментных Led индикатора (по 3-и знака),
o 10-разрядная светодиодная линейка,
o Банально 8-емь светодиодов,
o Пищалка на 2,3КГц.

Внешние события.
o Есть 8 кнопок на INT0…INT7
o Есть 8 кнопок на разъем с фиксацией (и светодиодом)
o Есть возможность подключить клавиатуру 4х4

Физические величины.
o Есть датчик температуры (D38),
o Преобразователь ток-напряжение (D36), будем смотреть сколько кушаем (Imax=500mA).
o Датчик освещенности (D37).
Преобразователь ток-напряжение и датчик освещенности (D37) так же усиливаются.
Соответственно напряжения описывающие температуру, величину протекающего тока (усиленный сигнал и нет), освещенность (усиленный сигнал и нет), Уровень мощности принимаемого сигнала с RF-433 (2шт.) и один сигнал с ЦАП идут на порт K Атмела (ADC8…ADC15). При работе со встроенным АЦП используется опора (D33) REF192 (2.5В). Так же данные напряжения могут быть мультиплексированы (D39) и заверены на ЦАП 16-bit на I2C (D21).

Немного аналога.
Из аналоговых элементов немного (я с аналогом практически не работаю).
o Компаратор (D42),
o Операционик (D46),
o Аналоговый таймер (D40),
o Функциональный генератор (D41).
Все ноги важные заведены или на разъем или на контрольные точки. На выходах компаратора можно помигать светодиодами.


В окончание.
Все ноги микроконтроллера выведены на штыри и по портово на разъемы. Вся периферия имеет контрольные точки, может отключаться. Постарался запихнуть сюда побольше но пришлось сократить (недостаток времени да итак уже много получилось).
Если у кого нибудь есть предложения(что поправить, что добавить) готов рассмотреть (в течении дней 5-6, пока плату разведу и не отправлю на производство). PCB файл, номер заказа в резоните выложу попозже.
Если кому либо данная информация поможет, буду рад. Если меня покритекуете буду рад не меньше smile.gif
Sl_
Не хватает разъма для SD-card.
И вообще может сразу под Xmega. Или даже на одной строне платы Xmega на другой 2560.
А если захотеть на 16 Mhz. то уже никак ...
mr_ia
Спасибо за подсказку на счет SD карты. Добавил разъем. На счет Xmega думаю рановато. Боюсь проблем с комплектацией, сможет ли мой програматор ее шить. Думал приступить к работе с платой на след неделе уже, а так это может затянуться...
oll
XMEGA - очень неплохо бы
да и 64-pin and 100-pin AVR шобы можно впаять как у
http://www.mikroe.com/en/tools/bigavr/
Sl_
Кварц к сожалению не на максимальную частоту.
Может поставить генератор с перестраиваемой частотой?
Если для автомобильных приложений то можно и акселерометр добавить ....
Но главное, мне кажется Xmega!!! или впаиваемая или на колодке. И две колодки - одна Xmega а другая mega2560 или еще чего..
Лично я как только Xmega появится в свободной продажи буду переползать на нее.
Sl_
Ну и чем дело закончилось?
mr_ia
Добрый день.
Прошу прощения за задержку, немного отложил проект.
В схеме были следующие изменения.
Питание. Поставлен DC-DC с 24 на 5В (MAX5090BATE), для много потребляющих устройств сделан отдельный источник питания DC-DC c 5 на 3,3В (MAX1685EEE).
Добавлен Bluetooth UARTDNG105 (попался в руки);
Добавлен ZeebBee модуль XBP24-BWIT-004 (возможно будет применен в других устройствах);
Добавлен встраиваемый GSM\GPRS модем Q2686 с антенной на плате;
Добавлен GPS приемник LASSEN IQ;
Добавлен разъем для SD карт DM1AA-SF-PEJ(21);
По схеме все вроде.

По плате. Плата развелась очень нехорошо, сказал бы хреново. Номер заказа не выкладываю т.к. совмещен с другим проектом.
Имеется ошибки.
Из за ошибки при разработке схемы ноги для программирования контроллера пришлось резать у разъема XT12 (1,9 PE0,PE1 заменены на PB2,PB3). Хорошо, что это был конечный пункт этих связей.
Неправильно ориентирован разъем для SD карт (как произошло, вообще не заметил)…
D34 поставил не TSSOP20 корпус, а SOIC20, теперь ищу ее в этом корпусе…
Кнопки SA10…SA18 (PCM2-1-E-B-E, PCM2-1-R-B-R) не очень хотели садиться на посадочные места, пришлось слегка дорабатывать…
Модем Q2686 хреново сел на посадочные места (пришлось отформовать ноги крепежа, они же земля).
Плохо развелся I2C интерфейс, в следствии чего подтяжка изменена на 1Ком(R27, R28).
На текущий момент пока все обнаруженные косяки.

Запаяно еще не все.
Что пробовал. Начал с индикации, LCD знакосинтезирующий работает нормально, Пищалку HCM1203X попробовал- пищит, подкрутил подстроечник больше пищать не будет чувствуется никогда… В наличии сейчас нет позже с ней повожусь.
Графического LCD в наличии пока нет.
Далее проверил SPI. D27-AT25256AN-10SU-2,7, D26-AT45DB161B-TU читаются через внешний разъемы XT31, XT30. Соответственно думаю работать будут корректно, дальше пока не работал.
Сосредоточился на I2C(софтовым). Поборол LED драйвер MAX6956AAX, ЦАП MAX5820MEUA, (тестовые прошивки прилагаю), EEPROM 24LC16BT-I/SN, RTC DS-1338Z-33 (прошивки выложу попозже, пока не оформил). Сейчас засел на AЦП ADS1110A0IDBVT (D21).
И вот с ним то как раз проблема. Бегло прочитав даташит похоже я записал в конфигурационный регистр следующее 10011100.
1- Начало преобразования
0- Всегда 0
0- Всегда 0
1- Режим одиночного преобразования
1- DR1 \\ Определяют скорость = 15SPS
1- DR0
0- PGA1 \\ Определяют коэффициент усиления = 1
0- PGA0
После выполнения которого похоже АЦП вошел в Power Down Mode?,из которого может выйти только командой сброса переданной с помощью общего вызова по шине I2C? Т.е.
i2c_start();
i2c_write(0x00); // Общий вызов
i2c_write(0x06); // Команда на сброс?
i2c_stop();
Причем на 06h и 04h ADS1110 обязательно должен ответить(ASK).
ASK Вроде есть. (все другие микрухи на I2C интерфейсе обесточены).

Если писать следующее.
i2c_start();
i2c_write(0x91);
data=i2c_read(0);
data2=i2c_read(0);
config=i2c_read(0);
i2c_stop();
DDRA=config;
Светодиоды молчат, на осциллографе я ASK честно говоря поймать не могу, SDA все данные в 1 (по осцилографу), светодиоды не светят…

Собственно вопрос правильно ли я описываю последовательность сброса после общего вызова по I2C шине? http://www.gaw.ru/html.cgi/txt/interface/iic/iic9_11.htm
Если у кого есть опыт работы с ADS1110 гляньте куски кода плс(в пристежке).
Можно перепаять ее, но думаю все равно на эти грабли наступлю..

Последний вариант схемы (ошибки в ней не исправлены!), плата (аналогично), спецификацию прилагаю.
Тестовые прошивки для MAX6956AAX, MAX5820MEUA прилагаю (в MAX5820MEUA есть косяк при чтении регистра данных младший байт читается всегда как F, но значения выставляются корректно).

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


Pcb файл (не влезв первое сообщение)

Схема в pdf
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.