Alan

Проект Инфо-Панели Для Офиса Телефонии

Рекомендуемые сообщения

0805, они как раз должны нормально ложиться между отверстиями (немного внахлёст, но это даже лучше - будут держаться).

Именно так.

Мерять, к сожалению, не на чем.

Печально. Даже тестера "с инуктивностью" нету ? Сейчас у многих тестеров есть эта функция. Цена вопроса 2-3тыр. Можно и прикупить по случаю, потом прегодится. Впрочем дело хозяйское.

Разве что, могу собрать генератор либой мощности до 1-2Вт и замерить параметры на осциллографе (DSO Quad). Точность не очень большая, но обычно достаточно для большинства нужд.

Не имеет смысла. Пересчитать уж больно сложно будет. Тогда хорошенько замерьте геометрические размеры кольца, и точно скажите мне как покрашено, чисто желтое (по всей поверхности) или бело-желтое(одна из поверхностей - белая).

Либо у меня слишком большое терпение, либо у меня хороший провод. Ни одного прокола изоляции не наблюдал. Вообще, провод ведёт себя отменно. Лак не слезает при пайке, зачищать можно быстро кончиком канцелярсного ножа, хоть на 0,5мм (примерно на глаз, меньше - уже не получается).

Таким проводом подпаивался к контактным площадкам разъёма дисплейного модуля Nokia 1110i (тот ещё гад, хоть и всего 2*5 пинов).

Тоесть навык "монтажник" у вас прокачан должным образом. Поздравляю. Это весьма хорошо. Хотя, если у вас просто проходило 10 параллельных проволочин - это еще не так страшно. Опыт показывает, что чаще всего эмаль прокалывается об ножку какой-нибудь микросхемы (ножки имеют квадратное или прямоугольное сечение и соотв. острые края). Особенно если это макет, из нескольких десятков корпусов, с которым работают (ковыряются там). Впрочем, если это не самофлюсующийся провод, то прециденты нормальной работы с такими макетами известны, я просто не хотел рекомендовать это человеку, монтажных возможностей которого я не знаю. Тут все очень зависит от культуры монтажа и качества провода (кстати выже вроде жаловались, что у вас нет нормального намоточного провода ?)

Вобщем, если считаете такой монтаж достаточно удобным, особенно если есть возможность после сборки - промыть от флюса и залить лаком (или разведенной с растворителем эпоксидкой), в несколько слоев, чтобы все склеилось - может получится вполне достойно. Но если что - минздрав вас предупреждал :)

 

Последняя догадка верна. Изначально таймер настроен на отработку милисекундных тиков для библиотеки TCP/IP (ну и UDP тоже), потому он и настраивается на режим работы CTC (хоть это и тоже PWM, но при достижении счётчиком заданного значения, генерится прерывание и счётчик сбрасывается). Это сделано, чтобы получить максимально приближённые милисекундные интервалы.

Datasheet

Т.е. вам нежно еще килогерцовое прерывание, помимо задач вывода звука и индикации. И его частота в 1кГц - строго задана условиями задачи ?

Я могу выставить предделитель + счётчик на значение 144 (для 18.432MHz), при этом смогу управлять яркостью в пределах 0..143 единицы, что в принципе, довольно много. Но "нормальный" PWM режим с возможностью менять значения 0..255 получить не смогу.

Хотя, думаю, 144 делений будет выше крыши. Думаю, Вы натакливали меня на данную мысль?

Вообще, я имел в виду использование 16-битного таймера, где в PWM-моде ICR-используется как вершина (счетчик пилит от 0 до значения ICR) , а OCR - задает ширину ШИМ-а, по сбросу выставляется прерываение. В ICR - грузите 18431 - для "fast PWM", или 9216 - для "fhase correct PWM", прескалер - на единицу. В ОСR - значение ШИМ. Аж по 9215 -ти градациям :)

Но, в принципе, то что вы предагаете - тоже вполне нормально. 144 градаций яркости - более чем достаточно.

Еще вариант: 16- битный таймер используете для получения ШИМ-а с частотой 22кгц (ICR=837 или 419) с его выхода - получаете шим для регулировки яркости (419-градаций, еще и 22 периода ШИМ-а на время горения одной строки). С него имеете 22кгц прерывание для загрузки звуковых данных, и по его выходу - перезащелкиваете данные в выходную защелку ЦАП. Егоже выход заводите на вход другого таймера, можно и 8-битного. Он делит на 22 (CTC-mode), выставляет 1кГц прерывание, и перезащелкивает выходные регистры 74HC595. Грузить данные в 74HC595 - можно по этому прерыванию, а можно в обработчике 22кГц прерывания считывать текушие значние делителя (второго таймера), и по его состоянию (посредством switch(TCNT0)) - грузить порции данных в 74HC595 . Например при значениях 0..9 - проталкиваем по 2 байта столбцовых ключей (байтовая загрузка !!!), при значении 10 - строчные ключи, при значениях 11...21 - ничего не делаем (default: break;), ждем когда перезащелкнется ранее загруженное, и начнется новый цикл. Таким образом, загрузка видеоданных - естественным образом "размазывается", относительно малыми порциями, по нескольким обработчикам звукового прерывания. И заметтье: без всяких дополнительных вызовов и входов в прерывание.

Если что-то нужно для Еthernet-а - то можно как раз "распихать" по оставшимся значениям TCNT, или флажек взводить по 1 из значений TCNT, а в фоновой задаче - обрабатывать, или по 1 из значений TCNT - разрешать вложенные прерывания и запускать "долгий" обработчик (1 раз в милисекунду) - фактически просто ветку, которая однако может прерываться последующими вызовами 22кГц прерываний - будут вложенные вызовы тогоже обработчика, но в этуже ветку - пойдет только следующий 22-й, главное успеть закончить до его возникновения.

Т.е. можно вообще обойтись одним обработчиком прерываний, (и он будет весьма быстрым), и 2 таймерами (16 и 8 бит).

Приблизительно, обработчик 22кГц прерывания будет выглядеть так:

//для матрицы 8х160, и 8-битного ЦАП-а.

//все это висит на прерывании от таймера1 (16-битного), один из его выходов - заведен на вход таймера 0 (8-битного)

PORTA=audiodata[pt++]; // audiodata - это звуковые данные из буфера (смотря как там у вас организован буфер, но тут предполагается преращение указателя и проверка его зацикливания/переполнения)

PORTC^=AUDIO_STROBE; PORTC^=AUDIO_STROBE; //дважды инвертируем бит, положим порта C, генерируем строб записи. AUDIO_STROBE - константа - маска строба записи

switch(TCNT0)// считали состояние делителя на 22, перешли на ветку

