MegaDog, продолжаем доводить клиента до кондиции

Начнем с небольшой сказки. О текстолите.

Был у меня текстолит. Часть – который я сам купил, часть – который дед мне отдал из старых запасов, когда сам он этим безобразием занимался. Односторонний миллиметровый пошел хорошо и скоро трофейного однослойного не осталось – только тот, что я впоследствии прикупил. Но вот встала надобность травить двуслойку и достал я трофейный дедов двуслойный текстолит.

Создается впечатление, что он трофейный аж из германии в 45м, ну либо просто провалялся долго: мало того что поверхность от окисла час тер, так когда уже протравил при пайке он вонял, словно тухлая селедка приправленная не менее тухлыми носками. Ну и дороги после этого как-то подозрительно отрываются легко… В общем, трофей пришлось отложить в сторону, и достать однослойный полумиллиметровый текстолит, купленный на днях в “кварце”. Хотя основную роль в необходимости перетравки платы здесь сыграло то, что я по дури навалял пару косяков в разводке, которые всплыли потом и пока паял оторвал энное количество дрожек.

Впрочем, оно и к лучшему.

На полумиллиметровом разводочка вышла просто заглядение – нигде ничего не отрывается, все ровненько, все красиво, прям как с завода, несмотря на то что все еще старый добрый ЛУТ.

(Слота под карту не видно, он снизу.)

Ну а дальше уже дело навыка – V-USB, CDC-ACM реализация, и бутлоадерHID

Девайсина содержит бутлоадер (растрепанированный BootLoderHID (Не влезало в 2кб, местами пришлось напильником допиливать)). Так что ISP может отдохнуть на полочке. Коли перед стартом накинуть джампер, то можно будет его обновить. Ну и если будет целевая аудитория – могут спокойно обновляться без ISP. Автор BootloaderHID’a приспособил его даже для работы под мерзопакостной виндой.

В штатном же режиме все плугнплей. Втыкай, находи в /dev файлик ttyACM0, ну а дальше кому и чем удобнее. Хоть миникомом, хоть чатом, хоть из кода – открывай и рули АТ командами.

–cut–

AT

OK

ATV

MegaDog Prototype I rev. 1.2a CoDeName: maniac

FW: 0.1-pre; ldr: BootLoadHID-md 0.9

S/N: lilith-0000

MEPHI Science Session 2010; Party Build. Kaf 27/Mephi

–cut–

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

Суть проста. Первые байты, не считая нулевого (его частенько затирает, потому выкидываем его), являются массивом из N указателей на NULL-trminated стринги в еепроме. Дефайним константы с номерами строк по мере надобности, и делаем хитрую функцию которая по номеру выдает нам стринг. желательно сразу в виртуальный уарт. Ну а далее я соорудил несколько AT команд и функций, которые потом можно исключить из проши дефайном.

ATSI – инициализирует нулями таблицу строк.

ATSA TEXT – добавляет текст в ближайшую свободную ячейку. фейлит если кончились ячейки или еепром.

ATSD – начинает поочередный дамп строк еепрома. выводит первую строку.

ATSN – дампит следующую строку из еепрома. Для сброса в начало используем ATSD

В принципе, то что надо, чтобы заполнять еепром скриптом на баше уже после прошивки. Конечно, реализация не самая красивая, зато зараза работает и сэкономит до 512 байт кода, если будем этот текст писать в PGMSPACE. ну и оперативы.

А вот с дисплеем вышел полный облом. mt6116, который я думал использовать по причине, что олед дисплейчик так и не дошел до меня, имеет минимальный уровень логической единицы – 3.6 вольт. а у меня питание 3.3. Первой мыслью было быренько соорудить на 74hc244 конвертер уровня (пока там придет заказ из элитана с готовым решением?) – читать из дисплея мне все равно не надо, но потом я эту затею оставил, ибо лень. Будем ждать OLED’a из раделя… ну и когда приедут из элитана запчасти можно будет собрать до кучи экстеншн с эзернетом… слотов под экстеншны через SPI я предусмотрел 2. Ну один еще можно добавить, перебросив проволочку на ISP коннекторе.

Добавить комментарий