{

case 0: strnum++; strnum&=0x07; vbase=scroll_pos+strnum*20; break;// прирастили номер строки и вычислили базовый адрес

case 1: PORTA=videodata[vbase]; PORTC^=VIDEO_STROBE; PORTC^=VIDEO_STROBE;

PORTA=videodata[vbase+1]; PORTC^=VIDEO_STROBE; PORTC^=VIDEO_STROBE; break;

case 2: PORTA=videodata[vbase+2]; PORTC^=VIDEO_STROBE; PORTC^=VIDEO_STROBE;

PORTA=videodata[vbase+3]; PORTC^=VIDEO_STROBE; PORTC^=VIDEO_STROBE; break;

case 3: PORTA=videodata[vbase+4]; PORTC^=VIDEO_STROBE; PORTC^=VIDEO_STROBE;

PORTA=videodata[vbase+5]; PORTC^=VIDEO_STROBE; PORTC^=VIDEO_STROBE; break;

/*....................................................................................

videodata - 256-байтный видеобуфер, vbase-указатель начала текущей строки в нем, переменная - однобайтовая - естественным образом ограничивается значением 255, что зацикливает скроллинг, без дополнительного маскирования. scroll_pos-позиция скроллинга

(тоже байтовая). VIDEO_STROBE -константа- маска строба записи.

......................................................*/

case 10: PORTA=videodata[vbase+18]; PORTC^=VIDEO_STROBE; PORTC^=VIDEO_STROBE;

PORTA=videodata[vbase+19]; PORTC^=VIDEO_STROBE; PORTC^=VIDEO_STROBE;

break; //итого записали 20-байт с заданной позиции.

case 11: PORTA=1<<strnum; PORTC^=VIDEO_STROBE; PORTC^=VIDEO_STROBE;

break; //загрузили значение строчных ключей strnum - текущий номер строки

//case 12: .... case 21: сюда можно распихать Ethernet, смотря что там надо

default: break; //на остальных значениях TCNT - ничего не делаем.

}

// при переходе TCNT, из состояния "21" в состояние "0" - перезащелкнутся выходные данные в 74HC595

//на каждый вызов тратится около 12 инструкций, в самом "длинном" случае (пустые обработчики - будут короче, если только ради Ethernet-а не придется запихивать туда что-то сильно длинное) т.е. менее 30тактов, если я не ошибаюсь, не считая входа в прерывание, с ним - ну пускай 50 тактов.

Т.е. менее 5-6% процессорного времени, на звук вместе с индикацией, и никаких мерцаний !!

Печально, что у 1284-й меги оказывается нету интерфейса внешней SRAM (зато дофига внутренней SRAM), следовательно придется программно "махать стробом", для защелкивания данных, что удлинняет вывод каждого байта - на 2 операции. :(

Изменено пользователем dr.Nimnul

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут все очень зависит от культуры монтажа и качества провода (кстати выже вроде жаловались, что у вас нет нормального намоточного провода ?)

А собственно, его и нет. Это единственный "нормальый" эмалированный провод, который у меня есть. Единственного же диаметра где-то в 0.1-0.15мм. Не замерял точно. Из какого-то старого рэле. Что называется, "Что нашлось, то и применяем".

Т.е. вам нежно еще килогерцовое прерывание, помимо задач вывода звука и индикации. И его частота в 1кГц - строго задана условиями задачи ?

Оно самое и нужно. Хотя, если откажусь от TCP-транспорта и оставлю ТОЛЬКО UDP-пакеты с самопальной проверкой синхронизации и актуальности потока (может понадобиться для того же звука, ибо задержки сети - это одно, хотя и сеть должна быть стабильной, а вероятность получить "лишний" пакет, который не поместится в буфер, но уже нужно принять следующий /или вообще, пакет потеряется/ не нулевая).

Про альтернативный вариант с индикацией, конечно, порадовало, хотя у меня уже не будет меняться концепция матрицы и отображения. Понимаю, Вам привычнее сэкономить десяток тактов на вывод байтом, но у это значительно усложнит схему коммутации. Хотя, допускаю, можно, например, сделать 8 столбцов... Чтобы можно было отображать сразу целый байт... но при этом потребуется значительно больше соединений. Боюсь, это пока не моё. Разве что, можно допилить маленькой внешней схемой.. разве что, скоростной. Выводится байт на порт, даётся строб, и тот считывается каким-нибудь регистром, и генерируется 8 тактов сдвига (в итоге, байт таки уходит, но всего за 4 инструкции. Но тут упираемся в 30MHz быстродействия 74HC595... Проще оставить как есть.

К тому же, у меня знакоместо получается размерами 8*6, то есть, из байта используется только 6 бит, остальные даже не отсылаются. И есть несколько процедур для работы с этими битами.

Да-да, теряю процессорное время... понимаю. Нет возражений. Но вот, не получается иначе у меня.

 

Печально, что у 1284-й меги оказывается нету интерфейса внешней SRAM (зато дофига внутренней SRAM), следовательно придется программно "махать стробом", для защелкивания данных, что удлинняет вывод каждого байта - на 2 операции. :(

Я вообще не видел у ATMega* интерфейса внешней памяти. Имел дело (непосредственно) с 8535, 26l, 1284p, 8, 48. У них для внешней памяти слишком уж мало выводов.

[offtop]Если мне не изменяет память, не на всех ARM* чипах есть интерфейс внешней SRAM. Хотя, STM32F407VGT6 имеет FSMC контроллер. И даже умеет работать с внешней памятью.... занимая почти всю переферию именно ей.. Хехе. Но хоть как-то :)[/offtop]

На сладкое: (Начал паять плату индикаторов) Фото!

CGsLqxxwq4w.jpg

uYa8HySzBfU.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А собственно, его и нет. Это единственный "нормальый" эмалированный провод, который у меня есть. Единственного же диаметра где-то в 0.1-0.15мм. Не замерял точно. Из какого-то старого рэле. Что называется, "Что нашлось, то и применяем".

А-а-а ! Ну почти как я и говорил. Только для транса - поищите старый пускатель, или реле помощнее. Там 0.1-0.15мм - слишком тонко (во много раз складывать придется). Хорошо бы что-нибудь вроде 0.4-0.5мм .

 

Про альтернативный вариант с индикацией, конечно, порадовало, хотя у меня уже не будет меняться концепция матрицы и отображения.

Дык я же и рассчитал под ваши 8х160.

 

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

Да ничего оно не усложнит ! вот на той самой макетке, что вы сейчас паяете - и "перепутайте" столбцы таким образом - чтобы они "легли" на ноги 74HC595. Навесным монтажем - это вообще никакой сложности не представляет. (прорисовать только на бумажке, чтобы не запутаться) Более там никакого усложнения - нету вообще !

Не майтесь... ерундой !

Хотя, допускаю, можно, например, сделать 8 столбцов... Чтобы можно было отображать сразу целый байт... но при этом потребуется значительно больше соединений.

Чегото я вообще не врубился. Это вы о чем ??

Разве что, можно допилить маленькой внешней схемой.. разве что, скоростной. Выводится байт на порт, даётся строб, и тот считывается каким-нибудь регистром, и генерируется 8 тактов сдвига (в итоге, байт таки уходит, но всего за 4 инструкции. Но тут упираемся в 30MHz быстродействия 74HC595...

Можно конечно и так, но это - извращение. Будет корпуса на 2-3 больше (прорисовывать надо), уходить будет таки за 8 тактов (а это как раз те самые 4 инструкции), т.е. возможен гемор, что не успеете к загрузке следующего байта, надо внимательно думать. А вот никаких проблемм с быстродействием - тут как раз нет. Начнем с того, что у вас таки 100MHz 74HC595, от NXP :D, во вторых кварц у вас - всего 18МГц, а умножать - действительно гемор, (как и ставить отдельный, асинхронный генератор). Еще есть некоторый гемор с отбором частоты, от генератора Атмеги, хотя это решаемо, если только кварц там не в "экономичном" режиме настроен (когда он с мизерной амплитудой генерит, и усиливается внутри кристалла проца).

К тому же, у меня знакоместо получается размерами 8*6, то есть, из байта используется только 6 бит, остальные даже не отсылаются.

Фу-у-у ! А плавное "бежание" текста вдоль строки ?

Я вообще не видел у ATMega* интерфейса внешней памяти. Имел дело (непосредственно) с 8535, 26l, 1284p, 8, 48. У них для внешней памяти слишком уж мало выводов.

Насколько я помню, он точно есть у 162-й (и таки действительно там занимает почти всю переферию, в виду 44-ногости, хотя если ограничится 256 адресами - все не так страшно, там адрес мультиплесируется с данными, изанимаются еще только 3 ноги, кроме 8 линий порта А ), также он есть в семействе ATmega640/1280/2560 - там ввиду 100-ногого корпуса - его можно в полную силу использовать вместе со всей перефериеей, (коей там тоже дофига).

На сладкое: (Начал паять плату индикаторов) Фото!

Все нормально, только надо было сразу обрезать лишнюю макетку (оставив только небольшие поля под штыри), потом, когда будет закончен весь монтаж - это будет сделать очень трудно, чтобы не покалечить его. Хотя, при наличии нормальных ножниц по металлу, и сильных, прямых лапок - может и проканать.

Особенно радует наличие металлизации в макетке - штыри будут держаться хорошо, (да и все остальное - тоже).

Кстати резисторы - я бы ставил возле штырей, со стороны индикаторов. Это позволит без лишних перемычек "сменить слой", у основной массы штырей (ну к строчным - допаяете 8 перемычек, толстой луженкой), ибо они торчат в другую сторону, а накручивать провод на них - както некрасиво.

Изменено пользователем dr.Nimnul

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда хорошенько замерьте геометрические размеры кольца, и точно скажите мне как покрашено, чисто желтое (по всей поверхности) или бело-желтое(одна из поверхностей - белая).

Это.... жёлто-белое кольцо..

Только размеры чуть отличаются от Ваших - 23х14х10. Да, внутренний диаметр - 14. Проверил трижды.

Достал транзисторы IRF640N. И это хорошо!

Кстати, для трансформатора приобрёл Ш-образный магнитопровод Ш6х6 (М2000НМ1-14, хотя для меня только "М2000" говорит что-то :( ) и каркас на 2 секции. UC3845BD1 (SO- 8). Осталось выпаять оптопару.. и буду собирать после индикаторного модуля.

К тому же, у меня знакоместо получается размерами 8*6, то есть, из байта используется только 6 бит, остальные даже не отсылаются.

Фу-у-у ! А плавное "бежание" текста вдоль строки ?

А что ему будет-то? Бегут-то собственно, биты... там заковырка идёт только в первом и последнем знакоместе, которые необходимо выводить не полностью... как доделаю плату индикатора - сделаю дэмку с любой скоростью обновления и покажу.

По коду, все решается (хотя и минус пара десятков тактов на символ, но это не настолько много, чтобы париться).

Хотя, допускаю, можно, например, сделать 8 столбцов... Чтобы можно было отображать сразу целый байт... но при этом потребуется значительно больше соединений.

Чегото я вообще не врубился. Это вы о чем ??

Боюсь, я сам не очень понял, о чём я.. Была мысль, точнее, пытался представить, как можно передать целиком байт (сразу) на всю панель... по сути, нужно взять 8 индикаторов и 8 74HC595 и соединить следующим образом:

Q0(1) = 1.1 (Индикатор.Стоблец)

Q1(1) = 2.1

Q2(1) = 3.1

<...>

Q7(1) = 8.1

Для второй ИС - то же самое, только она будет управлять вторым столбцом на других индикаторах.. Ну и так далее.

Получается вариант с идущим байтом. Кстати, идея хороша... но опять же, накладные расходы на сдвиг оного. Зато -20 тактов (примерно) на вывод. Портит моё знакоместо 6*8 (начальное 5*7, но с доведением до более удобоваримого вида).

Все нормально, только надо было сразу обрезать лишнюю макетку (оставив только небольшие поля под штыри)

Упс.. Но это не проблема - отрежу чуть позже. Не ножницами, но дрелью. Я просто подбирал размеры.

Я извращенец... -_- <- Нет, это должен быть не спящий смайл.

Кстати резисторы - я бы ставил возле штырей, со стороны индикаторов.

У меня поулчился такой вариант.. Да, не очень красиво, но экономится 1 шаг сетки как раз у штырей. И, боюсь, я не совсем понял, что Вы подразумевали под "сменить слой". *Посмотрел на плату* Хотя, кажется, понял... К штырям нужно подводить контакты "сверху", где они будут паяться, а все проводники будут, по сути, "снизу", где выводы индикатора. Хм.. Чиорт.. Но зато так я ТОЧНО не перепутаю, где столбцы, а где строки ^_^

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это.... жёлто-белое кольцо..

Только размеры чуть отличаются от Ваших - 23х14х10. Да, внутренний диаметр - 14. Проверил трижды.

Ну тогда это всетаки K26 - рекомендую отложить пока в сторонку, на самый крайний случай.

Кстати, для трансформатора приобрёл Ш-образный магнитопровод Ш6х6 (М2000НМ1-14, хотя для меня только "М2000" говорит что-то :( ) и каркас на 2 секции.

Неплохая вещица, только надо собирать с зазором. Завтра доберусь до другого компа - прикину вам витки и зазор.

А что ему будет-то? Бегут-то собственно, биты... там заковырка идёт только в первом и последнем знакоместе, которые необходимо выводить не полностью... как доделаю плату индикатора - сделаю дэмку с любой скоростью обновления и покажу.

По коду, все решается (хотя и минус пара десятков тактов на символ, но это не настолько много, чтобы париться).

Вообще, ИМХО "бежать" - должна битовая матрица, понятие "символы" - должно "закончится" после заполнения видеобуфера, т.е. - в фоновой программе, до обработчика прерывания.

В обработчике - надо только вычислять смещение, по текущим значениям глобальных переменных прокрутки, (по X и Y). В том премере, что я дал - сделано только по Y, каюсь, не очень обдумал. чтобы было по обеим координатам - надо располагать в видеобуфере таки не "вплотную" а с некоторым запасом - т.е. сделать виртуальную длинну строки не 160-пикселов (20байт), а побольше например 32 байта "vbase=scroll_pos+strnum*20;" - заменить на "vbase=scroll_pos+(strnum<5);" и т.к. буфер получается уже ровно 256-байт - надо бы его увеличить, это повлечет за собой работу с 16-битной переменной и маскирование. Благо это наверное можно все впихнуть в единственное ветвление, а дальше ограничится 8-битным индексом. Тут надо подумать.

Боюсь, я сам не очень понял, о чём я.. Была мысль, точнее, пытался представить, как можно передать целиком байт (сразу) на всю панель... по сути, нужно взять 8 индикаторов и

Вот вам схемко, 4676216m.gif - это ровно к той программе, что я приводил. Если я нигде не ошибся - оно должно работать :)

Это просто как иллюстрация, того, что я имел в виду. Обратите внимание, что ничего лишнего - там нету, только сложная "перепутка" выходов 74HC595,

Портит моё знакоместо 6*8 (начальное 5*7, но с доведением до более удобоваримого вида).

Вообще, знакоместо - никак не привязано к отдельному индикатору. Отображается мтрица 8х160 точек (индикаторы, при правильном монтаже, должны складываться в непрерывную матрицу). А уж что вы в этот видеобуфер засунете - забота основной программы, а никак не обработчика и не аппаратуры. Если часть символа - будет отображаться на одном индикаторе, а часть - на другом - только больше буковок в строку влезет.

К штырям нужно подводить контакты "сверху", где они будут паяться, а все проводники будут, по сути, "снизу", где выводы индикатора.

Именно !

*Посмотрел на плату* Хотя, кажется, понял...

........

Хм.. Чиорт.. Но зато так я ТОЧНО не перепутаю, где столбцы, а где строки ^_^

А вот это - как раз таки прокачка навыков "чтение мыслей", и "предвидение", а вовсе не угадывание цвета кольца. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Немного подумав:

похоже что горизонтальный скроллинг - силами обработчика не сделать. Там биты в байтах ворочать надо, ибо у вас в видеобуфере - по строкам все лежит. Облом-с. Тогда имеет смысл сделать его не в реал-тайме, а в фоновой задаче. А в обработчике прерывания - только расширить видеобуфер, чтобы туда влезало как минимум 2 образа экрана (хороший размер -512 байт - влезет 3 с небольшим экрана), и давая большое (в целый буфер) смещение, посредством глобальной переменной scroll_pos - переключать их, так, чтобы пока один кусок заполняется, второй - отображался. А малые смещения - плавный вертикальный скроллинг.

Делать сдвиги в реалтайме, с килогерцовой частотой, когда на практике, это потребуется делать с частотой герц в 10-15 максимум - излишняя трата ресурсов проца. Если уж так хочется фонового скроллинга - сделайте еще одно прерывание от таймера (их там еще 2шт осталось свободных) - низкочастотное, с изменяемой частотой вызова (скорость скроллинга), с возможностью прерыватся "быстрыми" прерываниями, дабы их не тормозить. И в нем скролльте наздоровье, из одной части видеобуфера - в другую.

Ресурсов проца угробится - на порядок меньше.

Изменено пользователем dr.Nimnul

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну тогда это всетаки K26 - рекомендую отложить пока в сторонку, на самый крайний случай.

*Отложил* ^_^

Неплохая вещица, только надо собирать с зазором. Завтра доберусь до другого компа - прикину вам витки и зазор.

Мне бы научиться оценивать это... :( Но вот, в голове как-то не сложилось пока концепции..

Присмотрелся к готовым измерителям RLC в магазинах.. Дороговаты для своего функционала.

Описание DT-9931 - Попускал слюни....

Нашёл дешевле, но опять же, у меня в городе его НЕТ :|

Вообще, ИМХО "бежать" - должна битовая матрица, понятие "символы" - должно "закончится" после заполнения видеобуфера, т.е. - в фоновой программе, до обработчика прерывания.

Пардон, чаще всего использую именно слово "символ", хотя и понимаю, что не совсем верно.

Вот вам схемко, 4676216m.gif - это ровно к той программе, что я приводил. Если я нигде не ошибся - оно должно работать :)

Это просто как иллюстрация, того, что я имел в виду. Обратите внимание, что ничего лишнего - там нету, только сложная "перепутка" выходов 74HC595.

Да, заметил. Выводы очень уж разбросаны. Я уже не очень хочу так делать ^_^

Немного подумав:

похоже что горизонтальный скроллинг - силами обработчика не сделать. Там биты в байтах ворочать надо, ибо у вас в видеобуфере - по строкам все лежит. Облом-с. Тогда имеет смысл сделать его не в реал-тайме, а в фоновой задаче. А в обработчике прерывания - только расширить видеобуфер, чтобы туда влезало как минимум 2 образа экрана (хороший размер -512 байт - влезет 3 с небольшим экрана), и давая большое (в целый буфер) смещение, посредством глобальной переменной scroll_pos - переключать их, так, чтобы пока один кусок заполняется, второй - отображался.

Идея красива, соглашусь. Единственное "Но" в данном случае (видимо, быро рождено и прижилось, когда я разворачивал экран от Nokia 1110i на ATMega8535, где было ВСЕГО 512 байт памяти, в т.ч. для стэка) - по возможности не использовать для простых, генерируемых, изображений видеобуфер. Собственно, строка генерируется на лету. Код:

void LED_DrawChar(uint8_t CharN, uint8_t LineNum, uint8_t SkipCols, uint8_t ShowCols)
{
	unsigned char temp = 0;
	unsigned char cols;
	cols = ShowCols;				// Количество отображаемых колонок
	if (CharN == 168) {				// Ё
		temp = pgm_read_byte(&CharsRu[65][LineNum]);
	};
	if (CharN == 184) {				// ё
		temp = pgm_read_byte(&CharsRu[66][LineNum]);
	};
	if (CharN > 191) {				// Русские символы
		temp = pgm_read_byte(&CharsRu[CharN-192][LineNum]);
	};
	if ((CharN > 32)|(CharN <= 126)) {		// Английские символы и некоторые знаки
		temp = pgm_read_byte(&Chars[CharN-32][LineNum]);
	};

	// Экономия RAM. Было бы быстрее из памяти, но так всего +1 такт (формально, 1 такт.... вероятно, больше).
	while (SkipCols > 0)
	{
		SkipCols--;				// Вычитаем 1
		temp <<= 1;				// Сдвигаем байт влево.
		cols--;					// Уменьшаем количество колонок, которые нужно вывести.
	};
	LED_PushBits(temp, cols);			// Оставшееся выводим на экран
};
void LED_PushBits(unsigned char DataByte, unsigned char Bits) {
	while (Bits > 0)				// Для оставшихся битов
	{
		Bits--;					// Отсчитываем 1 колонку
		if (DataByte & 0x80)			// Если старший бит = 1 (после сдвигов)
		{
			LED_PORT |= (1<<LED_DATA);	// Поднимаем пин "Data"
		} else {
			LED_PORT &= ~(1<<LED_DATA);	// Иначе - опускаем его
		};
		LED_PORT |= (1<<LED_C_H);		// И дёргаем такт для горизонтальной синхронизации
		LED_PORT &= ~(1<<LED_C_H);		// Проталкиваем 1 бит в горизонтальные регистры.
		DataByte <<= 1;				// Сдвигаем оставшиеся биты влево на 1.
	};						// Повторяем, пока не закончатся колонки.
};

Здесь нет необходимости даже хранить данные строки. Фактически, запоминается только положение "Скроллинга" для первого отображаемого символа, и первый отображаемый символ. Лично мне идея кажется, хоть и странной, но достаточно шустрой.

Да, памяти много, но активно использовать её тоже может быть не очень хорошо.

К сожалению, пока не могу провести анализ кода по скорости выполнения, но очень похоже, что процедура не настолько толстая.

Постараюсь в ближайшее время оценить количество тактов на её работу.

Ещё пример строки... но это чуть позже. Процедура пока что недописана - делаю идникаторы.

Новые фото:

ZVKw91pM9fg.jpg

C8RCdwcKZgY.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присмотрелся к готовым измерителям RLC в магазинах.. Дороговаты для своего функционала.

Описание DT-9931 - Попускал слюни....

Спекулянты у вас, как я посмотрю, цветут махровым цветом :(.

Да, заметил. Выводы очень уж разбросаны. Я уже не очень хочу так делать ^_^

Ну, это единственный недостаток во всем этом. Но топологическую задачу - в любом случае решить проще, чем гордо преодолевать трудности которые там могут возникнуть из-за нехватки скорости.

Есть несколько способов: Можно, как я уже вам сказал, сделать все это обемным монтажем на плате индикаторов, и на штырьки подпаять уже таким образом, чтобы на другой плате - все бы уже без "крестов" - вываливалось на ключи и сдвиговые регистры. Кстати, учтите, что "поножовщина" у 74HC595 - тоже далеко не "подряд", и если так делать, то имеет смысл "рассортировать" все уже с учетом этой неприятности тоже. Т.е. подумать, как будут выходить сигналы с 74HC595, и на ту "таблицу", что я вам дал в виде схемы - наложить еще и эту "перестановку", и по итоговой таблице - уже паять.

Собственно, один из принципов компактной разводки плат - "собрать все "препутки" - в одно место, и там разрешить, а до этого места - все вести параллельными пучками"

Можно "перепутать" и на плате. Да, будет несколько десятков перемычек. Зато можно вбить схему в PCAD, и нагядно, с гарантией отсутсвия ошибок, все это развести, а потом - чисто механически спаять. Кроме того, можно сделать так, что эти перемычки будут неизолированной пролокой (ибо по другой стороне, и без пересечений), и паяться будет достаточно легко.

Мне сложно так сказать, какой способ в данном случае будет оптимальным. Вобщем оба не плохи.

Идея красива, соглашусь. Единственное "Но" в данном случае (видимо, быро рождено и прижилось, когда я разворачивал экран от Nokia 1110i на ATMega8535, где было ВСЕГО 512 байт памяти, в т.ч. для стэка) - по возможности не использовать для простых, генерируемых, изображений видеобуфер. Собственно, строка генерируется на лету.

В экранах от мобильников, собственно, сканирование матрицы (то, что у вас тут должен делать обработчик таймерного прерывания) - обычно выполняется логическим автоматом, встроенным в сам дисплей. Там не надо несколько сот раз в секунду, делать это БЕЗ ДЖИТТЕРА. Если там прерывание "не успеет" - не беда, успеет следующее, глаз этого не заметит. А памяти в "младших" атмегах - таки действительно кот наплакал. Что и определяет...

Здесь - все с точностью до наоборот: памяти там дофига и более - целых 16кб. Выделить 512б под видеобуфер - сам бог велел. А вот обработчик - надо оптимизировать буквально по такту ! Иначе он сожрет все доступное быстродействие процессора. И пропуск одного прерывания - не допустим совсем. Жесткий реал-тайм, да. Да еще и две задачи на 1 проц.

Нагружать килогерцовый обработчик синтезом картинки - верх глупости. Глаз все равно не заметит таких изысков (зато очень хорошо заметит потерю кванта, или запаздывание, из-за неуспевания).

Да, памяти много, но активно использовать её тоже может быть не очень хорошо.

А чем собственно ? Память статическая. Она таки действительно "с произвольным доступом", без всяких "оговорок". Там даже кеша нету, как в современных процах.

Новые фото:

ZVKw91pM9fg.jpg

C8RCdwcKZgY.jpg

А чего только 9 индикаторов ?

И зачем "длинные" штыри ? Там вполне хватило бы обычных, чтобы не увеличивать межплатное расстояние почем зря.

И еще: как вы собираетесь подпаиватся к "дальнему" ряду штырьков, в такой конструкции ? Учитывая однослойную разводку платы, на которую все это будет ставится - двурядные штыри применять не особо хорошо. Только если спараллеливать по 2, для механической надежности (т.к. у вас самодельная плата - без металлизации отверстий - это не лишено смысла), но тут вам 40пар - будет мало 9*8+8=80.

Кстати, штыри имело бы смысл ставит с 2 сорон платы, чтобы стойчивее стояло, как "двурядная микросхема", но вы, как я вижу уже обрезали другую сторону....

Изменено пользователем dr.Nimnul

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спекулянты у вас, как я посмотрю, цветут махровым цветом :(.

У нас они порой вообще не цветут, ибо не всё продают.

Есть несколько способов: Можно, как я уже вам сказал, сделать все это обемным монтажем на плате индикаторов, и на штырьки подпаять уже таким образом, чтобы на другой плате - все бы уже без "крестов" - вываливалось на ключи и сдвиговые регистры. Кстати, учтите, что "поножовщина" у 74HC595 - тоже далеко не "подряд", и если так делать, то имеет смысл "рассортировать" все уже с учетом этой неприятности тоже. Т.е. подумать, как будут выходить сигналы с 74HC595, и на ту "таблицу", что я вам дал в виде схемы - наложить еще и эту "перестановку", и по итоговой таблице - уже паять.

Пардон, не заметил. Если не считать вывода питания (16), то все остальные можно вывести в одну сторону 15 = 0 (выводится чуть выше), 1=1, 2=2,... 7=7. Вполне ровная линия. Или я не совсем понял мысль? ::confused

В экранах от мобильников, собственно, сканирование матрицы (то, что у вас тут должен делать обработчик таймерного прерывания) - обычно выполняется логическим автоматом, встроенным в сам дисплей. Там не надо несколько сот раз в секунду, делать это БЕЗ ДЖИТТЕРА. Если там прерывание "не успеет" - не беда, успеет следующее, глаз этого не заметит. А памяти в "младших" атмегах - таки действительно кот наплакал. Что и определяет...

Бесспорно. Но опять же.. хотя, формально можно сделать вывод данных отложенным. То есть, по прерыванию таймера делать защёлкивание данных, а уже после этого генерировать новую порцию данных. Возможно так и сделаю, хотя это будет уже менее прозрачным и получит некоторую задержку "отрисовки", вместо "мгновенного" вывода новой порции данных на дисплей. Опять же... подумаю пристроить один из более маленьких чипов в качестве драйвера матрицы. Но это не гарантировано.

А чем собственно ? Память статическая. Она таки действительно "с произвольным доступом", без всяких "оговорок". Там даже кеша нету, как в современных процах.

Здесь скорее оговорка из разряда "Экономь заранее, чтобы потом не искать, где экономить". Смысл в том, что позже я могу подумать написать какой-то апгрейд прошивки... и кто знает, что из этого получится. Иногда я боюсь предположить сам.

А чего только 9 индикаторов ?

10-й не помещается на эту плату.. Хватает только на 4 контакта, что даже для его удержания маловато.

И зачем "длинные" штыри ? Там вполне хватило бы обычных, чтобы не увеличивать межплатное расстояние почем зря.

Их можно немного.... сдвинуть.

И еще: как вы собираетесь подпаиватся к "дальнему" ряду штырьков, в такой конструкции ?

Тонкими проволочками ^_^ Через отверстия в плате ::blush

Учитывая однослойную разводку платы, на которую все это будет ставится - двурядные штыри применять не особо хорошо. Только если спараллеливать по 2, для механической надежности (т.к. у вас самодельная плата - без металлизации отверстий - это не лишено смысла), но тут вам 40пар - будет мало 9*8+8=80.

Да, как раз занимаются все 80 контактов. Нет, параллелить не буду. Устанавливаться будет... с "чистой" стороны однослойной платы.

Кстати, штыри имело бы смысл ставит с 2 сорон платы, чтобы стойчивее стояло, как "двурядная микросхема", но вы, как я вижу уже обрезали другую сторону....

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

Насчёт стабильности - можно вставить пару отдельных штырей в незанятые отверстия платы и ими зафиксировать. Либо припаять гайку о_о

 

Теперь я могу измерять индуктивность компонент ^_^

Проверил вчера то кольцо (с намоткой) - 10uH. Это на тех, что дотянулись до контактов. Нужно подумать о чём-то вроде щупов.

Изменено пользователем Alan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У нас они порой вообще не цветут, ибо не всё продают.

А это тоже признак полного отсутсвия конкуренции: "нафига везти что-то еще, если и на этом ассортименте - мы прекрасно делаем баппки" :)

Пардон, не заметил. Если не считать вывода питания (16), то все остальные можно вывести в одну сторону 15 = 0 (выводится чуть выше), 1=1, 2=2,... 7=7. Вполне ровная линия. Или я не совсем понял мысль? ::confused

Прошу прощенья, я немного не туда посмотрел. Ну тады просто прерпутать под байтовый вывод.

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

Защелкивать надо не "по прерыванию от таймера" а по самому выходу таймера АППАРАТНО. Благо что это не требует дополнителных аппаратных затрат, (почти, в звуковом канале - пришлось нарисовать лишний регистр-защелку, но это 1 корпус). А по прерыванию, от того-же таймера - подгружать туда новую порцию данных. Задержка на 1 тик - ерунда. Зато гарантия полного отсутсвия джиттера, из-за того, что вход в прерывание на десяток тактов задержался.

Здесь - это очень важно.

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

Вы имеете в виду, таки дочерний процессор, на индикацию ?

Здесь скорее оговорка из разряда "Экономь заранее, чтобы потом не искать, где экономить". Смысл в том, что позже я могу подумать написать какой-то апгрейд прошивки... и кто знает, что из этого получится. Иногда я боюсь предположить сам.

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

10-й не помещается на эту плату.. Хватает только на 4 контакта, что даже для его удержания маловато.

Пичаль ! Тогда надо было первый и последний "свесить" по 2 контакта :) Но теперь уже поздняк метаться.

Их можно немного.... сдвинуть.

Можно. Только зачем ? Неужели не было нормальных ? Впрочем это мелочи.

Да, как раз занимаются все 80 контактов. Нет, параллелить не буду. Устанавливаться будет... с "чистой" стороны однослойной платы.

Просто я это к тому, что самодельная однослойка, она к сожаленью не имеет металлизации отверстий, следовательно, требует максимально возможного увеличения площадок, особенно под "механически нагруженные" компоненты, коим несомненно является такой индикаторный модуль. Следовательно - увеличиваем диаметр КП - до 2.2мм (хотелось бы больше, но замкнутся меду собой соседние площадки), и желательно делаем их квадратными (чтобы увеличит площадь еще и за счет углов). Следовательно, вывести "между ножками" - не светит. Можно конечно разводить по основной плате "в обе стороны", но ИМХО, имело бы смысл (особенно учитывая сложность подпайки ко второму ряду на макетке) - поставит двойное количество, и паять по 2 штыря в большую общую площадку. А на макетке - припаять со стороны индикаторов, кусочки толстой луженки (кусанные ножки) на соседний ряд свободных отверстий (можно даже просунуть их в эти отверстия, сделав Г-образные проволочки), перейти таким образом на слой монтажа, и уже там с комфортом паять.

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

Разумная мысль. Тогда стоит, по крайней мере, подумать о возможности установки еще дополнительных 8 строчных ключей. (и переходе на индикацию 160х16). Теперь становится понятным, что вы так упирались по поводу реорганизации матрицы как 80х16.

Насчёт стабильности - можно вставить пару отдельных штырей в незанятые отверстия платы и ими зафиксировать.

Почти тоже самое и хотел предложить. Только я думал делать выводы строк с торцов "линейки". Причем дублированно все 8 - с каждого конца, чтобы можно было собрать в цепочку.

Но т.к. у вас не хватает длинны макетки, их надо было бы запаивать ДО индикаторов, чтобы они оказалиь у них "под брюхом". Теперь уже действительно остается только механические ноги ставить. можно из техже штырей, очищенных от пластмассы совсем (аккуратно, по одному, штуки по 4 с каждого конца,удерживая пинцетом, запаять строго вертикально, со стороны монтажа).

Теперь я могу измерять индуктивность компонент ^_^

Проверил вчера то кольцо (с намоткой) - 10uH. Это на тех, что дотянулись до контактов. Нужно подумать о чём-то вроде щупов.

Это очень хорошо ! Особенно это будет полезно, когда будете подбирать немагнитный зазор.

Я все не найду времени рассчитать вам витки (домой прихожу уже ночью и заваливаюсь сразу спать). Но я помню, и обещаю исправится

:D

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы имеете в виду, таки дочерний процессор, на индикацию ?

Таки да. Задумался поставить "рядом" чип ATMega48 (он есть в наличии, и только потому). Под задачу вывода индикации как раз должно хватить 8k Flash + 0.512k RAM.

 

Можно. Только зачем ? Неужели не было нормальных ? Впрочем это мелочи.

Потом зОгну лишнее в разные стороны для пущей стабильности Х) Шутка.

Да, что нашлось. Но опять же, не фатально.

Кстати, раз уж буду делать более "модульно", чтобы не играть с пайкой каждого нового "экранчика", сделаю модули по 9 индикаторов с личными столбцовыми драйверами. То есть, они будут модульными по 72px. Так и нагрузка на ключи будет ниже, и можно будет заменить в случае чего.

Да, опять какой-то костыль. Зато чуть разгружу строчные ключи - меньше ток, меньше проблем.

 

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

Это да. Но всё же, есть некое желание свести всё к 80-ти активным пинам.

Пока собираюсь сделать так:

1 ряд: 8.8 8.6 8.4 8.2 7.8 <...> 1.2 c8 c6 c4 c2

2 ряд: 8.7 8.5 8.3 8.1 7.7 <...> 1.1 c7 c5 c3 c1

Немного фото:

VXtTHmg0fp0.jpg

Вот так выглядит собранный (99%) модуль индикатора. Пока только сами модули.

uG3-0ZFvNLI.jpg

Он же, ближе.

u2SSqxcUXhQ.jpg

Этот ужас сзади.

mEfxBBTjxQ0.jpg

Сзади, ближе.

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

Из инструмента имею мини-дрель, потому дырки будут ого-го, как метаться в пределах допусков.. да и кострукция может оказаться значительно менее жёсткой, чем хочется. Но искренне надеюсь, что будет достаточно.

Теперь я могу измерять индуктивность компонент ^_^

Проверил вчера то кольцо (с намоткой) - 10uH. Это на тех, что дотянулись до контактов. Нужно подумать о чём-то вроде щупов.

Это очень хорошо ! Особенно это будет полезно, когда будете подбирать немагнитный зазор.

Я все не найду времени рассчитать вам витки (домой прихожу уже ночью и заваливаюсь сразу спать). Но я помню, и обещаю исправится

:D

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

Вот только жаль, что у меня до сих пор не хочет появляться... как бы так проще описать?... Некое базисное понимание, или представление... о трансформаторах.. Нет, принцип работы я понимаю... основы.. Но вот эти немагнитные зазоры в настоящий момент для меня напоминают те самые Чёрные дыры: Они есть. Как устроены - вопрос.

Да, понимаю, что это для того, чтобы магнитное поле не кольцевалось в магнитопроводе и тот не входил в насыщение... вроди бы... ::confused Если я ничего не путаю... Но вот величины - для меня пока всё равно что с потолка берутся.

Да и расчёт индуктивности... в НЧ трансформаторах основная проблема - отношение V/виток и сечение провода. А в ВЧ? Вот это никак не укладывается в голове.

upd: Выставил нуль у мультиметра. Ранее получал показания -13uH при подключении катушки и порядка -20uH при подключении... пинцета.. Ну да, замыкал клеммы, фактически. Теперь нормально ^_^

Изменено пользователем Alan
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Застрял на банальщине - не получается сделать плату. Заказывать одну... не целесообразно.

Размеры печатной платы (предполагаемой) немного превышают высоту индикаторного модуля, что плохо. Похоже, в последствии придётся отказаться от варианта со второй строкой.. И это печально.

ЛУТ не удаётся - принтер всё же слишком скуп на тонер.

ФВ-ВЩ не срабатывает по той же причине - негативный фотошаблон (даже два, совмещённых друг с другом) не дают результата. При печати бОльшего количества упираюсь в геометрию... искажиния 0.5мм, но уже промахиваются линии.

Плохо. Нарисовать лаком... да ладно... Там слишком мелкий рисунок должен получиться.. хотя... Это будет резервная идея.

Позитивный фоторезист пока не покупал.

Возникла идея напечатать рисунок прямо НА фоторезисте, пропустив необходимый кусочек через принтер.

Отвергнуто после обдумывания - тонер будет всё так же тонко нанесён. :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пройдись принтером два раза по бумаге или что там у тебя. Кстати что там у тебя за схема? Может дашь глянуть что ты там на воял) Есть ещё способ избежать такого лулза использовать глянцевую бумагу те которая остаётся от самоклеющихся обоин.. Может получиться сделать то что тебе надо Алан.. И пожалуй с такой пролемой нехватки тонера я прогонял по второму разу но тут надо эксперементирвать с точным положением листа обязательно.. Иначае рисунок будет наслаиваться не так как задумывается.. 

ЗЫ: Пожалуй тут с подобным я ещё не особо сталкивался.. А вот с проблемой отрисовывания дорожек под процессоры с 120 и более ногами меня просто убило. Месяц потратил что бы всё на рисовалось так как положено. 

Изменено пользователем Winged Wanderer

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Схема в настоящий момент в голове.. её на бумаге пока что и нету.. А Proteus не соглашается, что 74HC595 вообще бывают в корпусе SO16, потому не дорисовал.

Плюс, набрасывать 80 транзисторов... то ещё удовольствие, даже шиной.

Принтер лазерный - не может попасть дважды в одну точку. Тем более, с точностью менее 0.1мм, иначе игра не стоит свеч.

Процессор всего на 44 ноги (ATMega1284p), так что нормально будет. Сопроцессор будет на 32 ноги (ATMega48).

Теперь есть струйный принтер (Epson L300, можно поздравлять ::blush ). Но в настоящий момент проблема с фоторезистом и процессом проявки :|

На заметку: Не использовать средство "Чистотел" для проявки плат.. >_> Оно полностью снимает фоторезист. Коробит и отслаивает. :(

 

Завтра буду экспериментировать с содой повареной. Каустической в наличии нет. А то, что есть - слишком грязная (пыль).

 

ЗЫ: Схему попробую наваять чуть позже. А вот примерный вид платы - прикладываю.

thumb.png

Изменено пользователем Alan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Фоторезист - злоЪ... или у меня уровень навыка слишком низкий.

В качестве шутки

Работа с плёночным фоторезистом: Lv 10 of 100;

Работа с аэрозольным фоторезистом: Lv 2 of 100;

На плёночном - или пузыри, или бокавая засветка..

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

пИчаль-бИда (с)

Проект на паузе на время лечения нервов ::hot  и получения нормальных заготовок...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Итак.. Наверное, настало время хоть немного похвастаться успехами (и не очень).

Из успешного - запущенный модуль экрана.

Много фото...

M6cw9MNrOTU.jpg

Что-то адекватное получилось с Positiv-20. Далеко не с первой попытки.

К слову, повторить результат пока не удалось.

OaUPfVN5sEg.jpg

Плата. Кое-где недотрав по краям, но это не помешало. Залужено сплавом Розе.

L3tJkh-1JwM.jpg

Массив транзисторов.

3zEHXgLjZVc.jpg

В процессе сборки...

w7GQQfdDO9g.jpg

Плата собрана. (Как оказалось позже, ВСЕ микросхемы поставлены наоборот.. НЕ промаркиорвал, да).

CnNAHHt9CRY.jpg

Соединил платы. К сожалению, вариант разбора плат на данный момент не разработан.

RV_1TvWD5J8.jpg

Коннекторы..

2j5ZkAocRh8.jpg

О чудо! Оно работает! И даже без пропусков линий!

4fKwYxSgnbg.jpg

"Паутинка" сзади...

7yEgR036B0Q.jpg

Попытался вывести текст.... что-то в библиотеке даёт сбой.

Работа над модулем притания PoE-to-5V пока зависла.

Proteus не желает симулировать данную микросхему (ибо отсутствует в версии 7.2, а версия 8.1 настолько часто падает, что просто ужас).

А так - боюсь спалить. И плата ещё не разведена, что так же печально.

Работа над кодом на некоторое время приостановлена из-за сложностей на работе, но тут что поделать.

Сейчас основная проблема - не получается собрать быстрый вариант библиотеки вывода графики и текста с переключаемым режимом работы, в которой используется единственный буфер данных, а режим вывода выбирается динамически переменной. Пока что запарка на тексте. Графику ещё не выводил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хах дак вот что ты хотел сделать Алан) Занятно но тогда сие пожалуй я выполнил бы сугубо на простых светодиодах) Без матриц, смд компонентов, ибо онного у меня навалом) Но ВЛИ лучше, а достать их сложнее..Хм занятно) Но идей я всё ещё не проникся до конца..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Занятно но тогда сие пожалуй я выполнил бы сугубо на простых светодиодах) Без матриц, смд компонентов, ибо онного у меня навалом)

Модуль банально дешевле. 10 таких обошлись в относительно смешные 200 рублей (20р/штука), а это 8х8 = 63 диода. Даже по 90 копеек получаем порядка 58 рублей за тот же модуль.

Да, он будет бОльше по размеру. Возможно, по светимости....

Но это тоже бюджет.

А если нужно таких индикаторов 3? У меня будет 3.. -_- Да, надо продолжать их собирать.

А идея.. какая есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Просто использовать вакуумно илюминисцентные индикаторы. Буквенно цифровой компоновки, мне оно больше импонирует. Если уж мне припрёт что то подобное ваять) (на основе: ИВ-4)

 Хотя по большей части просто тут надо матрицу Жк по типу как у калькулятора с подсветкой но больше) В общем смысл почти один..Но если тут ещё что то по мимо этого нужно выводить какую нить графику то уже тут надо конечно применять несколько иное. Но опять же это проблемно сделать так что бы оно ещё работало с программным обеспечением.. С сопряжением другого оборудования.. мда морока..  Что мне не по силам.. так что всё исполняю сугубо железно - аппаратно.

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

Хмм ну да оптом дешевле) Ведь на матрице светодиод находиться уже не отдельно, а массово налеплен автоматикой, от чего его стоимость около 10коп прим..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но если тут ещё что то по мимо этого нужно выводить какую нить графику то уже тут надо конечно применять несколько иное.

В некоторых случаях планируется. Сгенерировать картинку и послать её в UDP пакете - без проблем. Тем более, если собрать сразу в удобоваримом формате для контроллера (предварительно обработав и преобразовав). В этом случае главный даже не будет напрягаться с её обработкой, а просто передаст "драйверу дисплея".

В моём случае картинка будет занимать:

3*(9*9*8)/8 = 3*9*9 = 3*81 = 243 байта. Пакет, как помним, может занимать 1400+ (помним про MTU). Хотя, в любом случае придётся городить небольшой огород с гарантированным обменом пакетами. Но это вторично.

Думаю, надо будет в начале прикрутить обновление ПО через microSD, а уже потом можно будет работать.

Ещё бы сразу обновлять ПО на Slave'е... Мастером, да... Опять же, подумаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Примерно понятно что есть что.. Мне явно, эта возня не по зубам, с программным обеспечением и особенно с его написанием.. Тут уш больно капитально всё завязано с обменом данных.. Хотя если уж с таким столкнусь то явно буду исходить из той задачи которая будет надобна на реализацию..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Небольшой, хотя и очень приятный, успех:

Видео на ВК.

Наконец-то победил драйвер "экрана". Теперь он отображает правильно и без сбоев "картинки".

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

Изменено пользователем Alan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похоже, я тут только продолжаю немного хвастаться успехами... но ладно уж.

Недавно заказал себе "сверлильный станок для мини-дрели", и вот что пришло:

7sWChNOpyeg.jpg

Теперь есть чем сверлить маленькие отверстия вот такими свёрлами:

wT9jX-XaGw0.jpg

0.5мм Carbide Drill Bits ^_^

И вот что получилось:

GcHw7_tEjAA.jpg

Плата не относится к проекту, она скорее тестовая для обкатки технологии.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А куда делась кнопка "удалить" ??

Изменено пользователем dr.Nimnul

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похоже, я тут только продолжаю немного хвастаться успехами... но ладно уж.

Поздравляю, у вас потихонечку начинает что-то получаться.

Экранчик - порадовал.

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

По плате: Травление и печать - "на четверку". Какой толщины линии, которыми писался текст ? Как я вижу, это фоторезист а не ЛУТ ? 

Разводка земли, питания, и фильтрующих конденсаторов - "на двойку с минусом" !!! :evil:

Изменено пользователем dr.Nimnul

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти