| Соратники! Кто знает алгоритм программирования одноразовой EPROM конфигурации Xilinx XC17S10, поделитесь плиз. Ну очень надо! |
Hornet |
id=14119 31.08.2004 17:08 |
| Добрый вторник всем! Ищется конвертер фонтов типа uC-GUI-FontConverter, или же его самого, но не демо. |
diper |
id=14117 31.08.2004 16:21 |
| У-у-у, бразильцы - извращенцы :) |
Алексей Мусин |
id=14111 31.08.2004 14:50, ссылка |
| 2 Max_Fly и другие, кто с *nix системами "дружит". Можете кого-нибудь посоветовать? |
bialix |
id=14108 31.08.2004 13:21, ссылка |
| Народ!!! Help! Надо кряк на MSP430 |
Partizan ответов: 1 |
id=14089 30.08.2004 18:49 |
Люди, пожалуйста, объясните русским языком: чем все-таки отличается Kickstart-пакет для MSP от Texas-а - ограничением по времени (30 дней)или размером кода 4кб? И где можно надыбать кряк (версия Kickstart: 2.21) для подлечивания энтого дела. Ведь надо же, блин, уже вчера...
- дла IARов в 00-й конуре как грязи. - Hornet (31.08.2004 17:10)
|
| Тут мне как-то кто-то заявил, что AT-LOAD "шьёт меги на порядок быстрее AVREAL" |
ReAl ответов: 5 |
id=14085 30.08.2004 18:20 |
Причём "через тот же адаптер и на той же машине"
С одной стороны я в это не верю (если только не на двоичный порядок, в который тоже не верю при условии "та же машина, тот же LPT"), а с другой стороны всё равно мимоходом поднял скорость программирования (у меня сейчас в 1.25alpha 128К в мегу128 заливается грубо за 12секунд вместо грубо 18 в 1.24rev0).
- а где 1/25a слить ? - DASM (30.08.2004 22:44)
- Мнэээ.... всякие rev_a, rev_b и т.д. высылаются почтой на тестирование самым заинтересованным лицам :-) в 1.25 из существенно нового - "почти универсальный адаптер", карта "что куда подать, а на что подать 0/1". Это сейчсас тестируется и дописывается, потом будет выложено, когда до rev0 дорастёт. - ReAl (31.08.2004 14:46)
- зашлите плиз sanchoo@inbox.ru - севастополь (31.08.2004 15:47)
- ой, а мне можно ? Я хороший тестер, у меня даже идеальные проги работать не хотят. - DASM (03.09.2004 08:30)
- У меня 2 раза были проблемы с avreal 1) RTFM и 2) подстава от атмела.
К авреалу без претензий.
А для теста нужно, как правило, новые камни иметь.
- Алексей Мусин (03.09.2004 10:28)
|
| Подскажите, как реализовать эффективное много уровневое меню для контроллера? |
ace2 ответов: 1 |
id=14082 30.08.2004 17:02 |
- а что вы под своим вопросом подразумеваете? слишком расплывчато... - bialix (30.08.2004 18:23)
|
| Вопрос по CYGNAL |
Sergey Polushin ответов: 1 |
id=14081 30.08.2004 16:24 |
При чтении ADC0 (12разрядов) в режиме автозапуска по Timer3 данные не верные! Время установления АЦП 1.5 мкс, читаю через 1000 мкс! При однократном чтении - все ОК! Кто-нибудь сталкивался с таким фактом???
С уважением, Сергей
- Извиняюсь, не согласовал сопротивления вх/вых. Все ОК! - Sergey Polushin (31.08.2004 05:53)
|
| ПЭ3 и СП по данным bom листа из Accel/PCAD2k |
Алексей Мусин ответов: 1 |
id=14069 30.08.2004 08:04, ссылка |
Выложил самодельный макрос (excel) для формирования сабжа.
Если кто-то улучшит - будет замечательно :)
Внутри есть пример
файл - автодок.zip лежит по ссылке
- Хе-хе-хе... Это говорит о том, что причинно-следственная связь работает. :-) И умные мысли приходят в голову одновременно, независимо от расстояния и прочего... - Звероящер (30.08.2004 08:56, ссылка)
|
| Эй, народ, кто как делает? (#include файлы и пути) |
ReAl ответов: 22 |
id=14042 28.08.2004 13:36 |
Пока каждый проект жил сам по себе (т.е. на одном железе один проект) и только было немного общего для всех (ну там crc16.c,crc16.h, какие-то h-файлы манипуляции с битами, маски 7-сегментных символов), то все исходники конкретного проекта лежали в одном каталоге, всё общее лежало где-то в каталоге common и бралось оттуда.
Сейчас как-то сразу вылезло несколько проектов, живущих "группами" на железках и довольно много общего не только внутри железки, но и между проектами вообще. Да ещё и под cvs это всё заталкивается. Поэтому удобно организовывать проект в виде типа
src/projdir - тут сидит makefile проекта и пути отсчитываются отсюда
src/c_lib/crc16
src/c_lib/vbits
src/eunit
src/cp-m8-bios
и т.п.
При этом возможны два варианта (у Quartus-а один, поэтому с ним такой вопрос не возникал).
1) можно в include-путях для с-компилятора указать . (т.е. src/projdir/) и .. (т.е. src/) и везде писать
#include "c_lib/crc16/crc16.h"
#include "c_lib/vbits/vbits.h"
#include "cp-m8-bios/bios.h"
#include "eunit/packets.h"
2) можно сделать INCDIRS = $(SRCDIRS) и тогда
#include "crc16.h"
#include "vbits.h"
#include "bios.h"
#include "packets.h"
Первый вариант вроде бы прозрачнее в плане "откуда взяли это", но зато во втором в случае замены
src/c_lib/crc16
на оптимизированную под платформу реализацию
src/c_lib/avr/crc16
не придётся менять #include по всему проекту.
Кто что скажет за/против каждого варианта?
- Ну раз вы такие.... По субботам не работаете.... Тогда я сам решил по второму варианту, все #include будут "без подкаталогов" (ну кроме классики типа :-), так как пресловутая crc16 таки вылазит во многих местах
Пусть будет проект 1:
src/eunit_control - dll под винды
src/eunit/packets - модуль формирования/приёма пакетов по S232
src/c_lib/crc16
и т.п.
и проект 2:
src/eunit_cpu
src/eunit/packets
src/c_lib/avr/crc16
При этом src/eunit/packets/packets.c единый для всех исходник и в нём просто нельзя менять
#include "c_lib/crc16/crc16.h"
на
#include "c_lib/avr/crc16/crc16.h"
Видать, кабы б не суббота, то такой глупый вопрос и не возник бы.
- ReAl (28.08.2004 16:54)
- А среда хоть какая? - Bill (28.08.2004 17:30)
- Посмотрим, какая будет среда. В пятницу обсудим ;-) - понедельник (30.08.2004 13:50)
- Какая разница какая? Если про ОС вопрос - то W2K, linux.
Если про компилятор...
Думаю, в основном gcc будет (avr-gcc, msp-gcc, mingw, gcc под линуксом). Но вполне может быть, что придётся прикручивать Keil (не хотелось бы к mcs51 возвращаться, но...), ещё что-либо (от BCC5.02 до компилятора однокристалки, для которой gcc нет). Всё равно хотелось бы максимально "однородно" работать, make использовать gnu-тый, sh с его возможностями... - ReAl (30.08.2004 18:09)
- Ты без намеков, пжлст, мы по субботам много чего делаем.. - General (28.08.2004 19:52)
- про cvs вот в vss есть понятие общего (shared) файла, разделяемого между проектами. В cvs я так понял такого нет. А мне кажется это довольно удобная штука.
Или я ошибаюсь? - µ (28.08.2004 23:10)
- в CVS они все разделяемые. Потенциально. Прописал его в одном только проекте - вот он в одном. Прописал в двух - вот он и разделяемый. - ReAl (30.08.2004 18:12)
- не совсем понятно. для этого этот разделяемый файл должен лежать в какой-то общей папке? или как?
Вот например как сделать так, чтобы например был один общий на нескольких проектов файл, который (возможно лежит в папке каждого проекта) можно отредактировав в одном проекте автоматически обновить во всех остальных. Или я опять неправильно понимаю идеологию CVS?
Это не оправдание, но... Пока меня не прижало - доку я не читаю, а как это сделать мышкой при помощи черепахи - понять не могу. - bialix (30.08.2004 18:21)
- А я все равно - если не понимаю как внутри, то мне и мышкой тяжело :-). Берём "проект" из моего "коренвого" постинга каталог project1/src/projdir ( в репозитории src/projdir) содержит специфические файлы этого проекта, я их никогда и никуда больше не включаю.
Каталог репозитория src/c_lib/crc16 содержит два файла - crc16.c crc16.h
Этот каталог я включаю в разные проекты, подключая его в файле modules (файл CVSROOT/modules в репозитории) к нужным проектам.
Поэтому все проекты такие "ветвистые", имеют кучу каталогов и в верхнем постинге вопрос был по организации #includ-ания.
Уобно в репозитории держать по принципу "один модуль - один каталог".
Теперь я что-то такое при работе с project1 в этом crc16.c заметил нехорошее (или просто оптимизировал немного функцию).
Я отредактировал файл
project1/src/c_lib/crc16/crc16.c
и сказал cvs commit
В какой-то тяжёлый понедельник я вернусь к проекту project0,
в котором тоже используется crc16.c
Поскольку нифига не помню, я скажу
cvs stat | grep File | less
и получу "извещение", что
project0/src/c_lib/crc16/crc16.c
требует обновления, так как в репозитории более свежая версия.
скажу cvs update и получу обновлённый файл.
- ReAl (30.08.2004 18:43)
- модуль и проект -- это разные вещи? - bialix (31.08.2004 15:44)
- в вашем примере подразумевается, что существует (как минимум) два проекта:
project0
project1
причем в них обоих есть /src/c_lib/crc16/crc16.c
и этот файл общий для обоих проектов. Но в репозитарии он-то хранится в одном месте? А Вы когда Вам нужно подключаете его из этого одного места в свой проект? Я правильно понял?
У меня такая задача часто возникает. Осталось понять, как это делается. Ткните меня ссылкой в описание этого процесса, если не трудно. - bialix (31.08.2004 16:44)
- Да, в репозитории они хранятся в одном месте в
src/c_lib/crc16/
в файле CVSROOT/modules (извлекаем, модифицируем, соммитим назад)
пишем
# common C library modules
crc16 -a src/c_lib/crc16
vbits -a src/c_lib/vbits
eunit -a src/eunit
cp-m8-bios -a src/cp-m8-bios
cp-m128-bios -a src/cp-m128/bios
# common makefiles
avr-gcc-make -a src/makefiles/gcc-avr.make src/makefiles/avreal.make
# project0
proj0_src -a src/project0 # project0 dependent sources
project0 &crc16 &vbits &cp-m8-bios &proj0_src &avr-gcc-make
# project1
proj1_src -a src/project1
project1 &crc16 &cp-m128-bios &eunit &proj1_src &avr-gcc-make
Теперь говорим
cvs get project0
получаем от того места, где дали команду
project0/src/makefiles
project0/src/c_lib/crc16
project0/src/c_lib/vbits
project0/src/cp-m8-bios
project0/src/project0
а на cvs get project1 получим
project1/src/makefiles
project1/src/c_lib/crc16
project1/src/eunit
project1/src/cp-m128-bios
project1/src/project1
С тем же успехом всё содержимое каталога (модуля) src/eunit
можно использовать в третьем проекте
А вообще-то, это надо кого-то из тут присутствующих :-) раскрутить на небольшой FAQ по этому делу. А то я не так и давно в это залез и теперь "с жаром неофита..." :-) А спросишь что посложнее - так я, может, и не отвечу...
- ReAl (31.08.2004 17:26)
- спасибо за объяснение. один только еще вопросик Вы написали в определении модуля
proj0_src -a src/project0 # project0 dependent sources
Для чего нужен этот псевдоним (alias)? Это Ваше личное дело, или это необходимое заклинание? - bialix (31.08.2004 17:53)
- Да что-то плохо получалось, если в проекте т.е. там где project0 с перечислениями ставить не &-подстановки алиасов, а лично файлы/каталоги.
"толи глюки, толи руки"
- ReAl (31.08.2004 18:29)
- Имхо, дока достаточно хороша например, про файл modules надо читать в разделе "Административные файлы".
Еще Гарри Журов хвалил оригинал (на англ.), но я его не читал.
Да и мало еще интереса к cvs, чтобы faq писать. - Алексей Мусин (01.09.2004 06:44, ссылка)
- Английский вариант - это наверно имеется ввиду Karl Fogel, Open Source Development with CVS. Есть и в виде html, и как cvsbook.pdf, и в виде info.
Именно этого дела перевод на русский мне не понравился, а вот канглийский вариант очень неплох.
Твоя ссылка - это Cederqvist, Version Control with CVS, перевод хороший, я читаю и доволен.
Ксати, про переменные окружения EDITOR и CVSEDITOR там почти в самом начале, не помню уже, кто тут интересовался как задаются записи в лог.
- ReAl (03.09.2004 13:48)
- это был опять же я (интересовался) - bialix (03.09.2004 13:56)
- ссылка мертвая. нет там pdf - bialix (03.09.2004 14:00)
- Заслать на ukr.net ? - ReAl (03.09.2004 14:52)
- если это тоже самое, что и по ссылке, то не надо. я лучше в html почитаю - bialix (03.09.2004 16:13, ссылка)
- Да, это то, что Мусин предлагал. - ReAl (03.09.2004 16:59)
- Мы распечатали pdf'ку, и распечатка уже потертая весьма :) да еще и отдали нашим писишным программерам - пущай просвещаются :) - Алексей Мусин (04.09.2004 08:09)
|
| SM510 sources wanted |
kpn ответов: 3 |
id=14039 28.08.2004 11:56 |
Добрый день!
Очень заинтересован в повторении вашего эмулятора.
Можно ли использовать вместо Altera CPLD и FPGA - Xilinx ?
Могли бы вы выслать мне исходные коды (я надеюсь , что это в VHDL'е).
У меня ситуация такая, что сгорел xds510, и новый будет где то только через месяц,проект не движется.
Да и на будущее, для своих нужд такой эмулятор пригодится.
Прошу ответить.
С Большим Уважением
Петр.
- Всё, что SM сваял для свободного доступа лежит тута, на сахаре. Истчшщи. На большее надежду SM не давал по причине неконтролируемгог расползания версий. Глюкавых в том числе. - =mse= (28.08.2004 12:15)
- Ответ: - General (28.08.2004 14:26, ссылка)
- Насколько я понял, сорцы этого проекта не распростаняются И не будут. Соответственно, портировать эту штуку на другое железо можно только с помощью SMа. Да и зачем это нужно - неясно.
Кроме того, насколько я знаю, SM не пишет на ВХДЛе. - ASDFS (28.08.2004 16:56)
|
| Ответ: Как поменять skins в AVR Studio 4 |
serj ответов: 1 |
id=14030 28.08.2004 08:43 |
- ...не ответ а вопрос ? - serj (28.08.2004 08:51)
|
| ARM9 + DSP + Ethernet + USB + Linux. Появилась дешевая отладочная плата. |
sasha_il |
id=14013 27.08.2004 18:18, ссылка |
|
| ARM9 + DSP + Ethernet + USB + Linux. Появилась дешевая отладочная плата. |
sasha_il |
id=14009 27.08.2004 18:12, ссылка |
Можно заказывать в Сканти-Рус www.scanti.ru
Цена - $299 + НДС.
|
| Портит ли AVREAL V1.24rev0 мегу48? |
aleksey ответов: 9 |
id=14005 27.08.2004 17:27 |
А то с командой в батнике
avreal +mega48 -ab -p1 -o0 -e -w -%% -fCKSEL=0F,SUT=03 -c s.hex >prog
Первый раз запрограмировалась нормально. Программа в ней корректно крутится.
А второй раз отвечает:
% PgmOn reply 0xFFFFFFFF
Can't resync.
Заменил кристалл. Убрал программирование фюзов. Все ок!
Теперь боюсь трогать фюзы. А надо. Кристал ведь
ATMEGA48 24AI 0419 и он последний.
Хочется пустить от внешнего кварца на 24MHZ
Народ! Кто сороквосьмую программил с разными фюзами при помощи
AVREAL V1.24rev0?
Можно играться фюзами?
Программа на 48 со звездочкой! Можно ли доверить ей последний кристалл?
Помогите начинающему!
- Вроде шили, работает, но на 16. Им частотку до 20 обрезали... волки... и фузы меняли. - =mse= (27.08.2004 17:56)
- и фузы меняли.??????? Это вы об чем? Не в этом ли причина моей неудачи?
Хотя я допускаю простой вылет кристалла в мир иной
- aleksey (27.08.2004 18:16)
- Ну чтобы запустить от кварца, надо кое-что в консерватории поменять. Кроме как фузами - никак. Так вот, операция прошла успешно, клиент живее всех живых. Кроме, конечно пассажира из Мавзолея. Тот вне конкуренции. - =mse= (28.08.2004 10:01)
- А у меня после +mega48 -e -ab -p1 -o0 -w -v+ -% -fCKSEL=F -c p2.hex опять трупик отвечает Can't resync хотя без -fCKSEL=F програмился нормально. - aleksey (31.08.2004 18:48)
- "ну не знаю". Нет у меня 48-й меги под рукой (плата под 8-ю мегу есть, в неё можно было бы впаять/проверить). Так что всё, что могу -- это как-то на днях ещё раз проверить соответствие доки таблицам в avreal - ReAl (31.08.2004 19:43)
- Все! Вопрос снимается! Александр Редчук БОЛЬШАЯ УМНИЦА и ОЧЕНЬ ХОРОШИЙ ЧЕЛОВЕК! Будьте внимательны с CKDIV! Прислал на удивление очень обстоятельный ответ на мою просьбу.
Весь фокус оказался во включенном изготовителем делителе тактовой
частоты. Во избежание глюков как у меня нужно было бы сразу же
выключить его!
Это помогло:
avreal +mega48 -o0,8 -w -fcksel=f,ckdiv=1
Александр по отчетам AVREAL_а разобрался в проблеме и помог реанимировать кристалл.
Теперь все работает как надо!
- aleksey (01.09.2004 11:27)
- Стоп! Что значит "фьюзы меняли" ??? Это как у меги163 или хуже? Пошёл пдф-ку посвежее тащить... - ReAl (27.08.2004 20:01)
- avreal для мег48/88/168 делался по doc2545B, сейчас на сайте 2545D, по fuses они совпадают. - ReAl (27.08.2004 20:16)
- !!!ЯЛБ. В пятницу мозг плох... Мы фузы меняли, полёт нормальный. ;О) - =mse= (28.08.2004 10:04)
|
| Сколько ПИКов нужно, чтобы сделать MSP430? |
General ответов: 16 |
id=13995 27.08.2004 16:30 |
- Ах да , сегодня же пятница... - superkeks (27.08.2004 16:31)
- Сродни классическому: "сколько ангелов поместится на кончике иглы?" - =mse= (27.08.2004 16:36)
- Это в какой номинации? :))) - Antimouse (27.08.2004 21:25)
- Сегодня зацепился в том смысле, что ПИКи (особенно шестилапые) - это И-Не XXI века. На них можно сделать все. Вот и вопрос оттуда. А Пень на них сделать можно? - General (27.08.2004 21:32)
- А как же? И многозадачность будет. Мозг человека, например состоит из очень простых серых клеточек. - =L.A.= (27.08.2004 22:53)
- то есть, объем ПЛИС 21 века будут измерять не количеством инверторов, а количеством ПИКов? - =L.A.= (27.08.2004 22:58)
- Ну и сейчас это макроячейки, а вовсе не и-не, так? - General (27.08.2004 23:21)
- Ну да, не инвертор , а триггер + еще немного аппаратной логики типа автомата состояний или счетчиков. Но ПИК все -таки посложней пары триггеров. И потом, если сделать ПЛИС на ПИКах появится необходимость писать микропрограмму для каждого "гейта". Или , по крайней мере выбирать из какого-то набора. - =L.A.= (28.08.2004 00:00)
- Это временно:)) А все-таки: сколько вам надо ПИКов, чтобы сделать MSP430F149. Один полученный ответ был таков: на двух можно, только жрать будет о-го-го! - General (28.08.2004 09:29)
- Половинка. По площади кристалла. Впрочем, по производительности тоже - треть от ДСПИКа. - ASDFS (28.08.2004 16:53)
- Ню-ню. Посмотри на Pentium4 и его чипсет - вроде один проц и куча логики. А копнешь поглубже - в самом проце кроме x86 ядра еще 22 "ПИКа" помогают оному работать. И у каждого своя микропрограма. И в чипсете еще не меньше 20. - ShiphT (01.09.2004 13:44)
- Ну не совсем факт. С одной стороны... например мах3032 10нС стоит 50р в розницу. Там 32 макроячейки. Взять м48 за те же деньги, там этих эквивалентных ячеек порядка на 2-3-4 больше. Конечно не 10нС логика будет, а на 1-2 порядка медленнее, но логическая моща несоизмеримо больше. Так что кол-вом ПИКов ПЛИСы мерять не будут, ИМХО ;О) - =mse= (28.08.2004 10:15)
- EPM3032, ессно - =mse= (28.08.2004 14:27)
- Не, не согласный... "и-не" актуальны там, где проц в принципе не справится - чё нить простое-скоростное типа ФД на частоту эдак 5-10-20МГц с делителями, завихрастая схема сравнения\захвата, ШИМ, опять-же, шустрый какой, ЛСД... мля, ЛЦД контроллер простенький, но сердитый замутить. Тут программистская мысль отдыхает, ИМХО. Можно, конечно, поставить 28хх@150M(или что потяжелее... типа танковые клинья и тактическое ядерное оружие) и опровергнуть нещадно, другое дело - скока релиз стоить будет. А тут промблемма. Решается, опять-же гольными "и-не", только упакованными в макроячейки. ;О) - =mse= (28.08.2004 11:11)
- Ух ты!!! Новая бойня PIC vs 430? - tea (28.08.2004 07:35)
- Смена поколений. Прошло 20 лет и 74xx и 555 ушли, на их место пришли ПИКи, на место Z80 и 8051 пришли ATmega и MSP430, на место 8086 пришел ARM. - General (28.08.2004 09:46)
|
| Тупой вопрос:можно ли каким-либо образом подстраивать частоту меги работающую от кварцевого резонатора...? |
superkeks ответов: 15 |
id=13981 27.08.2004 14:43 |
прописыванием калибровочного регистра можно менять частоту при работе от внутреннего генератора - а хотелось бы от внешнего кварца на 16 Мгц...
- Интересует подстройка на очень небольшие значения - примерно на температурный уход обычных кварцев... единственное что приходит в голову - варикап вместо кондюка на землю... и ШИМом его мурыжить... сработает? - superkeks (27.08.2004 15:12)
- кинь с ноги кондюк на любой конец квареца. если нога в 0 или 1 -емкость параллелится с 33pf, а если в 3 состоянии - отключается. Сдвиг на несколько кгц. - General (27.08.2004 15:28)
- Грамотно....жаль только плавно не получится - свободных ног мало... - superkeks (27.08.2004 15:50)
- шим->rc-фильтр->варикап - General (27.08.2004 15:53)
- размах переменки примерно 5в ..: (варикап смещать придется - либо в минус либо выше 5ти вольт - superkeks (27.08.2004 15:59)
- а возгенери Мегу на малых осцилляциях. - =mse= (27.08.2004 16:04)
- 16Мгц.... - superkeks (27.08.2004 16:06)
- ну и? Rail-to-rail обязателен для керамики выше 8МГц. А кварц - как хошь. Конечно R-R более помехоустойчивее будет. К тому-же доп цепи в генератор вводишь. Я бы хорошо подумал и купил генератор с подстройкой. Или запустил бы от внешнего RC. О как! - =mse= (27.08.2004 16:29)
- А удвоить/утроить/учетверить? Токи-то нужны мизерные. Частота на ШИМе тоже пару-тройку килогерц всяко будет. - Iwan (27.08.2004 17:09)
- Если что-либо регулируешь, результат надо сравнивать с каким-то эталоном Т.е. регулировать можно, но как узнать в какую сторону и на сколько? - Михаил Е. (27.08.2004 17:09)
- а мобуть фапчуется он к чему-нить - =mse= (27.08.2004 17:58)
- Неа... Пробовали. У него какой-то странный генератор. Генератор на обычном инверторе рулится замечательно, а этот - только в сторону уменьшения частоты. Пришлось делать внешний генератор на инверторе. Регулируем ШИМом через активный фильтр на паре транзисторов и пару варикапов с обоих ног кварца. - Сергей Борщ (27.08.2004 17:23)
- Обложить кварц резисторами, и меняя ток через них ШИМом регулировать температуру кварца. Можно еще датчик температуры прикрутить. - Михаил Е. (27.08.2004 18:06)
- Да , сильный вариант , тоже об этом думал - работать будет но уж больно геморно... - superkeks (27.08.2004 18:13)
- как вариант... варикап с управлением от ШИМа. Но, имхо, нах тебе этот геморрой. Если уж так надо, купи кв. генератор с внешней подстройкой. и ШИМом управляй. - =mse= (27.08.2004 15:53)
|
| BO1602B нужна помощь .... |
Zlobster ответов: 2 |
id=13946 27.08.2004 09:23 |
где найти мануал, даташит?
оч надо. Спасибо.
- тип драйвера? - General (27.08.2004 10:22)
- А Гуглить не пробовали? Первая же ссылка дает datasheet BO1602B - rezident (27.08.2004 10:37, ссылка)
|
| LCD WG240128B Трудности с режимом |
Apach |
id=13943 26.08.2004 22:56 |
Кто программировал LCD Winstar - 240X128? Если установить режим матрицы символов 6x8, графика \"двоится\", т.е. изображение не дорисовывается, а в правой части экрана появляется дубль начала экрана. Может кто подсказать в чем дело? |
| Keil C51- поделитесь плиз!!!!!!! |
Vider ответов: 1 |
id=13941 26.08.2004 22:01 |
|
| хочется затронуть такую тему: SPI-сервер как подзадача в многозадачной программе |
bialix ответов: 30 |
id=13921 26.08.2004 17:20 |
есть система, в которой стоит N spi устройств (конкретно у меня 4 - из них 3 разного типа). Соответственно с каждым из них общение будет по разному протоколу. Хочется выделить обмен с этими устройствами в отдельную задачу. Как идеологически правильнее это делать: возлагать на задачу спи только транспортную функцию или и обработку принятой информации? Как бы оформить очередь запросов-заданий для такой задачи? Интересуют любые идеи.
- Слишком поверхностное описание, чтобы делать выводы Если рабочая задача дожидается результатов обмена, то я бы вообще не писал отдельную задачу а просто сотворил механизм разделения критического ресурса и все.
Если рабочая задача живет по принципу - бросил команду-забыл, то тут ессно нужна отдельная задача типа TCP стека, с очередями данных на входе и полной поддержкой протокола вплоть до обработки аварий сети и конечных устройств. - ASDFS (26.08.2004 17:39)
- уточняю устройства по SPI в основном работают на запись. есть только eeprom - ту надо будет иногда читать. но сдается мне, что вполне можно выдать запрос на чтение, уйти в спячку, потом получить уже готовые данные - bialix (26.08.2004 17:46)
- Ну дык, какая тогда отдельная задача Ресурсы девать некуда? Нарисовать аккуратно семафорики (или еще чего - в зависимости от алгоритма раздачи приоритетов) и шарить общий ресурс (SPI) из каждой рабочей задачи индивидуально.
Если под такую х..ню еще задачи создавать, то тогда и вывод в порт отдельной задачей делать надо.
- ASDFS (26.08.2004 17:55)
- ты не понял. передача байтиков все равно будет идти через прерывания т.е. по любому я буду выделять отдельный автомат на обслуживание элементарных операций. нарисовать семафорики - проблем нет. конечно. хотелось сделать что-то вроде универсального драйвера. пытаюсь понять - нужно ли? - bialix (26.08.2004 17:58)
- т.е. я хочу сказать, что захватывать ресурс и потом тупо в цикле ждать пока будут отправлены несколько байт - нет смысла - bialix (26.08.2004 18:00)
- Дык я и пытаюсь сказать что все сводится к вопросу ждешь ли ты в рабочих задачах окончания запроса в сетку или не ждешь.
Если ждешь - нет смысла писать отдельную задачу. Просто набор общих функций.
Если не ждешь - тогда отдельная задача. - ASDFS (26.08.2004 19:39)
- Во-во. Хотя... даже если не ждёшь, всё равно лучше спецфункция - меньше параметров передавать, легче отлаживать. Только, ессно, доступ к телу СПИ должон быть в виде очереди. - =mse= (27.08.2004 10:44)
- в некоторых жду именно ответа, в других случаях достаточно просто выплюнуть данные - bialix (27.08.2004 12:14)
- Если рассуждать чисто логически, то я бы сделал в виде отдельного драйвера. Организуется очередь заданий к драйверу SPI. А драйвер SPI выбирает из очереди очередное задание и выполняет его. И так до тех пор, пока очередь не опустеет. Очередь можно организлвать в виде списка. Соотетственно, там должна быть информация о протоколе обмена с устройством, адрес буфера, количество байт и обратная информация для задачи, запросившей орбмен, о завершении обмена.
Если требуется, то можно очередь сделать на приоритетной основе - Bill (26.08.2004 18:26)
- я думаю так в задачу-драйвер спи будет отдаваться информация о том, с каким устройством надо связаться, сколько байт передать, указатель на выходной буфер и указатель на входной. а весь разбор принятых данных пусть делает тот, кому это надо - bialix (26.08.2004 18:49)
- Логично. - Bill (26.08.2004 21:39)
- небольшое уточнение передавать все эти значения удобнее не в параметрах функции, а через указатель на структур в которой все эти параметры присутствуют (что-то типа SPI_MSG или SPI_FILE)
- Sergey Pinigin (27.08.2004 08:17)
- да. именно так. согласен - bialix (27.08.2004 12:09)
- согласен с Bill у меня сейчас например многопроцессорная система (но суть где-то та же). процессор 1 (главный) имеет в подчинении 5-6 ведомых. к каждому ведомому подключено 10-20 периферийный устройств. Главный процессор имполняет программу имеющую доступ к любой перифериии. программа вталкивает запрос в очередь (можно не детализированный - просто - с какой скоростью вращается двигатель? а уж на ответной стороне пошлётся кодовая посылка получится ответ, этот ответ обработается и вернётся только результат). менеджер очереди складывает всё, работает с приоритетами, и вталкивает в последовательный канал. пусть информация адресована контроллеру 2 (ведомому). но контроллеру 2 может быть адресовано множество запросов (по несколько на каждое из 10-20 устройств к нему подключенных - кстати имеенно менеджер очереди знает в какой именно последовательный порт надо выбросить данные чтобы они ушли на нужный контроллер-ведомый - соединение - точка-точка), на ответной стороне менеджер очереди разбирает пришедшие данные и разбрасывает их по исполнительный мехенизмам, собирает от них информацию и возвращает обратно - таким же способом. Факстически при этом менеджеру очереди пофигу что через него летит. разбор информации производит вопрошающая задача, а уж чтобы данные были понятны - заботится - ведомый. (типа какой бы тип привода не был подключен - какую бы систему команд он ен имел - поменятеся только кусочек драйвера на ведомом контроллере - далее данные преобразуются к некоему стандартному виду - и вернутся ведущему. тот даже не заметит подвоха ;-) ) - Max_QNX (27.08.2004 10:15)
- Ответ: - Max_QNX (27.08.2004 10:17)
- Может, это немного не то на плате есть МК, RTC, EEPROM, соединенные по I2C,
одной задачу надо прочитать текущее время, другой - прочитать или записать данные в EEPROM.
Сделали I2C разделяемым ресурсом (в uCOS-II применили семафор).
Какие резоны заводить задачу? - Алексей Мусин (27.08.2004 11:50)
- примерно тоже, но очередь заданий мне как-то ближе - bialix (27.08.2004 12:11)
- А меня жаба удавит из-за расхода ОЗУ под стек задачи и очереди - Алексей Мусин (27.08.2004 13:04)
- пока семафор взведён - все потоки ждущие его будут condvar - то есть не будут выполняться. поскольку i2c очень медленная - вся система будет заторможена до уровня быстродействия этой шины - ИМХО не правильное решение. одно дело когда семафор стоит на доступ к шаред мемори - а другое на доступ к шине. - Max_QNX (27.08.2004 13:36)
- и потом... а зачем семафор? может mutex? вам же не надо давать доступ N потокам? или надо? - Max_QNX (27.08.2004 13:41)
- Ответ: - Max_QNX (27.08.2004 13:41)
- сорри - какие-то глюки... - Max_QNX (27.08.2004 13:48)
- Ну уж прямо "вся система будет заторможена" "заторможены" (suspended) будут только те задачи, которым нужен ресурс.
Про семафор и мутекс. Знаю, что в uCOS появился этот сервис (mutex), но мы делаем по-старинке: при освобождении ресурса задача вызывает OSSemPost, при ожидании захвата ресурса - OSSemPend. Ессно, есть таймаут (на всякий пожарный).
Я не спорю, мой вариант более "жесткий" - темп событий-запросов к ресурсу не "сглаживается" очередью.
Но давайте разберем, что же будет в случае, если есть задача, обслуживающая SPI.
Некая другая задача положила в очередь мессидж для отправки в шину. Что эта задача делает дальше? "Что-нибудь полезное"? А когда она обратится к первой задаче за ответом? А если ответа нет? А может ей ответ уже и не нужен к тому времени, когда он пришел?
- Алексей Мусин (27.08.2004 13:56)
- по порядку ну конечно заторможены будут только те задачи которым требуется ресурс - но обсуждаем то мы систему в которой все задачи требуют некий ресурс - в даннос случае i2c или spi как в голосном топике. Это и дало мне право сказать "все".
мне трудно спорить именно по uCos, но обычно семафор ставят в тех случаях когда хотят ограничить нагрузку на что-то. то есть например одновременный доступ к памяти или к диску не более чем 5-7-200-... клиентов. мутекс даёт единоличное право выполнять действия одному потоку в отношении чего-либо.
в случае с потоком - если задача ожидает немедленного ответа - конечно она может впасть в блокирующее чтение и сидеть там до таймаута или до получения данных. ну а если задаче надо опрашивать что-то и аварии записывать в eeprom? ответ от еепрома будет только через надцать там милисекунд. и что? всё это время сидеть и держать шину? и никто ничего не сможет вычитать записать потому что мы сидим? гораздо логичнее поставить в очередь и взвести себе таймер. По таймеру получить ответ. Так а шине не будет затыков.
В случае если ответ не нужет - существует таймаут.
Если ответа нет - есть 2 пути - или взвести таймер и попытаться ещё раз (и вести счёт попыткам), или ждать до таймаута (до тех пор пока это ещё возможно и нужно).
- Max_QNX (27.08.2004 14:19)
- в uCOS семафоры "несчетные", продолжим... >ну а если задаче надо опрашивать что-то и аварии записывать в eeprom?
>ответ от еепрома будет только через надцать там милисекунд.
>и что? всё это время сидеть и держать шину?
не держать, а работать c ней.
>и никто ничего не сможет вычитать записать потому что мы сидим?
а как она сможет прочитать/записать в случае очереди?
Запрос будет болтаться в очереди, пока не будут обслужены ранее поступившие мессиджи.
- Алексей Мусин (27.08.2004 14:49)
- вы не правы - работать как раз будет нельзя. но запросы будут накапливаться в очереди, и мы не пропустим новые события. возможно придёт какое-то иное сообщение, адресованное иному устройству - его мы сможем обслужить. а что работать с еепром когда она внутри себя переваривает данные? её просто трогать не надо - и всё будет путём. - Max_QNX (27.08.2004 19:48)
- а если кто-то захватил семафор еепрома и ждёт пока запись окончится фактически - он вхолостую занимает шину. да и согласитесь - очередя - дают большую гибкость. поскольку неважно к какому интерфейсу они прицеплены. завтра вы перейдте на CAN и что? переписывать весь код? а так переписать потребуется только меджер ведающий очередью(ями) и физическим стыком. поверьте - в крупных проектах - легче отдать ему килобайт памяти (и пусть он подавится) чем самому корячится. - Max_QNX (27.08.2004 19:54)
- Подобный подход (универсальный API) я встречал ранее например, в "Паттернах проектирования".
Но как-то тяжеловато это выглядит для средней сложности embedded проектов. - Алексей Мусин (30.08.2004 12:05)
- я понял, вы имеете в виду запись лога в EEPROM тогда, буферизовать неминуемо придется (если события часто поступают).
Для случая же записи настроек и чтения RTC не страшно, если кто-то подождет 100 мс. - Алексей Мусин (30.08.2004 12:13)
- уточнение. не в шину в загали, а конкретному устройству, потому как все устройства имеют свой сигнал выборки. некоторым задачам нужно именно выплюнуть подготовленные байты и все, никакого ответа они не ожидают. Другим наоборот - нужен именно ответ. Причем, поскольку обмен по шине будет занимать определенное время, то ничего эта задача делать не будет, будет просто ждать, пока транзакция не окончится.
Все равно мне нужно делать автомат, который будет осуществлять транзакции. Он будет работать частично через прерывания, запускаться из основного потока выполнения. как бы да - тут спокойно можно и двумя семафорами обойтись, можно сделать очередь.
наверное, все зависит от того, какой процент транзакций будет просто выплюнуть и забыть, а какой - выполнить транзакцию и обработать принятые данные. - bialix (27.08.2004 14:26)
|
| Новые TMS320F2801/2806/2808 |
General |
id=13918 26.08.2004 16:08, ссылка |
| TLE 6220 GP - есть ли у кого примеры кода для работы с этим безобразием? |
bialix |
id=13916 26.08.2004 14:58 |
| 2 ASDFS: Nokia в глубокой ж0#е |
General ответов: 14 |
id=13901 25.08.2004 21:59, ссылка |
- Расскажи эту новость руководству Сименса, Самсунга, Моторолы. Они будут приятно удивлены. - ASDFS (26.08.2004 14:46)
- Ужо тебе!
Самые популярные марки сотовых телефонов в I пол. 2004г. (Техмаркет)
Марка 2 кв. 2004
1. SIEMENS 32.90
2. MOTOROLA 23.71
3. SAMSUNG 20.62
4. NOKIA 14.23
5. ДРУГИЕ 8.54
- General (26.08.2004 15:08)
- Я не понял, ты еще и во внештатные промобои Сименса подался? Или Техмаркета? - ASDFS (26.08.2004 16:41)
- Победителей не судят, не так ли?? Это ты мне пытался навесить на ухи про успехи Nokia на ниве сотостроительства. А я знал, у меня-то SIEMENS. - General (26.08.2004 19:39)
- Пральна. Дык Нокия как была лидером, так и осталась. А продажи твоего Техноггг никого, в сущности, не я%ут. - ASDFS (26.08.2004 19:40)
- Вот, полюбуйся в какой Ж находится твой сименс И к тому же мне казалось что у сименса нет производства сотовых - они его продали вместе с торговой маркой.
1 Nokia 29.3 %
2 Motorola 15.4 %
3 Samsung 14.5 %
4 Siemens 6.5 %
5 Sony Ericsson 6.5 %
6 LG - 6.1 %
Другие 21.7 %
- ASDFS (26.08.2004 20:03)
- Для приличия ссылку на источник. - General (26.08.2004 20:13)
- Ответ: - ASDFS (26.08.2004 20:19, ссылка, картинка)
- Теперь ты верховный промогей, сынок - отдел маркетинга Нокии (26.08.2004 20:31)
- Идет, папаша, сымай портки - промогать буду - ASDFS (26.08.2004 20:55)
- Это правда. Siemens решил забить на рынок мобильников - -=Shura=- (26.08.2004 22:13)
- Напоминает старый анекдот - "ну мы же с тобой проффессионалы, давай просто достанем и померяемся". А у меня Philips - а это "Другие - 21.7%", т.е. на втором месте после Нокии, и что? =)))) - ShiphT (01.09.2004 13:58)
- Че пристал, Генерал поразвлекаться захотел - рядовые исполняют. - ASDFS (01.09.2004 14:17)
- Че пристал, Генерал поразвлекаться захотел - рядовые исполняют. - ASDFS (01.09.2004 14:17)
|
| Удвоение ВВП давно достигнуто. Мазохисты смело могут пропустить. |
General ответов: 1 |
id=13900 25.08.2004 21:19, ссылка |
- Наверное, этого мужика из Госкомстата уволили, вот он на них и злой :-) - Mik (25.08.2004 22:58)
|
| Еще вопрос в советские времена были 7912 с какой-нибудь другой цоколевкой? |
superkeks ответов: 2 |
id=13894 25.08.2004 20:04 |
- У 79Lxx 2 разных цоколёвки - -=Shura=- (25.08.2004 21:12)
- Только вТО3 - 51 (25.08.2004 23:15)
|
| Пожалуйста!Нужен срочный совет- можно ли на max3232( RS232) подать внешние +12,-12В? |
superkeks ответов: 10 |
id=13878 25.08.2004 18:03 |
Нужно пробить 150м обычного провода(не витая пара) на скорости 115.200... Что-либо серьезно менять времени нет... пробовал от ноутбука - заоработало сразу... от компа не тянет - предатчик компа не вытягивает высокую частоту на такую нагрузку... поставил внешнюю максимку - заработало - но она при питании от 5в дает уровни +7 , -5в - а хотелось бы иметь запасец... на плате есть +12,-12в - можно ей воткнуть?Любые советы приветствуются
- повторитель с мощным выходом на ОУ rail-to-rail с питанием ±12В? - bialix (25.08.2004 18:16)
- Да , наверное стоит попробовать ... подключил максимку как хотел - работает но раскаляется как-то неприятно... - superkeks (25.08.2004 18:25)
- может у максимки при использовании внешнего питания стоит убрать кондеры накачки? - bialix (25.08.2004 18:45)
- Как бы это узнать?У меня максимки кончаются:) - superkeks (25.08.2004 18:54)
- не понял? выпаять два кондера - это проблема? - bialix (25.08.2004 19:02)
- не понял? выпаять два кондера - это проблема? - bialix (25.08.2004 19:03)
- Дык первая максимка сгорела - на все опыты у меня их не хватит - superkeks (25.08.2004 19:11)
- АД без кандюков прекрасно работала при внешней запитке. - ASDFS (25.08.2004 20:49)
- А нафига? Есть драйвера с внешним питанием - -=Shura=- (25.08.2004 19:03)
- Проблема втом что это нужно сегодня - завтра утром будет поздно - superkeks (25.08.2004 19:19)
|
| Всем спасибо, кто отвечал по 193ПЦ1! Осталась одна неясность - куда пристегнуть 1 ногу баланс? |
Make_Pic ответов: 2 |
id=13877 25.08.2004 17:52 |
- Я же говорю, скорее всего вход ОУ, а на1 ногу подключаешь делитель с питания на землю. - 51 (25.08.2004 19:44)
- Не катит :( Что то другое на этот вход надо подать - понять бы назначение! - Make~Pic (26.08.2004 08:11)
|
| 2 Make_Pic Подскажите где живет мульти2000 и/или лекарство |
ig_z ответов: 3 |
id=13875 25.08.2004 17:32, ссылка |
ig_z (ухо) yahoo (тчк) com
спасибо
- Было здесь на выходных (все в одном флаконе), живо ли сейчас - не знаю - Make_Pic (25.08.2004 17:49, ссылка)
- Так ведь обсуждалась версия 4.03, а эта 3.6. Или я что то не понял? - ig_z (25.08.2004 19:21)
- А я 3.6 и скачал, но потом обнаружил, что она у меня уже есть на диске;) 4.03 в глаза не видел. - Make_Pic (25.08.2004 19:26)
|
| Помогите! может у кого есть описание протокола PenMount DMC9000 это touch screen controller |
KRS ответов: 1 |
id=13874 25.08.2004 17:22 |
- Разобрался с помощью терминала, протокол простой - KRS (25.08.2004 20:18)
|
| КТЦ-МК родила книжку про фуджики |
Алексей Мусин ответов: 2 |
id=13863 25.08.2004 15:15, ссылка |
- А приобрести её где можно? В розницу или по почте. А то КТЦ-МК работает только с юрами и фирмами - tea (26.08.2004 16:48)
- обложку им оформлял редкостный му.. дизайнер на обложке написано:
Микроконтроллеры
16-разрядные Flash
семейства 16LX
фирмы
Fujitsu
Прочитайте и оцените красоту этой фразы! С японского чтоли промтом переводили? Совок жил и живет! Нифига толком делать не умеют - bialix (26.08.2004 17:34)
|
| Да помогите pls, люди добрые! Просидел пару дней в инете и нигде не нашел распиновку КС193ПЦ1:( Кто знает дайте pls!!! |
Make~Pic ответов: 3 |
id=13813 24.08.2004 19:43 |
- ЛОВИ ЭТО ДЛЯ КМ193ПЦ1, КОРПУС 2103.16-4:
D1-2
#D2-3
V1-10
V2-12
Q-14
1-БАЛАНС
2,3-ИНФОРМАЦИОННЫЕ ВХОДЫ
8,9-ОБЩИЙ
10,12-УПРАВЛЯЮЩИЕ ВХОДЫ
14-ВЫХОД
16-ПИТАНИЕ
ОСТ.-НЕЗАДЕЙСТ. - 51 (24.08.2004 23:28)
- Спасибо! Но вот еще бы прояснить про назначение выводов баланс, информационные входы, управляющие входы??? - Make_Pic (25.08.2004 01:10)
- Ответ: Справочник у меня древний - 87г. ДСП переснятый - информации очень мало. Написано, что это делитеоь на 640 или 704. Информационные входы обозначены как D1 и D2(с инверсией), управляющие, как V1 и V2, D1 и D2 - это вход частоты(возможно это входы операционника), а V1 и V2 - это входы пересчета деления. Баланс, как я понял (я сней не работал), это регулировка баланса входного напряжения; микросхема пропускает и аналоговые сигналы. Я на твоем месте проэкспериментировал бы с ней сам, нежели что-то искать, она ЭСЛ - ее не просто сжечь. Питание +5В.
Удачи! - 51 (25.08.2004 09:19)
|
| Что делали "электронного" для своего авто? |
Алексей Мусин ответов: 5 |
id=13801 24.08.2004 11:26 |
- Ответ: Подключал сигналку к шине BEAN (Toyota) - alexvm (24.08.2004 13:52)
- что это за шина такая, а то TOYOTA уже есть. мож чё полезное:) - toyotoowner (25.08.2004 10:21)
- Шина, на которой двери в Лексусе висят. - alexvm (25.08.2004 14:02)
- Ультразвукой дальномер с дисплейчиком.. - lamerok (24.08.2004 15:27)
- Для парковки? - Алексей Мусин (25.08.2004 09:43)
|
| Ищем активных и грамотных людей для работы |
sasha_il |
id=13783 23.08.2004 21:40 |
Работа в качестве менеджера по продажам ИМС. Характер работы - "в поле" большей частью. Владение техническими знаниями, умение говорить и быстро соображать. Ориентация - на больших производителей (не магазин, типа Симметрон, Платан и т.п.)
Поддержка проектов.
Командировки на учёбу за рубежи России.
Регионы: Москва, Питер, Киев
З/п достойная, однако, напрямую зависит от инициативности сотрудника. |
| Ищем активных и грамотных людей для работы |
sasha_il |
id=13781 23.08.2004 21:38 |
Работа в качестве менеджера по продажам ИМС. Характер работы - "в поле" большей частью. Владение техническими знаниями, умение говорить и быстро соображать. Ориентация - на больших производителей (не магазин, типа Симметрон, Платан и т.п.)
Поддержка проектов.
Командировки на учёбу за рубежи России.
Регионы: Москва, Питер, Киев
З/п достойная, однако, напрямую зависит от инициативности сотрудника. |
| Keil uVision3 и С166 v.5.03 |
IPArt |
id=13777 23.08.2004 18:26 |
У кого-нибудь получилось взломать новую версию компилятора Keil С166 v.5.03 (С www.keil.com качается файлик ek166v503.EXE) Старый способ с переименованием Cxx.dll->C166.dll не работает :( Буду благодарен за любую информацию по этому вопросу. |
| Иногда (редко, в разных устройствах) горят танталовые кондеры |
Алексей Мусин ответов: 28 |
id=13773 23.08.2004 16:20 |
Напряжение в норме, температура окружающей среды - тоже.
Последний случай: 2 были параллельно, сгорел один, до углей (заодно поджарил керамический рядом). Напряжение +15В, кондеры на 25В.
Что я не учел?
- ИМХО монтаж виноват. Мехническое напряжение при неправильной пайке возникает. Причем не только с танталом, но c керамикой SMD такие же проблемы бывают - "течь" начинает под напряжением. - rezident (23.08.2004 16:45)
- Не только "при неправильной пайке", и не только танталовые. Разводка ПП и положение на ней тоже сказывается. Если к SMD контактным площадкам подводить проводники абы как, да еще ставить SMD детали близко к кромке платы - то че хошь может сдохнуть. Вот недавно попросили помочь одной фирме, у них "загадочно" стали дохнуть (чрезмерная утечка, до миллиампер) обычные керамические кондеры 0.1 мкФ в кораусе 0805. Кондеры качественные, Сименс и Витрамон. Диагноз был поставлен такой: кривые руки у того, кто разводил плату. - =AK= (24.08.2004 13:13)
- Можно поподробнее? - Алексей Мусин (25.08.2004 07:48)
- Ответ: На маленькой слаботочной платке регулярно дохли два керамических кондера (из общего числа кондеров на плате примерно с десяток). "Регулярно" - это примерно в 10% их общего числа собранных плат. "Дохли" - начинали заметно шунтировать питание. Устройство питается от батареек, и батарейки истощались намного раньше положенного срока. Статистика - несколько сотен устройств.
Дохли всегда кондеры, стоящие в двух определенных позициях на плате. Чаще всего дох кондер, расположенный ближе всего к краю платы, примерно в 3 мм. Иногда дох кондер, расположенный в центре платы, под процем. Оба кондера разведены кривыми ручками, сильно ассиметрично: к одной контактной площадке подходит тоненький проводник, к другой - два или три более широких проводника, и даже без соблюдения осевой симметрии. - =AK= (25.08.2004 14:40)
- Надо писать- "моими кривыми ручками" :)) - thnx (25.08.2004 14:55)
- Даже при симметричной разводке и одинаковых площадках керамика 0805 дохла при пайке руками. На плате сотни полторы конденсаторов, в среднем один конденсатор на 3-4 платы (положение произвольное, кажется не ни разу не повторялось) через 3-5 недель становился
"47-омным". После перехода на пайку в печи -- никаких проблем. - ReAl (25.08.2004 15:14)
- Просто их запрещено паять руками. В принципе невозможно обеспечить одновременность прогрева при "плавании" в припое. - thnx (25.08.2004 15:17)
- Я бы уточнил, что "запрещено паять кривыми руками" :) Просто нужно хорошо знать технологию ручной пайки. - rezident (25.08.2004 15:22)
- У нас мелкие серии (до десятка приборов) паяются вручную. Большие серии на завод отдаем. Там есть автоматическая линия монтажа фирмы Siemens. Раньше нанимали на шабашки профессиональных монтажниц (тоже с завода, но с другого). Дык по первому времени приходилось их учить правильно паять SMD элементы. Не так, как они паяют на заводе. Самое интересное, что они после этой "учебы" стали у себя на заводе "гуру по пайке SMD" и с другими своими коллегами делились опытом :) - rezident (25.08.2004 15:28)
- Дык, эта... у человека тантал гибнет, у него ноги "играть" могут. Не в монтаже дело. Скорее всего не рассчитан он на тот импульсный ток - сперва деградирует, потом сгорает. Процесс лавинообразный. - =mse= (25.08.2004 16:08)
- Возможно. - rezident (25.08.2004 17:19)
- Гы, дык это ты так разводил? ;-) - =AK= (25.08.2004 17:07)
- Т.е. после пайки при остывании конденсатор "вело"? - Алексей Мусин (25.08.2004 15:20)
- (я имею в виду механическое воздействие) - Алексей Мусин (25.08.2004 15:20)
- Напряжение на них постоянное? Имею в виду жутко высокочастотной пилы нет? - superkeks (23.08.2004 17:38)
- Постоянное, переменка мизерная я тоже на это сначала подумал, но нет,
да и в доке нифига не специфицировано. - Алексей Мусин (24.08.2004 08:24)
- Может, перегрев при монтаже. Автомат или вручную? - General (23.08.2004 20:23, ссылка)
- Насколько я знаю, их ставят вручную, затем в печку - Алексей Мусин (24.08.2004 08:43)
- Linear предупреждает, что в DC-DC такое может происходить: Цитата:
Input Capacitor Type
...
Solid tantalum capacitors are a good choice except that they have a history of occasional spectacular failures when they are subjected to very large current surges during power-up. The capacitors can short and then burn with a brilliant white light and lots of nasty smoke.
- Mik (23.08.2004 21:30, ссылка)
- Вот-вот, последствия очень достоверно описаны! Только уже не могу сказать, был ли пересброс питания.
КЗ 100% было, потому что следы горения есть, такое от нагрева не бывает. - Алексей Мусин (24.08.2004 08:27)
- Похоже, пробой за счет неконтролируемого импульсного зарядного тока - основная причина По крайней мере, это не противоречит моему опыту. За много лет у нас ни разу не было случая к.з. тандаловых кондеров, хотя применяем их массово, в разных изделиях. Но никогда и нигде не использовали танталовые в качестве силовых кондеров, там всегда ставили алюминиевые. Танталовые - только в качестве развязывающих, в маломощных цепях. - =AK= (24.08.2004 13:06)
- Почитал доки по ссылкам, спасибо Пока выводы такие:
1) Пнуть производство, чтоб не перегревали при пайке (даже если не перегревают, все равно не помешает).
2) Ставить 35В кондеры (пусть даже ценой снижения емкости с 47 до 33 мкФ).
3) Посмотреть в сторону керамики (знаю, что появились с большой емкостью, но руки не дойдут про них прочитать). Посмотреть на OSCON.
4) Эксперимент нужен (но - отсутствие времени и редкость события, отмеченная не одним мной).
PS. Как мне только что сказали, новые платы собираются на автоматической линии, но у меня "старая" плата.
- Алексей Мусин (24.08.2004 09:10)
- По 1 пункту. Тут важен не только факт перегрев, а то как быстро паяются оба вывода. Если, например, паяется по одному из выводов группы конденсаторов (чтобы их зафиксировать на плате), а потом (когда конд. уже существенно остыли) противоположные выводы, то возникает механическое напряжение, которое может повредить диэлектрик. Рекомендуется паять сразу ода вывода конденсатора. Конечно не обязательно одновременно из паять, но не нужно допускать сильного перепада температур (пример, нагрев-охлаждение-нагрев-охлаждение). - rezident (25.08.2004 12:56)
- Ответ: На входе источника питания вообще рекомендуется ставить АЛЮМИНИЕВЫЙ для подавления transient overvoltage. - PicoDev (25.08.2004 07:22)
- Вот фотка - Алексей Мусин (31.08.2004 10:17, картинка)
- С4 и C5 (сгоревший) включены параллельно - Алексей Мусин (31.08.2004 10:19)
- Ляпотаааа!!!! =)))) - ShiphT (01.09.2004 14:01)
- До боли знакомая картинка :) Правда у нас от переполюсовки обычно... - SM (01.09.2004 14:23)
|
| Нужна инфа по средствам писания под ARM |
vadiks ответов: 1 |
id=13771 23.08.2004 13:44 |
Собственно сабж. Проц. от Philips, ядро ARM7TDMI.
Ставил IAR 4.10B, но чего-то не очень понравился. Может что еще есть? И где это взять?
- в факе уже был? - ummagumma (23.08.2004 14:31, ссылка)
|
| Люди, как вообще красиво запретить - разрешить прерывания в LPC ? |
-=DASM=- ответов: 4 |
id=13762 23.08.2004 11:00 |
можно вроде через VIC? а можно и через CPSR
в последнем случае придется самому на асме писать, что скучно
Кто как делает ?
- А что это у тебя крылышки появились? - General (23.08.2004 11:38)
- да регился давно, а мыло уничтожил. Пароль не помню. Не отказался бы от старого пароля.... - -=DASM=- (24.08.2004 16:15)
- Перебил мыло на новое. Вспомни все :)) - General (24.08.2004 16:34)
- Спасибо - DASM (24.08.2004 18:41)
|
| Киньте в меня pls лекарством для IAR EWARM 4.10B или 4.11a |
AUG |
id=13724 20.08.2004 11:21 |
| Разработка программного кода более 64К для MCS-51в Keil. Не удается извлечь содержимое COMMON области из абсолютного файла. |
videonews |
id=13720 20.08.2004 09:17 |
Обращение к тем кто уже победил CODE BANKING в Keil. Удается выдернуть из авсолютного файла только банки B1, B2, ... и т.д. Никакое сочетание утилит (BL51, LX51, OC51, OHX51) не выдает на гора содержимое COMMON области. Либо все сразу, либо ничего. Есть подозрение, что утилиты кривые. Кто и как выходил из положения? |
| Вопросы по Си (без провокаций) |
bialix ответов: 21 |
id=13686 19.08.2004 16:52 |
Почему я не могу на Си присвоить всем элементам структуры значения одной операцией? Или я просто не в курсе как?
Пример:
#include "stdio.h"
typedef struct _tag {
unsigned char a;
unsigned int b;
float c;
} s_test;
s_test s1 = { 'a', 10, -3.0};
main()
{
s_test s2;
s2 = { 'A', 36, -0.999 };
printf("\n s1: %c %d %f", s1.a, s1.b, s1.c);
printf("\n s2: %c %d %f", s2.a, s2.b, s2.c);
printf("\n");
return 0;
}
Для s1 все коректно. Инициализация будет при стартапе.
Для s2 - ругается. Как по-другому это надо написать, чтобы компилятор съел?
- s_test s2 = { 'A', 36, -0.999 }; //??? - Алексей Мусин (19.08.2004 16:57)
- если не сработает, static добавить - Алексей Мусин (19.08.2004 16:58)
- не. мне надо формировать структуру runtime, не из констант, а из переменных примерно так s2 = { var1, var2, var3}; причем в самых неожиданных местах, а не только в начале функции.
Вот например присваивание s2 = s1 работает - члены структуры копируются из 1 в 2. А как мне сгенерить инициализацию структуры во время выполнения в таком же духе?
Или только каждый раз выделять локальный блок, в нем делать локально видимую переменную, которую инициализировать при создании и ее содержимое присваивать уже в нужную переменную? не хотелось бы, чтобы под создание временной промежуточной переменной компилятор выделял память :-((( - bialix (19.08.2004 17:10)
- тогда написать инлайн функцию самому :) - Алексей Мусин (19.08.2004 17:15)
- ясно. если бы еще чистые си-компиляторы позволяли писать свои inline-функции :-( - bialix (19.08.2004 17:20)
- а чего просто инициализировать элемент структуры нельзя? struct qwe { char a; char b; }
struct qwe s1, s2;
s1.a = s2.a; - непонятно для чего? (19.08.2004 18:50)
- а если элементов в структуре пару десятков и инициализировать надо часто? предложите рецепт - bialix (19.08.2004 19:28)
- макрос? если предположить, что запись вида
s2 = { 'A', 36, -0.999 };
не при описании переменной (так как у Вас) была бы корректна, то разве она не была бы равнозначна записи
s2.a = 'A';
s2.b = 36;
s2.c = -0.999;
т.е. компилер генерит последовательно несколько присваиваний, тогда вполне можно написать свой макрос, который выглядел бы как-нибудь так:
#define SSET( aa, bb, cc ) { s2.a = aa; s2.b = bb; s2.c = cc; }
и тогда в исходнике не будет много строчек ;)
а если компилер генерит что-то вроде копирования всей структуры зараз, то эта "структура для копирования" уже будет в коде присутствовать и если пишем, скажем, для пика, то хорошо бы ее расположить в памяти программ (она там все равно будет так или иначе) и для picc компилера будет что-то такое:
const s_test init_s2 = { 'A', 36, -0.999};
и можно будет сделать простое присваивание:
s2 = init_s2;
идея ясна? - ну, а что еще можно предложить-то (19.08.2004 19:37)
- Ответ: чтобы не было сомнений в моей полной некомпетентности отвечаю на все незаданные вопросы:
1. что такое макросы и чем они отличаются от inline-функций -- я знаю
2. как сделать поэлементное присваивание я знаю
3. при инициализации локальных переменных структур константной структурой это дело производится через аналог memcpy, шаблон хранится в памяти программ
А вот теперь вопрос:
* если компилер достаточно тупой, чтобы константную структуру хранить в памяти программ цельным куском, почему он не может сгенерировать все необходимые инструкции для создания такой же структуры динамически в памяти данных?
- bialix (19.08.2004 20:00)
- Ответ: какой-то Вы, Александр, нервный в последнее время ... о Вашей некомпетентности ;) я вполне осведомлен, а на счет вопроса хм ... а он был риторическим? ;)
- ну-ну (19.08.2004 20:08)
- почти. хочется понимаете ли - большого и чистого... - bialix (19.08.2004 20:15)
- Наверное, вам только в С++ будет сухо и комфортно :) Там ведь есть переопределение операций хотя из чисто прагматических соображений ваше упорство непонятно.
Я бы сразу сделал
void FillStruct (struct tag *p, char var1...)
{
p->... = var1;
p->...
}
и двигался дальше - Алексей Мусин (20.08.2004 07:05)
- да. такой вариант вполне подходит. хотелось найти какое-то универсальное решение, поскольку предполагается что у меня будет набор таких структур (каждая немножечко будет отличаться друг от друга). Для каждой структуры получается нужно будет писать свой конструктор. Вот и грешным делом (вкус, испорченный программированием на питоне) хотелось понять, нет ли чего удобного, что-то типа заполнения области памяти значениями по списку. Только нету в сях понятия список.
Ладно. я понял. не нуждо ждать милостей от природы.
Вывод: если бы микроконтроллеры появились раньше микропроцессоров, то, наверное, не пришлось бы пользоваться тем си, который мы имеем сейчас.
- bialix (20.08.2004 12:00)
- а все > динамически в памяти данных
т.е. таки будет выделен локальный блок, затем проинициализирован, а затем вызвана ф-ция копирования (memcpy), этого хочется? и чтобы все это было как-бы неявно ... а зачем? в чем плюсы? не делать все это вручную самому? непонимаю ... - таки (19.08.2004 20:15)
- Если я конечно правильно понял желание то просто держите такую запись:
MY_STRUCT workstruct;
const MY_STRUCT StructValues[] = {
{ elem1_1, elem2_1, ... , elemN_1},
{ elem1_2, elem2_2, ... , elemN_2},
....
{ elem1_M, elem2_M, ... , elemN_M}};
и в нужных местах присваивайте
workstruct = StructValues[number_needed];
При желании для красоты можно через #define номера "number_needed" пообзывать именами.
- SM (19.08.2004 21:07)
- так он же говорит, мол, компилер констовые переменные в память програм не кладет - вот так (19.08.2004 21:11, ссылка)
- Ну уж не знаю что и куда кладет его компилер, а например CCS кладет точно туда, куда сам и определишь через #pragma data_section. Ну а секцию в дальнейшем линкер куда я скажу, туда положит. Возможно в его компилере это делается через кукую-то другую #pragma, или через какой-либо keyword... Но делаться должно! - SM (19.08.2004 21:24)
- вот и я так думаю, но он - упирается ;) (19.08.2004 21:26)
- Даже если компилер не кладет константные структуры в единый кусок в загрузочном модуле (а кстати так поступает CCS в режиме "run-time autoinitialization"), то он их хранит единым куском в памяти данных, которую инициализирует во время стартапа c-runtime (для CCS это функция _autoinit, вызываемая перед main(), она заполняет инициализированные переменные по хитроформатной таблице из секции .cinit, которую генерит сам компилер). В таком случае место, занимаемое секцией .cinit, чтобы не пропадало, можно потом использовать под какие-нибудь свои буфера. В результате и овцы целы (лишняя память не занята), и волки сыты (структуры все единым куском лежат). - SM (19.08.2004 21:33)
- Напиши просто s2 = s1; - Михаил Евстафьев (19.08.2004 19:44)
- Может так #defane StructInit(StructName,_a,_b,_c)\
StructName##.a=_a;\
StructName##.b=_b;\
StructName##.c=_c
Ну и дальше
StructInit(s1,'a',10,-3.0)
или
char rr;
.....
rr=15
.....
StructInit(s1,'a',10,rr)
- ер (22.08.2004 13:36)
|
| Tелесиськи опять рухнули. |
miv ответов: 3 |
id=13681 19.08.2004 16:00 |
- Только я там тему создал как она упала :) Это я такие письма пишу! - POV (19.08.2004 16:33)
- Черт, опять она с колен поднялась:) - POV (19.08.2004 16:34)
- У тебя канал узкий и она в нем застревает. Качай свой канал, чтоб толще стал!! - General (19.08.2004 16:45)
|
| Скромный вопрос по комплектующим... |
POV ответов: 8 |
id=13672 19.08.2004 14:56 |
никто в продаже не видел разъем питания как у IDE устройтсв для печатного монтажа с прямыми ногами?
Нет ли у кого предложений по замене на что-то похожее - 4 ноги, ток 6...8 А на ногу?
- Любые в сотне мест: от Бурого Медведя до МТ - General (19.08.2004 15:16)
- Хм, в медведЕ не нашел,может плохо искал? А что такое МТ? - POV (19.08.2004 15:42)
- Ответ: - General (19.08.2004 15:44, ссылка)
- Ок - POV (19.08.2004 15:55)
- Блин, вот и поручай кому-то что-то в свое отсутсвие. За одну минуту нашел - POV (19.08.2004 15:50)
- Выбирай -> - Al Volovich (19.08.2004 15:30, ссылка)
- Ну эту бумажку я читал в бумажном виде и не понял... для всех разъемов указано 3 А. Как не верится что PHB и WF например одинаковы. - POV (19.08.2004 15:44)
- Мне тоже не верится... Видимо истина где-то не на сайте платана - Al Volovich (19.08.2004 15:48)
|
| Ответ: |
Timan ответов: 6 |
id=13669 19.08.2004 14:34 |
Господа,помогите великодушно,вылечить ew430-ev-220A.Заранее признателен.
- ew430-ev-220A Господа,помогите великодушно,вылечить ew430-ev-220A.Заранее признателен. - Timan (19.08.2004 14:36)
- Ответ: будка00 - VAI (19.08.2004 14:45, ссылка)
- Ответ: Уважаемый VAI,мне не удалось зайти в httр://briefcase.yahoo.com
под ID:ru_embedded00 и паролем:iarcr@cks.html(может я чего не понял?).
Если не трудно,сбросте мне на ящик этот самый iarcr@cks.html - Timan (23.08.2004 22:30)
- Пароль неверен. Прочти ФАК и подумай - ASDFS (23.08.2004 23:02, ссылка)
- Ответ: Очень тонкий намек: Кто живет в собачей будке? (набирать мелким транслитом!) - VAI (24.08.2004 07:15)
- Ответ: Весьма рад.Спасибо - Timan (24.08.2004 13:06)
|
| Господа, я ищу лекарство для ew430-ev-320a. Поделитесь, плз., у кого есть, а то в будках что-то не нашел. |
Alexey_N ответов: 2 |
id=13657 19.08.2004 01:00 |
Спасибо.
- Ответ: В будке00 лежит с 30 июня.... Теперь и у Вас в почте. - VAI (19.08.2004 07:30)
- Спасибо! - Alexey_N (19.08.2004 12:08)
|
| СРОЧНО КУПЛЮ CCS 2.21 !!!!!!!!!!!!!!!!!!!!!! |
KSV ответов: 3 |
id=13649 18.08.2004 17:08 |
начнем с 50у.е
eva_gofman@mail.ru
- А скачать слабо? - SM (18.08.2004 23:34)
- Не триал, с поддержкой железа - KSV (19.08.2004 09:28)
- Ну о нем и речь естессно... Ссылок было дано раз так 64...128 в телесистемовской конфе - SM (19.08.2004 09:49)
|
| Ответ: |
KSV ответов: 1 |
id=13647 18.08.2004 17:03 |
Куплю CCS 2.21 (не триал)
- Куплю - KSV (18.08.2004 17:07)
|
| LPC2XXX - счего начать ? |
Artyom ответов: 1 |
id=13641 18.08.2004 15:35 |
Что нужно чтобы начать работать с LPC?
Если приобрести EVB21xx и Wig-MT JTAG адаптер(30 у.е.), смогу ли я использовать отладку в реальном времени?
Спасибо.
- FAQ - направо - General (18.08.2004 16:02, ссылка)
|
| Я к сожалению не силен в С :( Объясните |
si ответов: 17 |
id=13599 18.08.2004 00:29 |
Обьявляю тип в одном модуле
typedef struct struct_cBuffer
{
unsigned char *dataptr;
unsigned short size;
unsigned short datalength;
unsigned short dataindex;
} cBuffer;
Потом определяю переменную в другом
И получаю что
resBuffer[0] и resBuffer[1] находятся по одному адресу :(
- Дык это натурально компилер глючит. Или Вы :) - SM (18.08.2004 00:34)
- И я к тому склоняюсь :( Компилер GCC для AVRок. Обошел объявляя не массивами а отдельными переменными. - si (18.08.2004 00:37)
- Сейчас придет Bill и всё скажет. - =L.A.= (18.08.2004 10:28)
- Не скажу. Тут подробнее надо смотреть. - Bill (18.08.2004 10:49)
- Ответ: - si (18.08.2004 00:34)
- а если объявить как struct_cBuffer resBuffer[2]; ? - Max_QNX (18.08.2004 11:04)
- Та же @ерня Пробовал в одном модуле
struct cBuffer
{
unsigned char *dataptr;
unsigned short size;
unsigned short datalength;
unsigned short dataindex;
};
struct cBuffer resBuffer[2];
Теже яйца только вид сбоку :(
- si (18.08.2004 11:24)
- а как вы узнали, что адрес одинаков? - bialix (18.08.2004 11:54)
- Сначала увидел неправильность в работе. Посмотрел .map не поверил. Загрузил в AVR Studio уже поверил :) Три источника врать не будут - si (18.08.2004 12:13)
- а ради эксперимента попробуйте с таким объявлением, вдруг?
typedef struct _tag_cbuffer
{
unsigned char *dataptr;
unsigned short size;
unsigned short datalength;
unsigned short dataindex;
} cBuffer;
Есть слабое подозрение... - bialix (18.08.2004 12:27)
- Не помогло :( - si (18.08.2004 16:35)
- значит это диагноз для компилера - bialix (18.08.2004 17:37)
- Компилер глючит, только если не совпадает с чем-то системным, проверил в HT PICC - всё в поряде typedef struct struct_cBuffer
{
unsigned char *dataptr;
unsigned short size;
unsigned short datalength;
unsigned short dataindex;
} cBuffer;
cBuffer resBuffer[2];
void main()
{
resBuffer[0].size = 1;
resBuffer[1].size = 2;
}
- patton (18.08.2004 13:06)
- В IAR (MSP430) так тоже все OK - vvvv (18.08.2004 14:46)
- Странно что в GCC не работает :( ладно буду посмотреть. - si (18.08.2004 16:38)
- unsigned char *dataptr - указатель на char - размер указателя может быть int - зависит от вдр пространства.
Не проще объявить просто
cBuffer resBuffer;
А как обращаться зависит от компилера - vvvv (18.08.2004 14:36)
- Уберите из typedef тэг struct_cBuffer - Berg (25.08.2004 18:16)
|
| Подскажите пожалуйста популярный чипец dc/dc с 3х вольт(2 батарейки) в 5... потребление в пике до 200-300мА(в компонентах не нашел:(() |
superkeks ответов: 3 |
id=13584 17.08.2004 19:00 |
- TPS60500 (250ma), MAX756(200ma) - General (17.08.2004 19:27, ссылка)
- Спасибо.На сайте посоветовали max1674 - по току значительно приятнее...(ссылка на max856 не работает...) - superkeks (17.08.2004 20:01)
- TPS60130 CHARGE PUMP 300ma - si (17.08.2004 22:07)
|
| Ассемблерные вставки в Си (Keil) |
Tow ответов: 2 |
id=13580 17.08.2004 18:11 |
Возникла необходимость использовать асм-вставки в си-шный код. Начал учиться как это делать и вот столкнулся с проблемой передачи параметров. Подскажите как её побороть.
Есть Си-шная функция с использованием асм-вставки:
unsigned int Increment(unsigned int value)
{
#pragma asm
MOV A,R7
ADD A,#01H
MOV R7,A
CLR A
ADDC A,R6
MOV R6,A
#pragma endasm
}
Вот что мы видим в SRC-файле.....
_Increment:
MOV value?040,R6 /* line #1 */
MOV value?040+01H,R7 /* lien #2 */
MOV A,R7
ADD A,#01H
MOV R7,A
CLR A
ADDC A,R6
MOV R6,A
RET
Получили РАБОТАЮЩИЙ кусок кода.
Вопрос: почему возникают стороки /* line #1 */ и /* line #2 */....
и "вываливаются" варнинги
INC.C(15): warning C173: missing return-expression
INC.C(3): warning C280: 'value': unreferenced local variable
что мол функция ничего не возвращает и переменная value не используется. Как объяснить Си что бы он
1) не делал лишних строк /* line #1 */ и /* line #2 */
2) понимал что функция результат всё таки возвращает.
Может у кого есть кусок кода киньте на мыло.
Заранее спасибо.
- Хм... Так компилятор совсем не воспринимает ассемблерную вставку. Для него функция выглядит так:
unsigned int Increment(unsigned int value)
{
}
Все, что внутри #pragma, компилятор никак не анализирует а просто передает этот код ассемблеру. Соответственно, "лишние" строки связаны с копированием параметра в рабочую область, причем этот параметр в функции нигде не используется. Отсюда первое предупреждение.
А поскольку в функции отсутствует оператор return <выражение>; то выдается второе предупреждение.
Лучше всего ассемблерными вставками совсем не пользоваться, а писать необходимую функцию целиком на ассемблере в отдельном файле и включать этот файл в проект. Выигрыш от использования ассемблерных вставок весьма сомнителен. - Bill (17.08.2004 23:33)
- Спасибо. Так и сделал. - Tow (18.08.2004 17:51)
|
| Ответ: |
Tow |
id=13579 17.08.2004 18:11 |
Возникла необходимость использовать асм-вставки в си-шный код. Начал учиться как это делать и вот столкнулся с проблемой передачи параметров. Подскажите как её побороть.
Есть Си-шная функция с использованием асм-вставки:
unsigned int Increment(unsigned int value)
{
#pragma asm
MOV A,R7
ADD A,#01H
MOV R7,A
CLR A
ADDC A,R6
MOV R6,A
#pragma endasm
}
Вот что мы видим в SRC-файле.....
_Increment:
MOV value?040,R6 /* line #1 */
MOV value?040+01H,R7 /* lien #2 */
MOV A,R7
ADD A,#01H
MOV R7,A
CLR A
ADDC A,R6
MOV R6,A
RET
Получили РАБОТАЮЩИЙ кусок кода.
Вопрос: почему возникают стороки /* line #1 */ и /* line #2 */....
и "вываливаются" варнинги
INC.C(15): warning C173: missing return-expression
INC.C(3): warning C280: 'value': unreferenced local variable
что мол функция ничего не возвращает и переменная value не используется. Как объяснить Си что бы он
1) не делал лишних строк /* line #1 */ и /* line #2 */
2) понимал что функция результат всё таки возвращает.
Может у кого есть кусок кода киньте на мыло.
Заранее спасибо.
|
| Подскажите утилиту |
Artyom |
id=13564 17.08.2004 14:51 |
Нужна утилита для генерации кода инициализации периферии AT89C5x -
что-нибудь похожее на CodeWizardAVR из CVAVR, но для x51.
Спасибо. |
| Пошевелился здесь народ недельку и опять на телесистемы ушел:( Блин, у меня канал тонковатый для закачки всей странициы на телесисках. |
POV ответов: 1 |
id=13557 17.08.2004 11:01 |
- Да и ладно. Главное - пока сахара тут, телесистемовцы интерфейс поменять не посмеют. - soundmaster (17.08.2004 19:40)
|
| ОFF: |
VAI |
id=13543 16.08.2004 13:19, картинка |
| Страничка переехала |
Sot ответов: 6 |
id=13537 16.08.2004 11:35, ссылка |
- чего-то файло оттуда - не качается :( (16.08.2004 13:22)
- Нормально качается Щелкнуть на файл, а в новом окне на полную ссылку можно натравливать любую качалку. - Sot (16.08.2004 15:12)
- наверно, несчастливый любыми средствами пытался. открывается страничка, тычу тами на ссылку - говорит, что качает, реально на винт кладет файл с расширением рар, но внутрях просто html-ка, типа This File is Hosted by Free.ProHosting.com и т.д.
- я (16.08.2004 16:17)
- И я несчастливый. Все качалки и броузеры определяют длину файлов по 2 кбайта и хана :( - POV (16.08.2004 16:27)
- Проблемы с кешированием страниц Обратитесь к администратору вашей сети за разрешением проблемы.
- Sot (16.08.2004 16:35)
- Ok - POV (16.08.2004 16:46)
|
| Загнал два at90s1200 в позу, залочил авриалом, теперь чего? городить паралельный программатор на проводках? |
sanchoo ответов: 10 |
id=13522 14.08.2004 13:43 |
Залочил, а они стираются только паралельным программером. впаяны в плату блин, вот проблема. Думаю проводами подпаятся и кнопочками подать на него команду стирания. Пробовал кто?
- Что залочил? локбиты или СПИЕН? Если первое - то ЕРАЗЕ поможет, если второе - параллельный. - =mse= (14.08.2004 14:21)
- чё-то запутался, купил пару новых, они тоже не шьются, фигня какая-то. Тем же шнуром at90s8535 шьет. иногда выдаёт 00 01 02 типа лочен чипец. - sebastopol (15.08.2004 10:55)
- вот такую чепуху выдаёт avreal на три чипа, все новые??? Command:
+90s1200 -p1 -o1000 -r -% TEST.hex
% LPT base port 0x378
% assume that LPT data writes not faster then 1uS
% FBPRG mode
% osc = 1000kHz -> setup=1, hold=3+1
% Reset
% PgmOn reply 0xFFFFFFFE
% GetID reply 0x00300000
% GetID reply 0x00300001
% GetID reply 0x00300002
% Read ID: 0x000102
Device connected, but not recognised, ID: 0x000102
(looks as protected)
Can't continue
Reset pin released
Это версия avreal 1.2.3r0, а версия ver1.23rev4 вооще не видит никого.
В чём грабли? супервизора нет на плате.
раньше вроде прошивал их на др. плате, проблем не было, а тут прямо ничё не могу сделать.
Выглядит как будто они лоченые, но покупал в магазине!? - sebastopol (15.08.2004 21:19)
- попробуй АВРеалу скорость сризить, видать спаян хреново - =mse= (16.08.2004 09:50)
- шнур нормальный, я им шью давно и упорно, скорость вообще минималную ставил, не помогает - севастополь (16.08.2004 12:42)
- усё, справился. поставил туда 90s2313 и зашил с первого раза. at90s1200 остались в столе валятся, до лучших времён:) - sebastopol (17.08.2004 00:40)
- Там у Саши была ошибка в одной из предпоследних версий, именно с 1200 В последней он ее исправил. Может обновиться надо?
>При изменении процедуры входа в программирование (1.23rev3) было забыто про "особенности" кристалла at90s1200. Исправлено. - Сергей Борщ (17.08.2004 12:38)
- не, у меня 1.23 rev0 и 1.23rev4 только есть. rev0 выдаёт 00 01 02 - залочен, rev4 вообще нефига не выдаёт. - севастополь (17.08.2004 17:19)
- 1.24r0 уже давно бы скачал - =mse= (17.08.2004 17:27)
- 1200-е любят терять DEV ID, тогда помогает ключик -! Но для свежекупленных это странно. А вообще я 1200-е за глюки и ограничения не люблю, давно везде заменены на 2313, в свежих разработках tiny26 или мега8 в qfp (с прицелом на мегу48).
- ReAl (25.08.2004 11:39)
|
| (жалобно) Люди добрые, поделитесь документацией на цветной LCD от телефона Siemens M55 (C60)? Уж больно хочется. Или на контроллер его. |
Grapaf |
id=13519 14.08.2004 02:57 |
| А-а-а-а-а-а!!!! Как хорошо прошли последние 2 часа перед отпуском... :-) |
ReAl ответов: 3 |
id=13513 13.08.2004 21:37 |
Часа два бился - какие не вношу исправления в makefile, всё равно мура какая-то. Ну никак не находит всё нужное и всё тут.
"на третий день зоркий сокол обнаружил", что makefile правился на флешке....
- А-а-а-а-а-а просто да-а-а-авно пора-а-а-а в отпуск :))) - General (13.08.2004 22:31)
- Это еще что, вчера до 23.00 сидели с одним "программистом" на предприятии,
доделывали программу контроллера для станка, результат - после того
как приняты все начальные параметры, контроллер верхнего уровня
перезагружается (то есть полный reset) А у Вас какой-то makefile...
Меня просто начало "трясти", потому что сегодня я сдавал работу.
Представляете себе каково мне было смотреть заказчику в глаза?
Думаю, что комментарии излишни.
- Antimouse (13.08.2004 22:57)
- Вот и закончился мой отпуск.... :-( Но два ведра ЧИЩЕННЫХ, причём МАСЛЯТ - чистить это было весело :-)
Сейчас на десктопе фотография сковородки "опытного образца" :-)
Остальное проварено в смальце и стоит в холодильнике, каждое утро об отпуске напоминает :-) :-)
- ReAl (25.08.2004 11:43)
|
| Помогите найти ссылку на дистрибутив HI-TECH PICC18 Compiler v8.30 Full или киньте в почту.Плиз. |
gerasch ответов: 1 |
id=13507 13.08.2004 16:22 |
- глянь внутрь ввв точка rivstech точка ру /downloads/index.php?subcat=17 - добрый (13.08.2004 18:39)
|
| Вопрос по CVS |
bialix ответов: 17 |
id=13505 13.08.2004 16:12 |
как удалить с файла липкую метку (sticky tag). А то я не знаю, как я ее поставил, но она мне теперь не дает сделать commit
- дык "cvs update -A " все ж в доке написано - -=DASM=- (14.08.2004 04:24)
- А поставил ее cvs, когда вы извлекали (checkout) по ней из репозитория :) - Алексей Мусин (16.08.2004 09:29)
- Ответ: Запросто: В диалоговом окне Update settings (если это WinCVS) поставить галочку в поле Reset any sticky date/tag/'-k' options. - IgorKossak (16.08.2004 11:42)
- это был TortoiseCVS - bialix (16.08.2004 11:53)
- спасибо. помогло. А вот такой полу-офф по поводу той же WinCVS и Python Для чего в WinCVS используется Python? Точнее Python Shell?
Что с его помощью можно делать? Или простенькие сценарии писать или что-то еще? Кто-нибудь знает? - bialix (16.08.2004 12:59)
- не объяснишь, в чем радость юзания оболочек для CVS кроме как для обучения первые дни ? - -=DASM=- (17.08.2004 04:30)
- А это из серии навешивальщиков оболочек на avreal наверное :) Красиво и время отнимает... - SM (17.08.2004 10:34)
- единственной пользой оболочек должна быть помощь в выполнении нетривиальных операций как например создание bat-файла с комментариями о содеянном. Большего от них требовать вредно И вообще флейм про оболочки будет вечным и все стороны останутся при своем мнении. Однако только глупцы полагают, что наличие GUI означает полный отказ от ключей командной строки. Впрочем, такие же глупцы потом пишут и проги, которые ничего не знают о существовании командной строки. Но это уже отдельная песня. - bialix (17.08.2004 11:54)
- объясню. Например к уродскому билдеру нормально cvs через командную строку не подключишь к тому же операции типа commit и т.п. не настолько часты, чтобы мне не влом было открыть проводник и через контекстное меню нащелкав мышкой нужные файлы сделать commit через TortoiseCVS. И смотреть историю и дерево ревизий нагляднее в окошках.
Для моих нужд черепахи хватает с головой. А WinCVS я и не пользуюсь - уродливая она какая-то и неинтуитивно понятная. - bialix (17.08.2004 11:46)
- и еще когда пытаешься через командную строку сделать diff или посмотреть историю, то все выдается в консоли (псевдодос) с кодировкой дос. Мой любимый редактор это дело захватывает и показывает мне в своем окне. Естественно я вижу вместо русских букв иероглифы. Оно мне надо?
Недавно в конфе по питону с интересом читал бурный флейм о том, что если ты пишешь программы не только для себя и имеешь смелость их показывать другим - так позаботься об английских комментариях или вообще никаких. Может это и правда, но мне приятнее и удобнее писать/читать русские комментарии. И себя переделывать я особой нужды не вижу. - bialix (17.08.2004 11:51)
- Ну я просто из-под линукса все CVS'ю... И там все нормально и когда диффы смотреть, и остальное... - SM (17.08.2004 15:01)
- да. все правильно. это только в винде так. просто полностью на линух я сечас переходить не могу. - bialix (17.08.2004 15:36)
- Ну и я, если бы весь софт нужный виндовым был, вряд-ли перекочевал бы... - SM (17.08.2004 16:41)
- Ну вот мне сначала в руки WinCVS и попала, полюнул, работаю из командной строки "не настолько часты, чтобы мне влом было" открыть FAR и в нём нащёлкать. Так что "черепашку" даже искать не стал.
И даже к MED-у пока эти операции не прикручиваю, хоть это и несложно и пример ( (C)Мозжевилов ) очень толковый с описанием перед глазами есть.
Как это ни удивительно, но мне и под виндой
cvs diff -c тра-ля-ля |less
сказать несложно и хватает. - ReAl (25.08.2004 11:48)
- мне вот что интересно - про комментарии к файлу когда я делаю commit то часто стараюсь снабжать файлы комментариями по теме: чего сделано, почему, зачем, чего хотелось бы еще. Иногда такие комментарии бывают довольно длинными. Через командную строку, наверное, такие комментарии не очень удобно задавать. Может я чего-то не понимаю?
В IDE Keil µVision2 была удобная фишка для этого дела. Интеграция интерфейса с системой контроля версий была выполнена довольно качественно. В настройках команд VCS можно настроить выдачу специального текстового окошка, в котором можно легко и непринужденно ввести комментарий (достаточно длинный) и он будет подключен в командную строку через временный файл. - bialix (25.08.2004 12:28)
- при отсутствии комментария в командной строке cvsnt выкидывает "текущий редактор по умолчанию", с файлом, в котором для напоминания в автоматически удаляющихся строках (начинаются с 'CVS:') перечислены имена файлов и указана операция (commit, remove, ...).
Поскольку я ничего в environment variables не прописывал, вызывается notepad.
- ReAl (25.08.2004 13:45)
- понятно, вполне удовлетворительное решение - bialix (25.08.2004 14:36)
|
| ADuC814 (EE/flash DATA memory) Внимание! Команда, которая выполняется за 2 мс!? |
bonifaciy ответов: 4 |
id=13502 13.08.2004 15:57 |
Читаю главу "FLASH/EE MEMORY TIMING". Если я правильно понимаю написанное, то проц "виснет" во время стирания страницы энергонезависимой памяти на 2 мс... А может и на больше "зависнет"... указано типовое время...
Все это жестоко по отношению к моему устройству :( Зачем они так?
А как организовано обращение к энергонезависимой памяти в других МК ADuC с 51-м ядром и с ядром ARM???
- для ADuC8xx все также. А что - прерывания нужны? - bialix (13.08.2004 16:00)
- да, прерывание от UART. Скорость 115200 бит/сек :) - bonifaciy (16.08.2004 06:41)
- Вы FLASH и EEPROM не путаете часом? Мне в одном проекте с MSP430 тоже пришлось отказаться от использования внутренней INFO FLASH по причине сходной с вашей. У меня довольно критичное приложение с прерыванием около 1.5ms. А время стирания FLASH MSP430 около 10ms. Пришлось применить внешнюю SPI EEPROM для хранения малой толики настроечных данных, которые сначала планировал писать в INFO FLASH MSP430. - rezident (13.08.2004 16:16)
- наверное у меня была такая путаница, т.к. с записью во FLASH не работал, только с EEPROM Теперь прийдется разгребать начатое.
А в MSP430 все же есть альтернатива выполнять код из ОЗУ. (достоинство фон-Неймановкой архитектуры МК?) Значит, можно в ОЗУ MSP430 организовать что-нить типа приемника/передатчика кадра через UART во время стирания/записи FLASH? - bonifaciy (16.08.2004 06:57)
|
| Вопрос по PDIUSBD12... |
Alexei ответов: 1 |
id=13480 13.08.2004 12:07 |
Добрый день всем. Если кто-нибудь работал с PDIUSBD12, подскажите плиз, почему ента штука все время устанавливает на выходе INT ноль и никак не хочет его менять после чтения регистра прерывания???
- Ответ: А last transaction status читать кто будет ? - listener (13.08.2004 18:10)
|
| Мужики!!!Ну неужели никто не разрабатывает цифровые фильтры в Матлабе? |
gray |
id=13468 13.08.2004 09:39 |
Я хочу лишь узнать по какой схеме нужно включать выданные им коэффициенты.SM ответил на телесисах,сначала показалось понял,начал разбираться - всё равно однозначности нет.Нарисуйте,плз,схему включения. |
| Очень нужен эмулятор AT89S8252(железка). |
Страждущий |
id=13463 12.08.2004 20:29 |
Возьму на время за деньги или спасибо или м.б. куплю. Москва или Рязань. Свои предложения на potap_off$front.ru |
| Во, блин, вот где уже все... |
tea ответов: 1 |
id=13450 12.08.2004 17:35 |
Радует, а то Телесистемы обещали поменять движок и облом. Ну и новое западло:"Вебмастер, зачем мне Ваш пароль, я же предложил свой?"
- Да, здесь уже бывали зарубы под 200 постов. Крепчаем. ;О) - =mse= (13.08.2004 09:55)
|
| AVR EEPROM |
Artyom ответов: 2 |
id=13441 12.08.2004 15:53 |
Не было ли у кого-нибудь потери данных записанных в EEPROM AVR?
Что может вызвать потерю данных?
Спасибо.
- Включение-выключение питания, пользуйся Brown-детектором, записью данных по трем разным адресам с последующей проверкой, если в 2-х одинаковы - используй (мажоритирование), уводи адрес после записи и считывания в сторону от данных - bvn123 (12.08.2004 16:09)
- BOD - прально, всё остальное... ...после процедуры чтения-записи ЕЕПРОМ, пиши в EEARx нолики. Соответственно $0 ячейка лучше бы не использовалась. В этом случае мона и без BOD. - =mse= (12.08.2004 16:16)
|
| Не встречал ли кто статическую оперативную память с 8-разр. (или >) шиной данных без шины адреса, чтобы адрес инкрементировался внутри при записи/считывании? |
bvn123 ответов: 3 |
id=13440 12.08.2004 15:39 |
- По-моему, они называются FIFO. - Mik (12.08.2004 17:34)
- Не - i8155 ;О) - =mse= (13.08.2004 09:43)
- ;О) шутю - =mse= (13.08.2004 10:01)
|
| Лекарство для CrossWorks MSP430 где лежит??? |
GEO ответов: 1 |
id=13439 12.08.2004 15:38 |
Лекарство для CrossWorks MSP430 где лежит???
- Ответ: Лекарство для CrossWorks MSP430 где лежит??? Я тоже ищу - для версии 1.3 - bg45 (05.01.2005 00:02)
|
| Кто поможет по Matlab? |
gray ответов: 2 |
id=13416 11.08.2004 16:57 |
Конкретно симулинк,ещё конкретней Digital Filter Design.Задал я ему параметры,выдал он мне кучу коэффициентов Numerator и Denomiator.Вопрос по какой схеме включать эти коэффициенты?Реализаций фильтров много,какая нужна?С Матлабом раньше никогда не приходилось работать,хелпов нет.
- как это хелпов нет? вместе с матлабом всегда идет такая куча хелпов - что замучаешься читать - bialix (11.08.2004 17:13)
- Значит мне диск такой попался. - gray (11.08.2004 17:29)
|
| Почему на выходе SD Card при любой команде стоит 0? |
rius |
id=13411 11.08.2004 15:33 |
Почему на выходе SD Card при любой команде стоит 0. Похоже карта вообще не отвечает. Ток потребления карты 1-3 мА. |
| Помогите с кряком для EWARM 4.11a. Очень нужно, спасибо! |
groovy ответов: 1 |
id=13391 11.08.2004 11:07 |
groovy@mail.ru
- Ответ: есть на фулл-версию. У Вас какая? - VAI (12.08.2004 10:00)
|
| Коллеги, кто поделится таблеткой для ADX-68K фирмы AVOCET для MC68000 или у кого есть хорошая система разработки с ассемблером с поддержкой MC68340.Плз |
Hornet |
id=13376 10.08.2004 19:00 |
| А как правильные люди к плате коаксиал приделывают? |
Al Volovich ответов: 14 |
id=13344 10.08.2004 13:26 |
Я сделал площадку под оплетку и рядом отверстие под жилу, но мне это не очень нравится...
- коннектор ставят. - Max_QNX (10.08.2004 13:47)
- Шо, даже для соединений внутри устройства коннектор ставится? - Al Volovich (10.08.2004 14:21)
- откройте телевизор и посмотрите - от СКМ СКД до гнезда на задней паннели коаксил - с обоих сторон на коннекторах - ИМХО хороший тон. можно конечно в стиле старых разработок (ПТК) - там экран паялся на корпус - а жила на жёсткий вывод проходной ёмкости (или что-то похожее). но я как-то давно не наблюдал такого конструктивного решения. (Хотя я не всевидящее око - может чего и не увидел) - Max_QNX (10.08.2004 15:33)
- Надо еще чтоб был нагрузочный резистор параллельно коннектору , если сопротивление схемы отличается от волнового сопротивления кабеля. - =L.A.= (10.08.2004 16:19)
- ну в телевизоре то всё "по уму" :) - Max_QNX (10.08.2004 16:33)
- вроде есть сейчас этакие разъёмчики... как бы это объяснить - зачищается коаксил - центральная жила используется как центральный штырь а оплётка отгибается и сверху накручимвается колпачок. на плату ставится ответная часть - и стягивается. - Max_QNX (10.08.2004 16:36)
- Полное это дерьмо, а не разъёмы, должен я вам доложить - Shura в эмиграции (10.08.2004 18:19)
- ну есть ещё разъёмчики которыми соединения в генераторах прямоугольных импульсов сделаны :) правда я такие видел кроме генераторов только в головках самонаведения ракет. ;-) - Max_QNX (10.08.2004 18:27)
- А вот и нет На входное гнездо всю жизнь кабель распаивался, не было там никогда никаких разъёмов. - Shura в эмиграции (10.08.2004 18:18)
- э.. ну я его и имел в виду. оно же тоже часть разъёма. неудачно выразился. - Max_QNX (10.08.2004 18:25)
- вообще говоря устройство-устройству рознь. Например, внутри компактной радиостанции ставить кучу разъемов между отдельными узлами - черсчур роскошно и не нужно это. Так что равняться только на телевизеры - это для тех, кто больше ничего кроме них не видел.
- bialix (10.08.2004 18:37)
- еще механический крепеж надо бы - bialix (10.08.2004 15:21)
- Еще 2 отверстия + пластмассовый хомут . - HoBo (10.08.2004 18:15)
- Так и делаем. - Сергей Борщ (13.08.2004 12:21)
|
| OFF: Если кому интересно, обновил скрипт конвертер пикадова репорта. Теперь на выходе - сразу excel файл... Thanks to General :-) В перспективе - создание репортов из файла sch (ASCII). Thanks to SM :-) |
Звероящер |
id=13343 10.08.2004 13:25, ссылка |
| 0xFF |
POV ответов: 2 |
id=13319 10.08.2004 11:06 |
мне каталог прислали с расширением *.cif. ЧТо это за чудо такое, чем его смотреть?
- Это просто cifilis. Смотрят в КВД - ummagumma (10.08.2004 11:28)
- Ну не так все плохо - оказалось это образ компакт-диска фишка в том, что этот образ диска записан на диск! Вот такие шутники обитают в русском "SMC Pneumatik" - POV (10.08.2004 11:30)
|
| А кто, какие и где в Киеве датчики влажности берёт? А то что-то гугла ничего вразумительного не подсказала... |
ReAl ответов: 3 |
id=13300 09.08.2004 17:18 |
- Да, имеются ввиду НЕ те, которые уже с выходом 4-20mA или что-то в этом духе :-), а так, в платку впаять рядом с TMP36 :-) - ReAl (09.08.2004 17:23)
- в филуре Honneywell с аналоговым выходом 0-5В - bialix (09.08.2004 17:38)
- Спасибо, как раз то, что надо. - ReAl (09.08.2004 18:03)
|
| Ище инфу по дешевым GRPS-модемам - кто продает, где и пр. Интерес НЕ праздный. |
General ответов: 3 |
id=13291 09.08.2004 15:31 |
- Например, тут. Class 10. - sasha_il (09.08.2004 16:01, ссылка)
- А вот - ummagumma (09.08.2004 16:09, ссылка)
- Да, я уже видел. А что-то еще? - General (09.08.2004 17:32)
|
| Кто розбирался с датчиками объема |
Sundro |
id=13282 09.08.2004 13:17 |
Доброго времени суток!!!
Кто розбирался с проектированием датчиков объема
Нужно контролировать объём в пределах одной комнаты
и определять объекты различного объёма
Где можно прочитать по этой теме ???
не помешали бы примеры различных схемных решений
что можно сказать о моторольной мелкосхеме-датчике MC33794 ?(какова у неё дальность срабатывания)
Заранее спасибо всем ответившим |
| Нужен крэк на IAR EWB for AVR Evaluation 3.10C |
bvn123 ответов: 1 |
id=13263 09.08.2004 11:49 |
Пришлите, пожалуйста, крэк на IAR EWB for AVR Evaluation v3.10C
на E-mail: bvn123@yandex.ru
Спасибо
- Ответ: Отправлено. - IgorKossak (09.08.2004 12:34)
|
| Ответ: |
Knkn |
id=13241 09.08.2004 10:16 |
| Коллеги, вот слепил прогу, которая из PCAD'овского репорта делает более-менее приличную спецификацию... Кто хочеть попробовать и попользоваться, шлите в мыло. С уважением, |
Звероящер ответов: 9 |
id=13233 09.08.2004 08:24 |
- Шли в мыло пощупаем и присоветуем! - Make_Pic (09.08.2004 08:43)
- И.... - ... мне (09.08.2004 10:05)
- Ответ: Спецификация из PCAD Спецификацию или перечень элементов?
bvn123@yandex.ru - bvn123 (09.08.2004 11:32)
- Типа, того и этого... Скорее перечень, но отсортированный.... - Звероящер (09.08.2004 14:23)
- Очень хочу попробовать. E-mail внутри imahyandex.ru - IgorKossak (09.08.2004 12:01)
- Брось в местный файлообменник, пожалуйста!!! - ummagumma (09.08.2004 14:15)
- Выложил на народ.... - Звероящер (09.08.2004 14:22, ссылка)
- Могу подсказать, как легко сделать выход в виде XLS- файла. - General (09.08.2004 15:25)
- Кидай в мыло... - Звероящер (10.08.2004 07:17)
|
| кто каким лаком платы покрывает? Хочется недорого. |
sebastopol ответов: 1 |
id=13228 08.08.2004 22:19 |
- PLASTIK-70 стоит около $10, баллона хватает на долго правда спиртом смывается - AB (09.08.2004 10:59)
|
| 2 Сергей Борщ и для всех, кто интересовался WAKE: |
Леонид Иванович ответов: 23 |
id=13222 08.08.2004 20:17, ссылка |
Я немного обновил страничку WAKE:
http://www.spetspribor.com/support/software/wake/wake.html
Сергей, а Ваш doc я посмотрел и вместе с комментариями выложил по ссылке:
- Неправильная ссылка на "ctc-25n.pdf" в "Download". - Sot (08.08.2004 20:41)
- Спасибо, пофиксил. - Леонид Иванович (09.08.2004 10:30)
- как насчет варианта wake для Unix-систем? можете выложить материалы у себя - µ (08.08.2004 23:37, ссылка)
- Ответ: Выложить могу, но лучше, если мне на мыло сам автор пришлет материал в том виде, в каком он согласен его выложить (вместе с копирайтами). И описание, пусть без оформления, но хотя бы отредактированный txt файл.
- Леонид Иванович (09.08.2004 10:35)
- Max_Fly! Ау! Это к тебе :-) - bialix (09.08.2004 11:22)
- Тута я. :). - Max_QNX (09.08.2004 11:23)
- у меня проблемы с почтой. постараюсь отправить. а копирайты - какие там копирайты Леонид Иванович? :). вполне можете забирать то что лежить у bialix на сайте. там в файле есть информация обо мне и о патчах ( даже уже один патч вышел ;-) ). описание действительно надо сделать - хотя бы в виде programmer guide. опыт показывает что даже серьёзные программисты сидящие рядом с первой попытки сами по коду не разобрались. накапливаю статистику вопросов - в ближайшее время нарисую что-то. сделаю так же пример приложения мастера и слейва. если Вы конечно не против что Ваш протокол выйдет в мир open source. - Max_QNX (09.08.2004 11:31)
- Хорошо, в ближайшее время размещу материалы, которые я скачал с сайта, оформлю, а Вы потом добавите описание. Будем действовать методом последовательных приближений :-)
"если Вы конечно не против что Ваш протокол выйдет в мир open source" - не против. У меня тоже все исходники открыты. - Леонид Иванович (09.08.2004 12:21)
- о? интересно. А я хотел глянуть исходник Вашей dll-ки, которая wake делает - и не нашел. Плохо искал? - bialix (09.08.2004 12:28)
- o? Всё время считал, что исходники dll лежат в архиве WakeUp. Но их там действительно нет! Вернее, уже есть :-)
- Леонид Иванович (09.08.2004 12:37, ссылка)
- спасибо - bialix (09.08.2004 12:41)
- Спору нет, hsh очень непроработан к сожалению (для развития hsh), мы уже отказались от wake. Но не потому что он плох, нет, это хороший протокол, и хорошо документированный. Но есть два "но":
1. Нет квитирования - слейв должен знать, что его ответ дошел до мастера. Ваша мысль о переносе битов квитирования в байт команды очень хороша и "в духе wake"!
2. Так уж есть, что wake описывает Data Link и Network уровни протокола (OSI). В этом его сила (все уже сделано) и его слабость (надо постараться, чтобы положить его, например, на modbus RTU или ASCII, или даже на SLIP). Недавно тут обсуждалась Пирамида - вот пример независимости от Data Link уровня (ссылка на обсуждение с автором http://caxapa.ru/mcu/wwwboard.html?id=11961).
Повторю, wake - хороший протокол для сферы, где он предназначен изначально, но его развитие несколько затруднено (особенно п.2.).
Теперь о ваших замечаниях/комментариях:
1. "Квитирование реализуется на командном уровне."
Можно делать и так (реализовывать ack на уровне приложения), но ведь мы хотим по максимуму делать на более низком уровне.
2. "Не совсем понимаю, зачем нужна команда «запрос разъединения»."
Ее передают и мастер, и слейв после рестарта. Мастеру, может быть, интересно знать, что слейв ресетнулся.
Вот от "закрытия соединения" я бы отказался легко :).
3. "Не понял, как это у Вас приемник второй раз передает подтверждение пакета 1, не приняв пакет 2 от передатчика?"
Вы правы, это надо убрать.
4. "Получается, у Вас приемник всегда после рестарта по собственной инициативе передаёт пакет с кодом команды «нет соединения»?"
Еще раз правы, это я тоже выдрал "и другой оперы" и для обсуждаемой темы это не годится..
- Алексей Мусин (09.08.2004 08:15, ссылка)
- Действительно, WAKE разрабатывался не как универсальный протокол, а для конкретных узких приложений - связи промышленных измерительных комплексов с PC. К тому же, универсальный протокол был бы однозначно сложнее.
Что касается конкретики:
1. "слейв должен знать, что его ответ дошел до мастера" - как мне кажется, это замкнутый круг. А мастер тогда должен знать, что его сообщение о том, что он получил ответ от слэйва, дошел до слэйва и т.д. На практике никогда не испытывал в этом необходимости. Действия слэйва целиком определяются поведением мастера, и по следующему пакету мастера слэйв может судить о том, получил ли он предыдущий пакет. Но, возможно, некоторые приложения имеют свою специфику.
2."«запрос разъединения» - ее передают и мастер, и слейв после рестарта. Мастеру, может быть, интересно знать, что слейв ресетнулся." - если слэйв будет передавать что-то по собственной инициативе, возникнут коллизии. Есть единственный способ узнать, ресетился ли слэйв: мастер должен об этом его спросить специальной командой. Или можно отвести специальный код ошибки, например, Err_Rst, который передавать вместо Err_No в первом ответе на пакет после рестарта. Он будет означать, что уже всё нормально, но был рестарт :-)
P.S. Ничего не понимаю, так кто же автор Wake_hsh.doc? :-)))
- Леонид Иванович (09.08.2004 11:07)
- Вдогонку: Сергей Борщ уже сообщил, что Wake_hsh.doc - Ваш. Какое Ваше мнение, оставить ли этот документ на страничке WAKE (поменяв копирайт, конечно)? Можно добавить туда дальнейшую дискуссию. Или оставлять смысла нет?
- Леонид Иванович (09.08.2004 11:15)
- Оставлять смысла я не вижу поскольку по тому документу ничего толкового не сделать.
Но вашу идею насчет размещения битов квитирования в байте команды я бы оставил для желающих "нарастить" wake.
PS. Автором я попытался стать, но неудачно :). - Алексей Мусин (09.08.2004 11:39)
- Что-то не то я написал :) doc файл не оставлять,
а pdf с вашими комментариями - оставить как иллюстрацию, что же можно сделать еще. - Алексей Мусин (09.08.2004 11:40)
- Про квитирование я уже написал в основном тексте, а pdf я исправлю, дополню и пока оставлю. Думаю, что Ваши предложения по модернизации WAKE будут коллегам полезны. - Леонид Иванович (09.08.2004 12:26)
- Про квитирование. Вот нашел в RFC916, думаю должно подойти:
2.3. Sequence Numbers
Sequence numbers work with acknowledge numbers to inform the
sender that his last data packet was received, and to inform the
receiver of the sequence number of the next data packet it expects
to see. When the ACK flag is set in a packet the AN field
contains the sequence number of the next data packet it expects
from the sender. The sender looks at the AN field and by
implication knows that the packet he just sent should have had a
sequence number of:
If it did have that number that packet is considered to have been
acknowledged.
Similarly, the receiver expects the next data packet it sees to
have an SN field value equal to the AN field of the last
acknowledge message it sent. If this is not the case then the
receiver assumes that it is receiving a duplicate of a data packet
it earlier acknowledged. This implies that the packet containing
the acknowledgment did not arrive and therefor the packet that
contained the acknowledgment should be retransmitted. The
duplicate data packet is discarded.
The only packets which require acknowledgment are packets
containing status flags (SYN, RST, FIN, or SO) or data. A packet
which contains only an acknowledgment, i.e. , does
not require a response (it contains no status flags or data).
Both the AN and SN fields are a single bit wide. Since at most
one packet is in the process of being sent/acknowledged in a
particular direction at any one time a single bit is sufficient to
provide a method of duplicate packet detection and removal of a
packet from the retransmission queue. The arithmetic to advance
these numbers is modulo 2. Thus when a data packet has been
acknowledged the sender's next sequence number will be the current
one, plus one modulo 2:
The individual acknowledgment of each packet containing data can
mislead one into thinking that side A of a connection cannot send
data to side B until it receives a packet from B. That only then
can it acknowledge B's packet and place in the acknowledging
packet some data of its own. This is not the case.
As long as its last packet sent requiring a response has been
acknowledged each side of a connection is free to send a data
packet whenever it wishes. Naturally, if one side is sending a
data packet and it also must acknowledge receipt of a data packet
from the other side, it is most efficient to combine both
functions in a single packet. - Сергей Борщ (09.08.2004 13:26)
- Ответ: на P.S. Автор - Алексей. Я просто следуя его пожеланию положил на свой фтп.
- Сергей Борщ (09.08.2004 11:40, ссылка)
- Спасибо, только doc не мой, а Алексея Мусина - Сергей Борщ (09.08.2004 10:55)
- Замечательно, внесли ясность:-) Исправлю. - Леонид Иванович (09.08.2004 11:09)
- Вот ссылка на описание протокола cctalk, может, есть что-то полезное. - Леонид Иванович (09.08.2004 12:28, ссылка)
- Для ленивых (себя) добавил прямую ссылку в местный Links - General (09.08.2004 14:33, ссылка)
|
| OFF: Срочно подскажите пожалуйста программу умеющую усиливать низкие уровни речевого сигнала и не трогать верхние (типа АРУ) и плюсом шум давить - существуют такие? |
Make~Pic ответов: 3 |
id=13218 08.08.2004 18:41 |
- Вдогонку: Надо обработать wave файл! - Make~Pic (08.08.2004 18:43)
- CoolEdit, WaveLab, Sound Forge, Samplitude(наиболее предпочтителен) - тап (08.08.2004 19:44)
- А где эту подлеченную сэмплитуду взять? - Make~Pic (08.08.2004 19:57)
|
| Оболочка для программатора AVReal |
miek ответов: 1 |
id=13202 07.08.2004 16:47, ссылка |
Предлагаю всем желающим сабж. Поддерживает все функции AVReal.
www.miek.narod.ru/avrealshell.zip
- шо? опять? - µ (07.08.2004 20:31)
|
| Господа хорошие, подскажите, как проще приладить VGA дисплей к своему прибору. |
HoBo ответов: 76 |
id=13178 06.08.2004 18:04 |
От графики никаких чудес не нужно 640x480 с 16 цветами, никаких 3D. В идеале нужно бы готовый видеоконтроллер с низкоскоростной шиной. Но есть ли они в природе?
А так получаются разные варианты "прокладок" между прибором и дисплеем:
1) одноплатный компьютер (PC104 или какой-нибудь barebone)- дорого и плохо вяжется с батарейным питанием
2) VGA карточка + PCI контроллер - с ПЛИСками не дружу, готовых не нашел. ISA-шных карточек уже не найти.
3) Свой видеоконтроллер - опять же без ПЛИС не обойтись, контроллер не потянет.
В общем все получается криво. Чувствую, что есть более изящное решение. Буду благодарен за любую "наводку".
- epson делает контроллеры - которые имеют ramdac. - Max_QNX (06.08.2004 18:26)
- Но о-о-о-очень дорогой овёс. ;О) - =mse= (07.08.2004 11:23)
- Скока ? - Крок (08.08.2004 23:06)
- То-ли ЭФО, то-ли Точка Опоры в телесиське говорили что заказывали. Что-то около $60, норма упаковки большая и т.п. Короче, ФПГА рулит. - =mse= (09.08.2004 10:00)
- Не так уж и дорого - HoBo (09.08.2004 10:08, ссылка)
- Не знаю, но голимая SED1335 меньше чем за $14 не попадалась - =mse= (09.08.2004 10:34)
- подозреваю что по ссылке - она, родимая - =mse= (09.08.2004 10:50)
- Вроде то, что нужно - HoBo (09.08.2004 11:13, ссылка)
- А не, не та. Та была со встроенной паметей 2Мбит, кажись. А тут ещё EDO SDRAM надА. - =mse= (09.08.2004 11:50)
- где бы еще DataSheet надыбать? - bialix (09.08.2004 12:10)
- Ответ: - HoBo (09.08.2004 12:16, ссылка)
- о! спасибо! - bialix (09.08.2004 12:21)
- это в уях цена? - bialix (09.08.2004 12:05)
- а может лучше к телевизору? ;) - опа (06.08.2004 18:26, ссылка)
- Если особо графика не нужна сделай как в спектруме. - si (06.08.2004 20:42)
- В "Компонентах и технологиях" была статья про микросхемы контроллеров VGA, но сходу найти не могу :-( - Леонид Иванович (08.08.2004 20:21)
- По п.1. Может это подойдет (там и про потребление есть)? - Алексей Мусин (09.08.2004 10:05, ссылка)
- сделал похожую штуку, только для разрешения экрана 800*600. Может кто подскажет по принципам построения граф. ускорителей хочется в железо вынести аппаратную поддержку рисования графических примитивов. Как бы это поизящнее сделать? - bialix (09.08.2004 11:31)
- По идее там используются либо ЦПС (более гибкий вариант), либо цифровые автоматы на ПЛИС (более быстрый вариант) по крайней мере самые затратные алгоритмы (поддержку курсоров, отрисовку линий и дуг, заливку, вывод символов в графике) лучше реализовать на ПЛИС, тогда и в АРМЕ потребность бы отпала - подошел бы и более простой и дешевый МК - Al Volovich (10.08.2004 09:43)
- имхо, лучше реализовать прозрачный доступ к видеоозу МК и видеоконтроллера (двухпортовку, короче). А все алгоритмы отрисовки - мелочь собачья. - =mse= (10.08.2004 11:13)
- Про алгоритмы отрисовки несогласен. Мелочь - это когда индикатор ч/б 128х64. А вот если цветов >= 8 бит, разрешение больше 320х240, то скорость вывода и отрисовки становиться чувствительной. А уж если надо html бровзить в 1024х768х16 бит, то это вообще становится первоочередной задачей. - Al Volovich (10.08.2004 11:21)
- я повторюсь - у меня экран 800*600. Цветной. Отрисовать даже просто заливку цветом используя ресурсы МК - это уже довольно внушительная временная задача. Естественно - сделано все по уму - две страницы видеоОЗУ и прочая-прочая. Но! Все хорошие графические адаптеры (вот оказывается и Fujitsu делает специально для embedded приложений) - имеют графические ускорители. По минимуму эти ускорители должны хотя бы уметь копировать прямоугольные области. А отсюда уже и вывод текста шрифтом заданным в виде прямоугольника N*M пикселей - все уже решается гораздо проще.
2Al Volovich - а что такое ЦПС? Я сейчас делаю на ПЛИС на автоматах. Хочется и подешевле и попроще. - bialix (10.08.2004 11:40)
- Не, мужуки, я-ж не против, я-ж тока за... только вот соотношение бабки-смысл... Делать ускоритель на ФПГе - в $10-20 не попадёшь, однозначно. Зато попадёшь в ФПГу для простенького генератора синхр и мешанины видео. А сэкономленое бабло тратится на какой-нить дохлый 66-100 мипсовый АРМ(с ДМА), который зальёт, отрендерит, отрисует всё в самом лучшем виде. Особенно, если будет двухпортовка видеоозу с минимальным пенальти на доступ.
А рульные видеоконтроллеры для МК с акселераторами стоят даже не $30, и, думаю, даже не $40. Хотя... - =mse= (10.08.2004 11:59)
- ктц-мк продает видеоконтроллеры с ускорителями за 35 баксов. А почему собсно 20 баксов на ускоритель - это мало? тут конечна чего ускорять... Ну вот ACEX 1K в районе 20 баксов. Внутри много чего, даже ОЗУ вроде есть (если я не путаю грешное с праведным).
А вот скока будет стоит такой дохлый АРМ 66 мипсов (да хотя бы 40-50)? Плюс к нему надо ОЗУ и флеши хотя бы 512К-1М. Чисто для прикидки? - bialix (10.08.2004 12:07)
- Это к товарищу Енералу, он тут МСПшками и АРМами командует. Но, думаю с унутряной флэшей кил в 128 и больше, баксов 20-30 будет. Атмельи голые - от $10. И вообще, развелось их... К тому-же писать в VHDL, например, ускоритель, задача достаточно завихрастая, ИМХО. Лично я бы сперва на кошках... ;О) - =mse= (10.08.2004 12:15)
- Давайте сами -внизу страницы есть Online-поиск. Вот цены: к слову - все до $12 - General (10.08.2004 12:30, ссылка)
- А почему вы сразу не применили готовый графический контроллер? - Алексей Мусин (10.08.2004 12:23, ссылка)
- сразу я его не нашел. А теперь смотрю на них и вижу простенькие и дешевые мне бы не подошли, а более навороченные - уж больно дорогие.
Вобщем ситуация как обычно - чтобы понять, как что-то сделать, нужно сначала сделать хоть как-то, а потом будут видны все ошибки и промахи. - bialix (10.08.2004 12:26)
- ЦПС = DSP(eng). Задачи отрисовки прямых, кривых и уж тем более какой-нибудь градиентной заливки на них решать быстрее и дешевле, чем на каком нибудь АРМе Там ведь много вычислений, а тут dsp за $5 задвинет арм за $30. Хотя сам не пробовал, могу ошибаться... - Al Volovich (10.08.2004 12:34)
- в принципе да. Но кроме граф. операций больше ничего не возложишь. Т.е. отдельный проц - на графику ставить Можно, но не очень интересно, раз сам видеоконтроллер уже на ПЛИСине сделан. Но идея - сама по себе хороша. - bialix (10.08.2004 12:39)
- Это Вас кто-то жестоко ввел в заблуждение. - SM (10.08.2004 13:22)
- насчет "больше не возложишь". Значит Вы просто не знаете современные ЦСП. - SM (10.08.2004 13:23)
- возможно, не так хорошо, как Вы, но все же одно время я с ними работал и помню что некоторые вещи, которые легко и просто реализуются в МК, несколько напряжно реализуются в DSP. Просто потому, что у них предназначения разные. Так например в DSP редко ставят УАРТ. И возможности по пороизвольному дерганью ногами не так богаты, как у какого-нибудь пика. Конечно, это все можно сделать в итоге. Но нужно ли возлагать на ДСП контрллерные операции - вот в чем вопрос - bialix (10.08.2004 13:36)
- Это было РАНЬШЕ. Посмотрите сейчас например на дешовенькие TMS320VC5501/02/03/07/09 и вероятно удивитесь. - SM (10.08.2004 13:47)
- Ну не всё так весело К ним, дешёвеньким, как минимум, надо ещё снаружи памяти насуропить и загрузку обеспечить. Да и жрут они не по-детски, отсюда - питание недешёвое. Хотя тут АРМ тоже не подарок. - =mse= (11.08.2004 11:23)
- Ответ: память с программой - это серии EEPROM 24LCxxx или AT25xxx. 8 ног и копейки. Грузятся они сами, обеспечить надо только подвеску резисторами ног, определяющих режим загрузки. Более того, они умеют грузиться с USB или UART (у кого что есть). Ну а внешняя память - она дааалеко не всегда нужна. в большинстве проектов хватает унутренней. И жрут они пропорционально тактовой, а PLL конфигурируется на ходу. И очень развитая система IDLE с выборочным вырубанием периферии.
- SM (11.08.2004 12:03)
- Вот сейчас у меня на столе мини-системка TMS320VC5501 ($7.5 в москве), ПЗУ с программой и с настройками AT24C256 (на поверку и 128 хватило бы), аудио-кодек, ЖКИ и кнопки. Ну и LDO'шка с супервизорвизором 2 в одном. Больше НИЧЕГО нет. И работает :) - SM (11.08.2004 12:05)
- не вдаваясь в подробности, вопрос а как в них насчет i2c/spi интерфейса. А то ведь для gui еще нужно плотно работать с контроллером сенсорного экрана, который через spi.
А на этих самых 55х tms у нас другое подразделение делает проекты. Причем не хилые такие - распознавание образов и все такое. - bialix (11.08.2004 12:28)
- Ответ: i2c slave/master с поддержкой multimaster есть на борту у всех кроме 5510 (иначе как бы оно с 24LCxxx грузилось?). SPI это один из режимов работы MCBSP их от одного до трех от конкретного типа. Опять-же загрузка из AT25xxx - это по SPI.
Ну а проектик этот я привел в качестве минимальной конфигурации - то есть чего хватит для пуска. - SM (11.08.2004 12:34)
- Не, ну я смотрю - у них... 16К слов ОЗУ, а тут переспектива ГУИ крутить. Тока внешь ставить. Или я чё-то не то прочитал? - =mse= (11.08.2004 12:06)
- Ну да - берешь SDRAM если надо - и дешево и сердито и мегабайт много. Причем крутишь поблочно - один блок ДМА пересылает из внутренней в SDRAM, другой ДМА пересылает из SDRAM во внутреннюю, а проц обрабатывает блок унутре. Итого тормозов меньше всего, так как все это работает независимо друг от друга, и если блоки грамотно расположены внутре и не пересекаются в смысле параллельного доступа к ним, то проц получает возможность независимо от пересылок иметь 2 доступа за такт к каждому слову обрабатываемого блока.
потом 16 кслов это 5501, а есть и толще. - SM (11.08.2004 12:38)
- Каким местом он задвинет? ;О) Умножение с накоплением там нах не нужно... циркулярные буфера и bit-reversing addr gen, аналогично. Ну помножит он за такт. А вот битовые маски на память покласть да поставить, да на больше/меньше чего проверить, да по трём индексам дату потасовать... Короче, АРМа ДСПшку в видео порвёт как Тузик тряпку(на одной тактовой, ессно, а то и на двух). Вот такое моё ИМХО. - =mse= (10.08.2004 13:05)
- Может и так, конечно, но самый шустрый вариант - ПЛИС, тем более она уже стоит в контроллере Только придется поболе емкости взять, да попариться с автоматами - Al Volovich (10.08.2004 13:20)
- это да, само то - =mse= (10.08.2004 13:36)
- ну не знаю. Для меня проще наваять на ПЛИСе конечный автомат, чем тоже самое писать на асме МК. Так что насчет париться - не уверен :-) - bialix (10.08.2004 13:39)
- Неа, не порвет работа с битовыми масками, как и удобно приделанный мощный сдвигатель, а также многопортовая подлочная внутренняя память рвут АРМ почти на всех задачах. Докучи 2 АЛУ. Ну кроме тех задач, где очень много условных переходов, не переносимых в условное выполнение команд. А как понадобится что-нить покрутить... Как с матрицами с синусами-косинусами поперемножать... Так АРМ и вообще отвалится.
- SM (10.08.2004 13:21)
- Если про 3D говорить, то DSP вообще вне конкуренции - Al Volovich (10.08.2004 13:25)
- Чесно говоря, не помню, чтобы мне нужен был сдвигатель, а вот маски на память - очень ;О). 800х600 в цвете (8бит на цвет) это 1.5Мбайт на кадр, тоже не подарок(в качестве многопортовой памяти,ессно). В обчем, если больше 100мипс, то пох на чём делать. - =mse= (10.08.2004 13:35)
- Хм-м-м...я кажись понял чего мы тут воюем. ДСП, имеется в виду, пользование его теми самыми ДСПшными функциями, которые и являются половыми признаками ДСП: МАК, бит реверсинг, буфера, сдвигатель. если этим не пользоваться, то перед нами обычный МК. Вот. - =mse= (10.08.2004 13:42)
- Именно. И не совсем обычный, а выполняющий по 2..8 инструкций за такт. (55хх/6xxx) - SM (10.08.2004 13:45)
- А вот появится однажды МЕГА-АРМ с 10командами на такт, в исполнении Бориса нашего, Цере...тьфу, мля, Бабаяна, сразу побежите прощения просить, да поздно будет ;О) - =mse= (10.08.2004 14:03)
- Если он еще его раскрутит на 1 ггц на 90 нм.... Хотя буржуины проклятые уже на 60, а то и 45 переползут. - SM (10.08.2004 14:07)
- 800x600x256 это 467 килобайт - так иль нет? (10.08.2004 19:12)
- 469 - ;) (10.08.2004 19:16)
- Написал-же: "800х600 в цвете (8бит на цвет)". Цветов у нас 3 штуки: рэдовый, гриненький, и блуёвый. Вот на каждый по 469. - =mse= (11.08.2004 09:49)
- кстати о птичках (про сверхбыстрые АРМы) я запросил на Тритоне инфу вот по этим модулям (на которые дана ссылка) вывода на граф. ЖКИ.
Вот что они предлагают:
максимум разрешения 640*480
максимум - 8 цветов (т.е. 3 бита цветов на 1 пиксель)
стоит там ARM на 33(66)МГц (так в доке написано - я не знаю, что это реально означает)
Простая арихметика показывает, что на 1 экран необходимо прорисовать 640*480*3 = 921600 бит = 115200 байт. И что, ради этого обязательно нужно ставить ARM?
Самое интересное, что их система обеспечивает частоту прорисовки 8 кадров в секунду, т.е. 125 мс на один кадр.
Считаем 115200 байт /125 мс = 922 байта/мс - усредненная скорость прорисовки. Достаточно шустро - почти 1 байт за мкс. Но только для чего нужно иметь тактовую 33МГц?
Конечно, я не договариваю о том, что на плате у них воткнут еще CAN, 2 COM-порта. Но все равно я чего-то не понимаю. По сути ARM или другой 32-х битник нужен только для того, чтобы легче работать с адресной арифметикой, чтобы большие массивы данных гонять. Во всем остальном в такого класса системе требования к процу можно и понизить. И я по-прежнему думаю, что графический специализированный сопроцессор - это не самое худшее решение.
Поправьте меня, если я в чем то заблуждаюсь. - bialix (12.08.2004 18:25)
- гы! могу только предположить что там сидит :) это взят АРМ - к которому прилажен этот самый дисплей - а арм взят по такой простой причине - нет на свете контроллера - который оперировал бы с 3-х битным цветом - или 2 или 4. (ну это ж идиотом надо быть чтобы юзать нечётное число точек в байте! там автомат получается нифиговый - особенно при переводе строки, кадра...) да и работать неудобно с 3-х битными величинами. хоть бы тетрады... так они берут 4-х битные данные - и выбрасывают наружу по ПДП. а там стоит плисина - которая выбрасывает каждый 4-й бит. и впихивает это дело в матрицу. :). поскольку надо прорисовывать серьёзный экран как ни как 150 килобайт на картинку - ставят АРМ. потому что 8-и разрядные системы ограничены обычно 64 килобайта пространства. - Max_QNX (12.08.2004 18:50)
- вот и я про то - что 32х битная система нужна только для работы с большими массивами памяти А никак не для супер-скорости - bialix (12.08.2004 18:59)
- ИМХО, всё гораздо проще ;О) никакой плисины там не стоит, просто на каждый цвет тратится байт, вернее 3 бита из байта. Ну и х, что памяти нада многа, её меньше чем 16Мбит щас не быват. А АРМ потому, что, скорее всего, в ём на кристалле стоит контроллер ЖКИ. ;О) - =mse= (13.08.2004 09:53)
- вполне возможно - просто я реально встречал на просторах инета примерно такую систему как я описал ;-). - Max_QNX (13.08.2004 10:13)
- вынужден Вам категорично возразить - там как раз стоит ПЛИС. - bialix (13.08.2004 14:11)
- не, ну стоять-то - на здоровье главно - что делат.
Одно, если формирует сигнальчики для ЖКИ + подсос данных через ДМА. Это я понимаю и сам собираюсь делать.
Другое - если плюс к тому, коверкает вышеозвученным способом битики. Это совсем лишнее, имхо. Память нонче дешева, нех её так экономить. - =mse= (13.08.2004 14:22)
- IMHO есть тому несколько причин - во первых скорость. так 2 точки за транзакцию - а так одна. во вторых - вы предлагаете всё таки вдвое увеличить ОЗУ. втретьих - вероятнее всего в вашем ЖКИ - будет ситуация "зю" - на точку 3 бита - но вталкивать надо байтами - начиная с левого угла - в первом байте надо передать 2 точки + 2 бита от 3-й точки. автомат может вырасти нереально при операциях с байтами входящими. (по сравнению с вариантом тетрадным). хотя конечно вам решать как сооружать автомат :) + часто бывает необходимость поменять палитру - в новом купленом ЖКИ - биты не в том порядке - автомат ПЛИС может работать с палитрой используя тетраду как указатель на цвет который надо подставить - так получается универсальное решение. я за что купил за то и продал. :) - Max_QNX (13.08.2004 14:49)
- Не, не возражам... просто раз уж зашёл разговор про палитры, то там ваще смысла говорить о трёх битах на цвет - нет(насколько я понимаю), есть номера цветов, как-то расположенные по палитре. Типа 256 цветов ВГА. Там всё байтово-ориентировано, загрузил палитру и тасуй цвета. Не понравилось, перегрузил, перетасовал по другому. А рамдак уже херачит себе РГБ как записано. Но это уже мои домыслы/вымыслы из далёкого детства, когда компутеры были большие, а мониторы маленькие ;О) - =mse= (13.08.2004 15:21)
- 256 цветов - это SVGA, а простая VGA имела 16. - bialix (13.08.2004 15:23)
- не ;О) СВГА имела более крутое разрешение и/или кол-во цветов. А стандартный ИБМ8514 имел 256 цветов при 640х400(или 480, забыл) мы на первых ВГА демонстрашки с тётками смотрели. Казалось во круто - как фотка, 256 цветов!!! ;О) - =mse= (13.08.2004 15:29)
- хрен там был. вга это 320х200 и 256 цветов одновременно на экране. 64 градации на компоненту. а 640 на 480 лишь 16 цветов ... хм или 4 - тоже помню (13.08.2004 18:53)
- режими определялись наличием памяти. на вгашной карте было не больше 128килобайт ... вроде ;) - тоже помню (13.08.2004 18:55)
- Да, 128, то уже СВГА получается. От млин, а когда-то предел мечт был. - =mse= (14.08.2004 09:34)
- :)) вот смотрите - у одной ЖКИ красный старший бит - итого 100(двоичное) имеем красную точку. в другом ЖКИ - старший синий! 100 (двоичное -имеем синий) - картинка в инверсных цветах. чтобы не переписывать весь софт который в этих битах ковыряется - гораздо проще вместо кода 100 подставлять 001 железячно - вот и всё. :). - Max_QNX (13.08.2004 15:25)
- ну и я об том-же... программа знает, что коду 137 соответствует цвет с 33%R, 20%G, 47%B. И с ними работает. Но в контроллер пихается палитра, где этот номер перекорячивается под соотв уровни рамдака. И, соотв., можно перекорячить под любой отобраздец, хоть со старшей хоть с младшей Red. ;О). ПО, соотв., не меняется, просто по вкл. грузится соотв. палитра. - =mse= (13.08.2004 15:36)
- в порядке уточнения: что такое рамдак? - bialix (13.08.2004 15:45)
- ну та хрень, что делает аналоговые сигналы для ЦРТ мониторов там 3 цапа и сколько-то памяти. Раньше отдельной микросхемой стояла, щас всё унутре. В ЖКИ её нет(а может и есть - хз). - =mse= (13.08.2004 15:54)
- не. для TFT LCD цапу не надо. Там в цифре гонятся данные по LVDS - bialix (13.08.2004 15:58)
- для ЖКИ ramdac не нужен - там прямо так - цифирь и отображается. для обычных встраиваемых - там просто шина идёт. а для настольного варианта - удлиняют lvds. :) но в любом случае я понял о чём шла речь :). - Max_QNX (13.08.2004 17:00)
- Всем спасибо, вопрос снимается. Буду выбирать между Epson и Fujitsu. - HoBo (09.08.2004 10:14)
|
| оболочка для AVreAl32 |
miek ответов: 14 |
id=13174 06.08.2004 16:54 |
Предлагаю всем желающим свежий сабж.
Лежит на моем сайте:
www.miek.narod.ru/avrealshell.zip
Не забудьте скачать сам AVreal, конечно..
- м-да. вот только непонятно, зачем для генерации только bat-файла нужно наличие самого avreal той же папке? - bialix (06.08.2004 17:16)
- Да :-) Этого я не проверил :-) - ReAl (06.08.2004 19:57)
- В смысле генерацию бат-файлов без наличия avreal-а. Изначально генерации не было вообще. - ReAl (06.08.2004 19:59)
- Ответ: Вот видите, народ интересуется и пишет GUI-оболочки. Это не такая уж сложная работа, и если бы её сделали Вы, то несомненно приобрели бы дополнительную популярность. IMHO.
- Леонид Иванович (08.08.2004 20:24)
- Думаю, я уже достаточно хорошо объяснил свою точку зрения :-) Могу повторить/дополнить. "произошедшее" - это как раз хорошая иллюстрация к моим же словам -"если кому-то очень надо - пусть сделает и точно так же выложит в свободное пользование, как я выложил avreal".
Я сделал то, что нужно было мне и выложил это в свободное пользование. GUI к программатору мне лично не нужен. У нас на фирме также обходятся без него - и для зашивки AVR, и для зашивки Altera MAX7000S, MAX3000A "на конвейере" народ использует иконки с батниками (т.е. уже существующим альтеровским GUI программатора никто не пользуется, для человека на сборке/настройке это слишком сложно и "ошибкоопасно").
Я не могу себе позволить роскошь делать то, что мне лично не нужно абсолютно, даже если оно простое (исключая, естественно, "производственные" вещи). Я и так не каждый год в отпуске бываю... В этом году может выкрою недельку, глядишь, какая новая фича в avreal-е b появится :-).
А вот на советы что ещё добавить в avrealshell-- я время и силы нашёл. В результате появилась и генерация bat-файла, и подсос произвольного ini-файла через LPSTR lpCmdLine, и ещё кое-какие мелочи.
Кстати, сам avreal это тоже "не такая уж и сложная работа", иначе и острая собстванная необходиомость в такой программе могла бы не пересилить хроническую нехватку времени. Я только потому avreal в 98 году и сделал, что по прикидкам он должен был сэкономить мне больше времени, чем я затрачу на его написание :-) Вот такой я меркантильный :-)
Если бы тогда уже был dos или win32 софт типа uisp или avrdude - запросто могло бы оказаться, что avreal не появился бы. Единственный существовавший на тот момент fbprg меня абсолютно не устраивал.
- ReAl (09.08.2004 13:58)
- Ответ: Я же просто высказал свою точку зрения. Как мне кажется, у Вас была редкая возможность сделать что-то полезное людям, за что они Вас бы вспоминали добрым словом (как, впрочем, уже вспоминают за avreal). Если Вам это совершенно не нужно - что ж, Ваш выбор. А насчет Вашей занятости можно только посочувствовать. Что ж за зверь, этот Ваш работодатель, нельзя же так :-( В отпуск нужно ходить регулярно.
- Леонид Иванович (09.08.2004 23:52)
- А вот интересно задачку такую решить, коллективным разумом... Дано: количество свободного времени у меня ограничено.
avreal частично "и так делается" (т.е. за счёт "несвободного" времени), частично отъедает свободное время.
Вопрос: что лучше - рекомендовать народу avreal звать из уже существующих "оболочек" - IDE или "хороших редакторов" (я это делаю из MED) а время, необходиоме для написания оболочки к avreal - потратить на ответы, рекомендации, разбирательства в чужих проблемах (часто абсолютно не относящихся к avreal).
Или наоборот? Сказать человеку, приславшему кусок кода, "иди нафиг, я оболочку к avreal пишу"?
Ответ на вопрос каким образом "сделать что-то полезное людям" (а не "сделать или не сделать") я для себя решил первым образом. С моей точки зрения оболочка к avreal не нужна. А ответы на вопросы, консультации - нужны. По тому же avrealshell-у я человека проконсультировал. Не только по тому, что и как делать с самим avreal-ом, но и по тому, как улучшить shell, раз уж кто-то считает его нужным :-). Я считаю, что я могу больше "польезного людям" сделать отвечая на их вопросы. Практически каждый день у меня в личной почте письмо с вопросом. Иногда (как с до сих пор встречающимися вопросами по Торресовскому контроллеру компьютерного CD-привода на 90s8515) я отвечаю, что никогда сам ту штуку не делал и ответить по ней не могу (но даже этот ответ занимает время и я его делаю, а не игнорирую письмо).
Но чаще я даю роазвёрнутый ответ, иногда для этого мне надо скомпилировать кусок чужого кода, порыться по pdf-кам и т.п.
Это дело занимает у меня до часа в день, в среднем часа два-три в неделю. Т.е. написать shell было бы дешевле по времени :-), но я ответы на вопросы считаю более полезными... Правда, за эти ответы я (и то не всегда) получаю "спасибо" в личной почте, а за оболочку имел бы "publicity" :-)
Кстати, когда совсем тяжело, я вопрошаю "а почему бы не задать этот вопрос на телесистемах или в RU.EMBEDDED? Там и найдётся люди, которые лучше меня это знают, и ответят в тот же день, а не через день-два, как я". Часто встречающийся ответ "да я стесняюсь, там могут ответить, а могут только обругать".
Так что у каждого свой способ делать полезное людям.
Вы сделали отличную подборку проектов и хорошо их описали. Я отвечаю на вопросы. Времени это занимает может сравнимо, может нет, но имеющееся у меня время я трачу так, как считаю более эффективным "в целом"
А что касается зверей... Да их оставишь без присмотра - или нахомутают чего, или радостно будут сидеть без дела "а вот тут вопрос возник, не знаем, как поступить" :-) - ReAl (10.08.2004 18:12)
- Кстати полностью поддерживаю Вашу точку зрения я считаю все эти shell'ы "красотульками, отнимающими время". Один раз написанная командная строка, и подключенная к оболочке на "hot-key" гораздо эффективнее по затрате времени и теложвижений, чем тыкание в кнопки с переключением окон. А вот генерация bat-файла это очень полезный предмет.
P.S. Кстати аврил что-то под линуксом (нативная линуховая версия) пока не арбайтен. Но не вдавался в подробности пока - некогда. Есть у кого положительный опыт юзанья этого комплекта?
- SM (10.08.2004 23:30)
- Именно это (хоткей в любимом редакторе) я всем и рекомендую постоянно. Не верят. А по линуксу - то, что сейчас есть - работает с портами напрямую. Т.е. надо или под рутом запускать (моветон, но большинство пользователей на W2K постоянно под администратором силит :-).
Или под рутом s-бит взвести, потом оно работает под любым юзером.
Я практически каждую версию не просто перекомпилирую, но и проверяю работу под линуксом.
- ReAl (11.08.2004 19:50)
- Аааа... Дык я-то не под рутом. И не пробовал (ну я и тормоз). Ща заSUну его куда следует :) - SM (12.08.2004 08:47)
- заSUнулся и работает :))) Спасибо!!!!!!!!!! - SM (12.08.2004 14:36)
- Больной вопрос задеваете :-) У меня та же ситуация, каждый день несколько писем в почте с вопросами. В день на почту уходит час. Причем очень большая часть вопросов задаётся исключительно от лени, не хотят воспользоваться Гуглом или зайтина конференцию. Но всё равно стараюсь отвечать, за всё время не ответил (или ответил грубо) всего на несколько особо наглых писем.
- Леонид Иванович (12.08.2004 01:00)
- Извините, что встреваю, а что- содержимое странички поддержки прописано недостаточно подробно? - General (12.08.2004 09:07)
- А всегда найдутся такие, для которых недостаточно :-) Странички-то пишутся -- как в школе преподаётся -- на средний уровень. Кому-то кажется, что слишком разжевали, "лучше бы про что другое ещё сказали", другом и того мало.
В почте -- иногда сразу чувствуется, что человек просто патологически ленив, такому ответ звучит в духе http://foo#moo.
А иногда это вылазит только на третьем письме :-(
А иногда чувствуется, что человек старается, просто "перезамахнулся". Тогда и разжевать не жалко.
- ReAl (12.08.2004 16:37)
|
| Тест |
ek74 ответов: 1 |
id=13166 06.08.2004 15:05 |
- Жэка, это ты? - IgorKossak (09.08.2004 11:55)
|
| TMS470R1x(ARM7) и флэш память (записал 1 на 0, теперь стираться и записываться не хочет) |
Donz ответов: 1 |
id=13165 06.08.2004 15:03 |
Случайно записал данные на место нулей, что во флэшке Fujitsu MBM29LV800BA делать нельзя. В даташите написано, что микросхема должна зависнуть, но после ресет должно быть нормально. А сейчас даже после выключения и включения питания я не могу с флэшкой вообще ничего делать, кроме чтения. В чём может быть загвоздка?
- А где контроллеры брали? - sasha_il (09.08.2004 16:04)
|
| Test, sorry |
PS |
id=13160 06.08.2004 14:39 |
| Ответ: |
_PAL_ ответов: 2 |
id=13148 06.08.2004 13:16 |
- Ну всмысле тест.... - _PAL_ (06.08.2004 13:18)
- Отдыхаем :) - General (06.08.2004 13:27)
|
| Какое радио слушаете? Вообще, слушаете радио на работе? Вот я без него просто не могу. |
soundmaster ответов: 4 |
id=13145 06.08.2004 11:55 |
- Не могу работать при наличии всяких звуков. Прдпочитаю быть один в комнате - POV (06.08.2004 12:40)
- Я MP3 слушаю с компа. Ну там supermax, фрэнки едет у голивуд всякие :)))) - ummagumma (06.08.2004 12:57)
- qnx не опознаёт звуковуху :( мр3 соответственно отпадает. хотя коллекция треков гиг 10 на винте только - не считая дисковых вещей которые я на винт не сбрасывал.
а вечерами - Music radio. которое рекомендовано для прослушивания на работе ;-). - Max_QNX (06.08.2004 13:36)
- Если работа серьезная - то требуется тишина. А если так себе, то слушаю CD и MP3. - Леонид Иванович (08.08.2004 20:32)
|
| Просьба к Минчанам и не только. |
Sof ответов: 1 |
id=13136 06.08.2004 09:24 |
Ребята, не работал ли кто с фирмой premier-electriс в Минске.
Хочу услышать мнения о ее надежности.
- Работаем. Раньше эта фирма была вполне нормальной, сейчас - зависит от позиции. Как и любой фирме в развитии им стало не интересно работать с малыми заказами. К тому же, насколько я знаю, с STM у них уже связи не те, по крайней мере, Viper100 по 2.5$ уже нет. Но некоторые вещи дешевле, чем у других поставщиков, поэтому берем у них. - Леонид Иванович (08.08.2004 20:30)
|
| Опять вопрос по DC/DC: есть преобразователь с никелированным медным корпусом. С выводами DC/DC он никак не соединен |
Al Volovich ответов: 1 |
id=13075 05.08.2004 12:19 |
Вроде по теории если его ни с чем не соединять, то какой от него толк? Вот и вопрос: к чему его лучше присоединить, и как это сделать - напямую, через кондер или еще есть какие хитрости?
- В смысле корпус с выводами не соединен - Al Volovich (05.08.2004 12:21)
|
| Прошу потестировать. Видно только зарегистированным юзерам. Берет пароль из кукей, поэтому он должен там находиться. |
General ответов: 12 |
id=13072 05.08.2004 12:00, ссылка |
- и как бы пустая страница. а что должно там быть? - Mahagam (05.08.2004 13:35)
- В IE работает, в опере - нет (подкручивать чего-то там лень) - Алексей Мусин (05.08.2004 15:14)
- отлично работает в Опере. И подкручивать не надо. - =mse= (05.08.2004 15:20)
- Т.е. вы хотите сказать, что у меня все работает? :) - Алексей Мусин (05.08.2004 15:36)
- не ;О) - у меня - =mse= (05.08.2004 16:28)
- Мне ндравится ! Правда место маловато :) да и файлы короткие оставлять надо :)) - miv (05.08.2004 16:51)
- Цифры перебить- дело нехитрое. Посмотрим, как пойдут дела. - General (05.08.2004 19:37)
- Здорово придумано! :) - Antimouse (05.08.2004 21:20)
- Ответ: Сейчас протестим! - IgorKossak (06.08.2004 13:48)
- Ответ: Работает!!! - IgorKossak (06.08.2004 14:14)
- Ответ: Что-то тоже ничего не видно по ссылке IE5, куки открыты вижу и имя и пароль?+ Правда я через корпоративный прокси подключаюсь.
Может та что-то.
Хотя я сейчас протестировался в конфе, все ок, регистрация не потребовалась. - PS (06.08.2004 14:58)
- У меня тоже прокси, тоже 5-ый. Всё нормально, даже забросил туда для тесту какой-то скрипт. - ReAl (06.08.2004 15:52)
|
| Это опять я, с предложением разовой работы для Москвоских softmaker-ов! |
FAT ответов: 4 |
id=13062 05.08.2004 10:44 |
Нужно срочно настучать программку для счетчика посетителей.
Процессор: ATMEGA162
Память:AT24C1024
Часы: DS1302
RS-232 & RS-485
4-знаковый 7-сегментный динамический дисплей.
4 конпки.
Обмен с РС произвольный по RS-232.
Счетчики включаются в сетку через RS-485.
О сроках и money договоримся.
Мой адрес: n7777777@mail.ru
P.S. Было три претендента, двое отплали, третий предложил заключить
договор с их организацией, чтобы всем хватило: и начальнику и уборщице.
Поэтому сразу скажу: таких вариантов не предлагать. Эта работа
для одного человека, лежишь себе вечером на диванчике с ноутбуком,
кофе попиваешь и по клавишам стучишь в удовольствие.
А если, кто клюнет, то ради Бога, будте умнее - пишите так,
чтобы Ваш начальник не мог прочитать Ваши письма.
- прогу на ПИКе возьмешь? - =L.A.= (05.08.2004 13:41)
- Очень хорошо! Даже проще. Но хотелось бы знать подробности: что она умеет с какими датчиками работает, то есть внешнее описание. Если подойдет, то купим. Но кроме бинара нужен и текст для нашего дальнейшего развития. - FAT (05.08.2004 15:49)
- Исходник тута (ссылка ) Это фриварная программа Hi-Tech (цифровой вольтметр по-моему) . Функции: опрос АЦП, вывод на индикатор, опрос кнопок и даже цифровой фильтр.
Если нужно доработать под твою задачу (счетчик посетителей), то понадобится следующее:
1) Техническое Задание ( настоящее, а не то что ты там понаписал )
2) Собранный работающий макет девайса ( или ты тумаешь, он сам изготовится? )
3) Прога для компутера,которая занимается обменом по RS232.
мыло: andro()krukovo*ru
- =L.A.= (05.08.2004 20:09, ссылка)
- Thanks - FAT (06.08.2004 10:03)
|
| Контроллеры Ethernet на параллельную шину дешевле $2 |
ummagumma ответов: 5 |
id=12997 04.08.2004 15:32 |
- по моему - фантастика. самый дешёвый - это было 5-6 и то партиями вагонными. единственное что - если PCI вы посчитаете параллельной шиной. но PCI к контроллеру не подтыкнёшь так просто. а с PCI мастером на плисе - те же деньги будут. - Max_QNX (04.08.2004 18:40)
- Два бакса только коннектор с трасформатором стоит! - PicoDev (05.08.2004 03:38)
- Контроллеры Ethernet на параллельную шину по $1.84 - ummagumma (05.08.2004 19:25)
- Где, где?? Дай, я хочу! - ASDFS (05.08.2004 20:15)
- Вот и я говорю- где же вы? - ummagumma (05.08.2004 20:17)
|
| MathWorks: automatic code generation tool for TI C2000 DSPs |
NewsWire ответов: 1 |
id=12989 04.08.2004 15:10, ссылка |
- Ответ: А как бы это да без регистрации получить... а то not in student version... - Rvs (16.08.2004 11:59)
|
| Коллеги,что выбрать? |
sda ответов: 28 |
id=12974 04.08.2004 14:29 |
Есть задача соорудить полосовой фильтр с переключаемыми полосами 300,100,30,10,3кГц.Центральная частота ~6МГц.Порядок фильтра - не ниже восьмого.Разрядность данных 12 разрядов.Работать нужно в реальном времени.Вот и чешу репу - делать на ПЛИС или ДСП?Что будет дешевле?Что займет меньше времени на разработку?
- зацени типа ТМС320Ф2810 или 2812. Который 150МГц - =mse= (04.08.2004 14:34)
- Ответ: При Fsig=6МГц Fтакт ~20МГц.Это 7 тактов процессора на один отсчёт,потянет ли в реал-тайме? - sda (04.08.2004 14:44)
- Фтакт=150МГц, если имеешь в виду конвейер - дык, не ветвись - разверни цикл. Он не большой, да и флэши там навалом - =mse= (04.08.2004 14:56)
- Под Фтакт я имел ввиду тактовую АЦП.Получается на один такт АЦП ~7 тактов процессора. Порядок-то восьмой,одним-двумя умножениями не обойдёшься... - sda (04.08.2004 15:07)
- ну пока АЦП ацпует, ТМС тмссствует. Хотя - да, ~12тактов мававато будет. сигнал-то больше 6Мгц, да и выборки надо делать не в 2 раза больше, а больше ;О). Забудь. ;О) Был пьян, вспылил. - =mse= (04.08.2004 15:14)
- Бывает...Так что же выбрать? - sda (04.08.2004 15:19)
- ;О) Шутка - =mse= (04.08.2004 15:28, ссылка)
- Нет,спасибо:-))Видимо всё ж ПЛИС здесь вне конкуренции. Если бы ещё кто сказал в какой минимальный кристалл от Альтеры можно это всё засунуть... - sda (04.08.2004 15:39)
- Это SM-а пытать надо ;О) - =mse= (04.08.2004 15:43)
- Хорошо,подожду.И немного дополню исходные. После фильтрации сигнал нужно выпрямить,в полученной постоянке отфильтровать составляющие выше 1 кГц.Потом прологарифмировать ,отнормировать и по интерфейсу скинуть в хост. - sda (04.08.2004 15:57)
- Дык, млин... Берёшь и делаешь хороший генератор на 7Мгц. Сносишь свои 6 в 1, там смело фильтруешь 6, 7. Фильтр простой, смеситель тоже. А эти 1 имей как хочешь. Правда спектр инверснётся, ну и х с ним - =mse= (04.08.2004 16:15)
- какой там 1МГц - у тя полоса детская совсем, делай килогерц 100 и лепи на чём угодно - =mse= (04.08.2004 16:17)
- И какую добротность я получу? Добротность = Фцентр./полосу.
Если Фцентр.=100кгц,полоса 300 то вообще хе*ня получается!! - sda (04.08.2004 16:25)
- Ты кислое с холодным не путай А то собрался 300Гц фильтровать на 6МГц ;О), шутник(только дошло, блин).
Какая тебе нужна "добротность"? У фильтра тебя должно интересовать: а)потери в полосе пропускания(пп)(гы-гы-гы); б)подавление в полосе задержания; с)неравномерность ПП; д)коэфф. прямоугольности. ВСЁ.
Получишь свой сигнал, только не на 12-20Мсэмплов, а раз в сто меньше, а то и больше. ;О) - =mse= (04.08.2004 16:42)
- О каких 300Гц Вы говорите?У меня полосы от 3кГц до 300кГц. - sda (04.08.2004 16:52)
- кгц,так кгц, смотри сюда переносим твой сигнал 6+-0,15 в 0,5+-0,15. Фильтр с частотой среза 1-2Мгц(аналоговый, для нас ещё и антиалиасный, хня, одним словом) это хозяйство выделяет апосля смесителя. Берём Фсэмпл=2Мгц. Тоды фильтер (КИХ) с полосой 500Кг+-150Кг по уровню -2,6дБ займёт 50 тапов(50МАС). А дальше прями, фильтруй, чё хошь делай. - =mse= (04.08.2004 17:00)
- Да, это КИХ, БИХ будет ещё быстрее - =mse= (04.08.2004 17:03)
- 2812 etc хорошо на это ляжет(возможно) тут проблема будет когда полоса сузится. Длина фильтра на порядок вырастет. Кстати, не сказал какой у тя спектр, что фильтровать надо. А то небось под 1-2МГц. ;О) - =mse= (04.08.2004 17:14)
- При отстройке от центральной частоты на частоту (полоса/2) должно быть затухание не хуже -60дБ. - sda (04.08.2004 17:20)
- т.е. полоса 300кгц по уровню -60дб? соотв. 3кГц при -60? вообще-то делать фильтр на 3КГц при центральной 500кГц - говняное занятие. А уж на 6МГц - вовсе нереальное. Это не влезет НИ В КАКУЮ ПЛИС ;О). Без внешней аналоговой обвязки не выйдет ничего. - =mse= (04.08.2004 17:32)
- Пардон,конечно при отстройке на полосу:-)) При отстройке на половину полосы будет -3дБ.
==Это не влезет НИ В КАКУЮ ПЛИС ==
Вообще-то странно,я уже черновой вариант просчитал для 6МГц,24 разряда(внутри фильтра) вроде хватает.Из за округления коэффициентов АЧХ при такой ширине шины изменяется на допустимую величину. - sda (04.08.2004 17:53)
- как это как это? Для 300кГц: 150кГц по-3дБ, 300кГц по-60? Считать, как минимум, надо на 12.5, а по хорошему - 18МГц. Это ещё не известно(мне) какая полоса нефильтрованого сигнала. Ну и 8-каскадный БИХ с 24р коэффициентами сформирует ли 3КГц полосу на 6М...? ХЗ ХЗ, ему бы 3кГц на 500кГц сделать.
ИМХО, ;О) АМ приёмник на пару порядков будет дешевле, на столько-же меньше съест, и места займёт. - =mse= (05.08.2004 09:57)
- А чего гадать,если есть соответствующий софт для моделирования? А вообще то вопрос видимо снимается.Проблема была в подборе нужного ассортимента фильтров на ПАВ,сегодня радисты сказали что нашли где их купить.Конечно,аналоговый способ намного дешевле. - sda (05.08.2004 10:36)
- Отмоделировать-то много чего можно ;О) а вот запхать модель в ФПГА - хз (именно это вызывало у меня сомненья). - =mse= (05.08.2004 11:23)
- Так я и больше запихивал:-))Похоже кроме нас никто такими вещами не занимается(в дискуссии только мы):-(( Лет 15 назад делал цифровой даун конвертер с множеством наворотов(анализ спектра,принятие решения и т.д).Вот это действительно был монстр... - sda (05.08.2004 11:43)
- Да? Вот оно как. Я думал что широкий быстрый МАК это много и медленно. Учту. Кстати, для Ваших прибамбасов могли бы полифазные фильтры подойти. Но они эффективны как замена КИХ. А вот SM чё-то вашу тему проигнорировал. А то бы насоветовал чего. - =mse= (05.08.2004 11:53)
- Чего-то я не пойму. Вы про что толкуете? Про выбор ПЛИС/DSP или выбор АЦП? Если выбираете ПЛИС либо DSP, так под такую задачу ложится TMS320F28xx. Если выбираете АЦП (которого, полагаю, нет в ПЛИС), то возмите THS1215 или THS1230 от Texas Instruments + сигнальник (для дешевизны можно взять TMS320VC5402 + FLASH).
- sasha_il (04.08.2004 16:11)
- Ещё лучше...Со ста мипсами под такую задачу лечь... - sda (04.08.2004 16:30)
|
| Исключительно важная тема. Срок службы 20 лет- это навсегда? |
General ответов: 55 |
id=12953 04.08.2004 13:12 |
1. связка MSP430+ Li батарейки 3.6v позволяют создавать приборы с ресурсом ~20 лет. Если принять решение, что это навсегда- батареи впаиваются, приборы замуровываются в стены контролируемого здания и много еще чего.
2. в приборах с питанием от сети 220 есть родовые проблемы, связанные с ее исчезновением: сбои архивирующих флэшей, алгоритмы восстановления архива. А ведь можно использовать внутри прибора архиватор на MSP430+NAND Flash(хоть гиг!) +своя батарейка. Но!
только если 20 лет- это НАВСЕГДА!
3. В конце концов, в вашем писюке есть часы DSxxx со встроенной батарейкой, когда она сядет, писюку хана. Кто-то уже принял это решение насчет вашего компьютера, как вам кажется?
Так как, 20 лет- это навсегда?
- Ну если в стену, тоды вопрос надо ставить так: "Срок службы здания 20 лет - это навсегда?" ;О) - =mse= (04.08.2004 13:24)
- Ну и с прибором так-же. Если прибор стоит $1e5, стоит ли ограничивать срок его службы 20 годами? Вернее согласится ли пользователь с такой постановкой вопроса? ;О) - =mse= (04.08.2004 13:27)
- А ну-ка с ходу найди вокруг себя электронный прибор 20-летней давности? - General (04.08.2004 13:52)
- Легко. Б5-7 1979 г, а амперметр тут валяется вообще 1957 г. :) - Al Volovich (04.08.2004 14:02)
- Ха-ха-ха ;О). Оглянусь кругом - аж в глазах рябит. Скажем так: прецизионная измериловка(калибраторы, измерительные мосты и т.п.), раз, измериловка СВЧ, два, всяко-разные ЯМР анализаторы и т.п., три. Это что первое в голову попало. Навылет. Причём ситуация характерная не только для нищей России. Богатые америкосы тожа трудятся на аналогичном старье. Мабуть поэтому они и богатые. А один только наш(бывший) завод, в своё время, херачил техники, типа Роллс-Ройс ручной сборки, больше чем ВЕСЬ ОСТАЛЬНОЙ МИР ВМЕСТЕ ВЗЯТЫЙ! Причём на тот момент техника была вполне на уровне. Вот и пришёл к социализьму 3.14здэцл. А не выёживайся. ;О) - =mse= (04.08.2004 14:04)
- Цена (разных устройств) в диапазоне $12-$200 - General (04.08.2004 13:53)
- не, ну это же не стена и не здание. А, впрочем, как сказать. раз в 20 лет поменять в здании электропроводку - задача не для слабонервных. Хотя провод и стоит 5р/м. - =mse= (04.08.2004 14:08)
- Короче, твой ответ -нет, 20 лет -это не срок. Я понял. - General (04.08.2004 14:10)
- Хотя в быту это совершенно не так. Срок службы бытовых приборов всегда меньше. 20 лет - это поколение. - General (04.08.2004 14:12)
- Так на них так и пишут. Вон на холодильниках современных - 6 лет Если Вы и в доке на устройство свое напишите 20 лет - то пожалуйста, купил - значит согласен выкинуть его через 20 лет. НАВСЕГДА - это другое дело. - Al Volovich (04.08.2004 14:18)
- Я хочу предложить потребителю гарантированный срок эксплуатации - 20лет, поверки не требует. Такое бы предложение к моему автомобилю :(( - General (04.08.2004 14:41)
- Наверное сформулировать мона "срок жизни", "срок эксплуатации". И на максимум я бы не закладывался. Типа жаркое лето - батарея утекает, или наоборот, зима, батарея подсела - напругу не держит. Лет 10 можно бы. - =mse= (04.08.2004 15:04)
- Жилье -температура довольно стабильна, кроме того запас и так заложен. - General (04.08.2004 15:22)
- предлагайте что угодно, "за 20 лет сдохнет или ишак, или падишах, или я" - любитель telesysa (04.08.2004 17:43)
- Отчего-же.Типа телевизора, видика... бытовуха, короче, с малым сроком жизни. Но если интегрируется в капитальные вещи, то нет. Однозначно. Хотя с измериловкой может прокатить. Особенно с требующей регулярной поверки/калибровки, просто написать в ТУ "после N лет работы сменить батарею так-то и так-то". - =mse= (04.08.2004 14:24)
- Ага, согласен. Золотые слова "если интегрируется в капитальные вещи" Хотя с другой стороны, а через 20 лет про него кто-нибудь вспомнит?? Ну сдох и ладно, им уже 10 лет никто не пользуется. Я в своем девайсе на время отвел памяти, чтоб от 01.01.04 и на ~21 год. И никакого анализа. Его уже и через 15 лет выкинут. Правда мое устройство интегрируется в автомобиль. - Сергей Борщ (04.08.2004 15:04)
- Ладно хоть кардиостимуляторами не занимаетесь :))) - Al Volovich (04.08.2004 18:15)
- Я так думаю, что в pacemaking свои требования - Алексей Мусин (05.08.2004 09:03)
- Да За 20 лет любой пп прибор имеет полное право сдохнуть. Поскольку диффузия, "начатая" в процессе пр-ва пп прибора, не останавливается и при комнатной температуре ;-)
Чем мельче транзисторы - тем быстрее диффузия их "разъест". Опять же, это от температуры зависит по экспоненте, так что в жарких странах или под капотом все происходит быстрее. Закон Аррениуса, блин. - =AK= (04.08.2004 13:52)
- Это означает, что писать срок работы 20 лет - значит обманывать потребителя - Al Volovich (04.08.2004 14:00)
- ?????? - thnx (04.08.2004 14:08)
- Да ну, уважаемый. Диффузия. Чего-то Вы большого мнения о диффузии ;О). Уж сказали бы электромиграция. Диффузия в полупроводниках при Т<400ºC будет длиться сотнями/тыщщами лет на микроны. А вот электромиграция - да. Но тоже не факт. - =mse= (04.08.2004 14:17)
- Ну, может быть... Х.З. какие там параметры у этой диффузии... Там же надо чиста-канкретна в формулу коэффициенты подставлять, а я это никогда не пробовал. Может, и правда зря волну нагнал ;-) - =AK= (04.08.2004 15:07)
- При 1000-1200 в течение N часов на десятки мкм в кремнии. - =mse= (04.08.2004 15:18)
- Тем более, что диффузия вредна для изоляции p-n переходом, а нынче в микросхемах применяют изоляцию транзисторов поликремнием или SiO2 или какие другие извраты. - =L.A.= (04.08.2004 17:55)
- Тем не менее SOI(КНС по нашему) на современных нормах удел достаточно продвинутых дядек. Не всякий Интель на это способен ;О) - =mse= (05.08.2004 11:57)
- Понятно , что не всякий Ангстрем, а только некоторые Интели. -:) - =L.A.= (05.08.2004 13:21)
- Ну Ангстремовский КНС это не есть современные нормы(имею в виду хотя бы 0.5-0.35мкм) - =mse= (05.08.2004 13:27)
- Да и как диффузия может вредить переходу? - =mse= (05.08.2004 11:59)
- Ну так он, переход изза диффузии перемещается+размывается граница ( что ухудшает его свойства ). Но это всё технология 30-ти летней давности, сейчас , думаю, даже на Ангстреме что то более новое. - =L.A.= (05.08.2004 13:52)
- Да нет, ничего там не ухудшается при располании... тем более что в техпроцессе суммарное пребывание в печи учитывается. Разговор о том что температуры до 400-600 градусов на диффузионные профили ПП не влияют(за время жизни, отличное от возраста Вселенной ;О) - =mse= (05.08.2004 14:10)
- Голому переходу (т.е. диоду) - почти никак, но... Но планарному транзистору очень даже может. Расползется эмиттер - и вообще базы не останется, схлопнется нах. И в полевиках канал расползется нах. - =AK= (05.08.2004 15:48)
- хе-хе-хе ;О) Эмиттерная диффузия - самая последняя, самая контролируемая. И у полевиков контактные(стоково-истоковые) области тоже последние. Кстати, там... идёт только ионная имплантация и дальше только отжиг. А при Тотжига диффузия будет тыщщу лет идти пока дойдёт. ;О) - =mse= (05.08.2004 16:22)
- "Предупреждать надо!" (с) Цитата из фильма "Обыкновенное чудо". Кто помнит классику... ;-) - =AK= (06.08.2004 14:53)
- Замуровывать в стену таки не стоит :) А то процесс починки или замены через 20 лет будет стоить дороже самого устройства. А проблемы со сбоем питания от 220 В решаются добавлением резервного питания - с той же батарейкой, если она не испортиться за >20 лет, или с ионистором. Правда не видел ни одной батарейки, которая проработала хотя бы 20 лет - Al Volovich (04.08.2004 13:58)
- У вас в квартире есть замурованные коробки электропроводки. Допустим, через двадцать лет к вам придут, в коридоре вскроют такую (порвут обои и собьют побелку) и целиком заменят радиоканал с батарейкой на новый -он под пломбой на крышке. Замуровать -не значит в фундамент. А батареек таких -море. - General (04.08.2004 14:07)
- Ответ: У меня в устройствах DS12887 со встроенной батарейкой отработали уже 9 лет. Пока успешно :-)
- Леонид Иванович (05.08.2004 00:50)
- Я все же замечу, что РС сохранит работоспособность и без батарейки. - ASDFS (04.08.2004 14:52)
- Непонятно только зачем обязательно замуровывать? - =L.A.= (04.08.2004 17:58)
- Должно быть недоступно. Но без проводов. - General (05.08.2004 09:07)
- Эта ваша "недоступность" до первого евроремонта или перепланировки. Или просверлят или просто выломают и выкинут нах. - =L.A.= (05.08.2004 09:11)
- Вот конкретно у вас какой проект дома? Я имею в виду серию и год -типа "137 серия 90-тые годы" - General (05.08.2004 12:25)
- Где я живу , в смысле? Не знаю, но не старый ( 15 лет всего ) . Но, тем не менее, евроремонтами уже за..бали дальше некуда. - =L.A.= (05.08.2004 13:19)
- Если дом в Москве после 85 года - значит, в капитальных стенах есть направленные тэги. Наверное, уже не работают - раньше не было таких источников, как сейчас. - General (05.08.2004 13:34)
- А по русски? - ASDFS (05.08.2004 14:32)
- А какой у тебя допуск? - General (09.08.2004 15:44)
- Эмир - Шалинского джамаата (09.08.2004 17:30)
- Если - навсегда, то ставь антенку + детектор + ионистор и подпитывай свой девайс от радиосигналов чем дальше, тем больше будет мобильных, блютучей и прочей мобильной радионечести, + батарейка, разумеется. - =AlexD= (05.08.2004 08:11)
- Кстати, а чем снимается инфа с приборов, замурованных в стену. - =AlexD= (09.08.2004 15:37)
- ??? (забыл :-) ) - =AlexD= (09.08.2004 15:37)
- Это приборы с радиоканалом (жучки 8)))))) - General (09.08.2004 15:41)
- Тем более :-) - =AlexD= (10.08.2004 08:33)
- Тогда не понял. Радиоприемником, есессно. - General (10.08.2004 10:02)
- А входная инфа в них поступает? Связь одно, или двухсторонняя? Если двух - то может попытаться подпитывать их энергией волны? Типа понадобился - раскочегарил направленным излючением, и юзай... (идея на уровне бреда) - =AlexD= (10.08.2004 10:41)
- Чего же бреда? Уже хз сколько лет работает в кол-вах сотен миллионов штук. - =mse= (10.08.2004 11:09)
|
| Помогите плз. Эмулятор PICE-MC ногами не шевелит |
CeDeX |
id=12949 04.08.2004 11:51 |
Работаю с эмулятором PICE-MC, ПОД-771, микроконтроллер PIC16C771.
Пытаюсь дрыгать ножкой (пробовал и RA0, RA1, RA2, RA3, RB3).
Возникла проблема: на экране все работает, ножка в Watches дрыгается, сам эмулятор лампочки зажигает как положено (RUN, PWR, RST). Однако на плате ножка не шевелится, на ней стоит постоянный уровень.
Листинг программы:
CODE
org 0
goto Start
org 4
goto Start
org 10h
Start:
BCF STATUS, 5 ; Select Bank 0
CLRF PORTA ; Initialize PORTA by
; clearing output
; data latches
BSF STATUS, 5 ; Select Bank 1
MOVLW 0FEh ; Value used to
; initialize data
; direction
MOVWF TRISA ; Set RA<0> as output
MOVLW 00 ; Set RA<7:0> as digital I/O
MOVWF ANSEL
BCF STATUS, 5 ; Return to Bank 0
Loop:
bsf PORTA, 0
nop
nop
bcf PORTA, 0
GOTO loop
END
|
| Форца, Сахара :) |
Алексей Мусин ответов: 1 |
id=12926 04.08.2004 07:07, ссылка |
- Довели. Уволился. - опа (04.08.2004 08:58)
|
| Кто-нибудь заказывал компоненты в mouser.com? Можете рассказать как это делается? |
SergeyL |
id=12891 03.08.2004 15:20 |
| В очередной раз помыкавшись с построением пи-фильтра для получения аналогового питания от ИИП, решил рассмотреть теорию... |
Al Volovich ответов: 19 |
id=12871 03.08.2004 13:10 |
И вот что нашел в книге от AD Mixed design, глава 10:
1. Правильная компоновка и заземление (использование
заземляющей поверхности) обязательно
2. Конденсаторы с низкими ESR/ESL дают лучший результат
3. Параллельно включенные конденсаторы имеют меньшие
значения ESR/ESL и бóльшую емкость
4. Для подавления пульсаций очень эффективны внешние LC
фильтры
5. Для снижения пульсаций и лучшей стабилизации эффективен
линейный стабилизатор
6. Полностью аналитический подход к расчету затруднен, для
получения лучших результатов требуется создание макетов
7. Однажды спроектированное – навсегда, не заменяйте
составляющие компоненты без предварительной проверки их
работы в макете
8. На выводах питания ИС все равно необходимо использовать
высокочастотную развязку
Пункты 6 и 7 вернули меня к мысли, что здесь все равно ничего не посчитать, и надо брать набор L и С разных типов и пытаться их скомбинировать оптимальным способом.
Вот она, ограниченность научного познания :)
- Ну прально. А то привыкли, панима-а-аш, жопка к жопке стыковать. ;О) А это наука, мля!!! Аналитического подхода нет, зато есть бубен, и вязанка кондюков. За что и держат инженеров, а то бы манагеров держали ;О). - =mse= (03.08.2004 13:36)
- :-) :-) :-))))))))))))))))))))))))) (катаюсь по полу и хохочу) - bialix (03.08.2004 13:41)
- красиво..., метко и главное - правильно! - PicoDev (03.08.2004 21:46)
- по п.5. - не помогал (хотя, может, руки кривые) - Алексей Мусин (03.08.2004 13:58)
- мне помог, хотя тут от частоты все зависит - Al Volovich (03.08.2004 14:03)
- Тут ещё важно скомпоновать ИИП. пути токов по земле через L,VD,Cout для step down как можно короче. Земляное поле ИИП можно вообще сделать "островом" чтобы означенные токи не расплёскивались ширОко. И уже с Сout через LC мона снимать питание. Опять же к дросселю ИИП много вопросов. К подключению "острова" к земле - тоже. К точке заземления Ёмкости LC фильтра - аналогично. - =mse= (03.08.2004 14:21)
- А покупные питающие модули (power one, например) не грешат качеством? За свои 30 баксов там все по уму? - POV (03.08.2004 14:38)
- А если ИИП - покупной модуль flyback? - Алексей Мусин (03.08.2004 14:42)
- Тоды действительно, ХЗ но и легче, т.к. имеем двуполюсник. я бы сделал так: вых. ноги ИИП заблокировал тантальчиком или керамикой, или lowESR электролитом. Земляной проводок и питающий подал бы в схему через ферритовую трубочку(это в порядке паранойи). А можно и по рабоче-крестьянски: + через дроссель на аналогичный кондюк и в схему, "-" проводочком на земляное поле от "-" первого кондюка на второй и с него на земляное поле. - =mse= (03.08.2004 14:59)
- да, ещё. Возможно понадобится соединить "горячую" землю и "холодную" Y-кондюком пик на 100-1000 - =mse= (03.08.2004 15:00)
- и может оказаться, что больше ничего делать не надо ;О) - =mse= (03.08.2004 15:20)
- бывают и совсем тяжелые случаи - как у меня... Питание платы - розеточный AC/DC, на плате из его DC делаются +2.5 и +3.3 цифровые и +5 аналоговые. плюс стоит dc/dc покупной для формирования +/-12. Этот DC/DC естесственно гадит в обе стороны, так что фильтрацией приходится плотно заниматься - Al Volovich (03.08.2004 15:21)
- попробуй вход-ывход ДЦ-ДЦ подключать двухпроводкой, продетой неск. раз через ферритовое кольцо. - =mse= (03.08.2004 15:26)
- Можно попробовать, но это довольно нетехнологично я надеюсь перебиться LC-фильтром, чтобы L покупную поставить, ну и С тоже :) - Al Volovich (03.08.2004 15:39)
- Бог в помощь ;О) - =mse= (03.08.2004 15:45)
- Давеча я вопрос задавал в аналоговой конфе Телесистем. Мне там много чего полезного присоветовали, и, в частности, ткнули носом в малошумящие DC/DC ковертеры марки TYL и TVL фирмы Traco. У них пульсация на выходе 3 мВ или 6 мВ. - =AK= (04.08.2004 13:58)
- Да я тоже на них поглядывал. Только какие они помехи по входу создают? - Al Volovich (04.08.2004 14:05)
- Ответ: Я пока не успел их попробовать, не знаю. Но на всяк случай в схеме обложил их дросселечками, и по вх и по вых.
Впрочем, помехи по входу мне как-то по барабану. Все равно от вх. части у меня питается цифирь и только цифирь. - =AK= (04.08.2004 15:13)
- Еще можно попробовать DCR011205 Burr-Brown - General (04.08.2004 15:21)
|
| Ответ: Программирование mega8 , помогите ! |
qwert ответов: 6 |
id=12821 03.08.2004 10:48 |
Нужно запретить чтение и запись во флеш.
В AVRStudio в окне программатора в меню LockBits устанавливаю галочку Mode3,
Предполагаю ,что запрограммируются биты LB0 = 0 , LB1=0 и будет запрещено и чтение
И запись в соответствии с даташитом
Further programming and verification of the Flash and
EEPROM is disabled in parallel and serial programming
mode. The Fuse bits are locked in both serial and parallel
programming modes.(
Но при чтении после программирования из флеш читается запрограммированный hex файл…
Где грабли ???
- Уточнение - программирую через SPI Атмеловский программатор - маленькая коробочка с светодиодом - qwert (03.08.2004 10:51)
- Ответ: Пардон... конечно ISP... - qwert (03.08.2004 10:54)
- Сперва пишешь фузы. Потом - НЕХ, потом локбиты. в "0", ессно - =mse= (03.08.2004 11:04)
- Т.е. эти операции производятся раздельно , сначало прошиваю фузы не показывая путь к HEXу в окне программатора AVRStudio, потом программирую с уже показывая путь, и только потом устанавливаем локбиты и проводим третий цикл программирования и все это пре дусмотренно в AVRStudio ??? - qwert (03.08.2004 11:14)
- Астудией для ISP не пользуюсь. Не знаю за сколько циклов она чего делает. Но последовательность должна быть такой.... А вообще спаяй на 3 проводках АВРеал и будешь счастлив до конца жЫзни
- =mse= (03.08.2004 11:18)
- "О сколько нам открытий чудных готовит просвещенья дух..." А.С. Пушкин СПАСИБО MSE !!! Разобрался... - qwert (03.08.2004 11:30)
|
| Здравствуйте у меня такая проблема с SPI... |
SPI_тормоз ответов: 2 |
id=12810 03.08.2004 08:18 |
Уже надоело биться...Проблема в следующем.
Есть два проца ARM LPC2124 и MSP430F1232. MSPешка, опршаивает клаву и по SPI передает код клавиши она в Slave режиме.
Так вот, если я гружу прогу в MSP через отладчик, и запускаю в IARe, то все нормально, все коды клавиш как надо передаются..Все в порядке, но стоит мне отуключить отладчик..и сбросить проц, как код клавы получается сдвинутый на 1 бит.. т.е нечетных вобще нет, все клавиши умножены на 2. По осцилорафу смотрел, если в отладчике, то если число нечетное.. то младший бит 1(причем при снятии CS очень длинный фронт спадания этой 1(как буд-то кондер стоит)), а если без отладчика то 0(без него как раз правильный код).
В чем может быть дело? Перепробывал все варианты и полярность и последовательность передачи и сдвиги по фазе. Все одно....
Может ли питание как то влият? Что делает такого отладчик, что оно работает? Питание без отлдачика и у LPC и MSP одно +3В.
Отладчик подает свое питание, может как то это влиять? И держит на портах JTAGов +3 вольта.
Пмогоите, кто с таким сталкивался?
Заранее спасибо...
- Было похожее. На телесистемах написал. - Сергей Борщ (03.08.2004 11:31)
- Спасибо... за отзывчивость-)) - lamerok (03.08.2004 13:20)
|
| Поделитесь примером работы с UART в TMS320VC547x(не понятно: работает или нет) |
Donz |
id=12800 03.08.2004 02:17 |
Может кто-нибудь поделиться точно работающим простеньким примером работы с UART для устройства TMS320VC547x?
У меня есть подозрение, что на плате, где используется это устройство, что-то не так с UART. Но, всё-таки, думаю, что я может что-то неправильно делаю.
Если что, то TMS320VC547x - это DSP C54x + ARM7 Family микроконтроллер.
Плата, где это работает - RDM600 от компании ИнформИндустрия |
| 2 Sot точно именно int, а потом unsigned char |
patton |
id=12792 02.08.2004 21:22 |
int j = Buf[ i ];
sprintf( tmp, "0x%02X", (unsigned char)j );
|
| Если никого не напрягают вопросы не про МК... |
POV ответов: 17 |
id=12754 02.08.2004 16:27 |
продолжу про свой шаговичек (маленький такой, килов 12 всего).
На минимальных оборотах, полное потребление по постоянке при полушаговом режиме 7 А, что неплохо. При увеличении скорости не успевает нарастать ток в обмотке (вплоть до0,5 А потребление всего-то). Естессно двигатель дергается, рычит и равное крутит еле-еле.
ЧТо может заставить его пошустрее работать (номинально ом могёт до 600 Гц тактирвоание терпеть)?
Источник питания - 500 Вт, даже не замечает двигателя.
- Пробить барьер ограничения могут либо ускоряющие цепи, либо ШИМ-стабилизация тока. (для вашего размерчика и то, и другое ой-ой-ой) - General (02.08.2004 16:32)
- дык контроллер есть, но чтобы он начал делать ШИП, ток должОн превышать порог... это выходит питалово нужно полтораста вольт (!) чтобы что-то хорошее получилось!
В параметрах двигателя указано некоторое напряжение питания +3,3 В (!), котрых я осознатьне могу. И потому не могу решиться подавать на двигатель выпрямленное ~ 220 (это же > 300 В). А где попроще взять высокое питания, но попроще как-то не знаю :( - POV (02.08.2004 16:38)
- стоит движок 400 баксов, рука не поднимается на авось его включать. - POV (02.08.2004 16:41)
- Как раз сейчас делаем такое На шаговик 200 В выходит. Чичас силовуху доделывают, потом мне принесут управление городить.
Если очень приспичит и деньги лишние есть, могу на спеца в Питере отправить. - ASDFS (02.08.2004 16:44)
- За деньги купить уже готовый предложили, но в несерийном изделии будет использоваться 7 шаговиков. К кажому по контроллеру и по драйверу (примерно по 150...200 баксов то и другое жвба душит).
Впрочем, готовый купили бы наверное, но он не позволит номинальный момент крутящий развить (процентов 30 проигрыш) - POV (02.08.2004 16:48)
- Готовые на нужные параметры стоят намного дороже самого шаговика Потому и делают свой. - ASDFS (02.08.2004 16:55)
- Ну неее, Там где шаговик брали, контроллер тиап 10 косарей и драйвер 5 (точно уж не помню). Только я не очень в курсе, они совместно используются или нет. Да и ток маловат. - POV (02.08.2004 17:04)
- А что за контора? Мы также шаговики в Питере брали, может оттуда? KHALUS ELECTRONICS двигатель - POV (02.08.2004 16:50)
- Генерал захочет - озвучит контору... - ASDFS (02.08.2004 16:56)
- На спеца и отправляй. - General (02.08.2004 17:31)
- Да-да, отправляй. Может скажет мне пару ласковых. Хотя я уже решил ставить два дврайвера полумостовых и IGBT и выпрямитель (одно- или трехфазный) и может от этого будет мне счастье. Блин, времени только очень уж мало макет новый делать:( - POV (02.08.2004 17:43)
- Его мыл в твоем мыле. - ASDFS (02.08.2004 17:58)
- thanx - POV (03.08.2004 09:00)
- У меня такое впечатление, что вы путаете ток в катушках мотора и ток от источника питания. Эти токи совпадают в единственной точке - когда мотор остановлен и то при условии если обмотки просто коммутируются транзисторами. - Iwan (03.08.2004 12:43)
- Да нет, я не путаю и естессно согласен с Вами. И укащзание ранние про индуктивность я тоже понимаю... я лишь с удивлением увидел что 27 В питания недостаточно, чтобы ток в катушке наростал быстро (индуктивности и т.п. в DS на движок не было).
ВОт и появились мои крики недовольства этим фактом. - POV (03.08.2004 13:15)
- Это да, мне приходилось до 150 вольт поднимать чтобы получить заданную скорость. На всякий случай, посмотрите может у вас 8-ми выводный движок и обмотки последовательно включены. И еще, на всякий случай, вы учитываете, что на шаговый двигатель нельзя сразу подавать полную скорость, и требуется разгон? - Iwan (03.08.2004 17:18)
- На шаговиках я в вобщем вырос... и многое разумею хорошо. Но всегда пользовал маломощные двигатели (максимум 1 А на фазу) и неожиданно встретился с проблемой:( - POV (03.08.2004 17:43)
|
| Более дурацкой траблы у меня не было... |
POV ответов: 21 |
id=12727 02.08.2004 14:51 |
пользую шаговик 8 А в фазу. Вроде проблем нету, но вдруг "как в сказке..." - резистоыр последовательные с обмотками для обратной связи взяли и ограничили ток, а меньших найти не могу (SQP-5 0,1 Ом). Не красиво и крупногабаритно ставить по два резистора.
Может какие-то другие резисторы мощные и малоомные существуют? или вообще какой другой способ величину тока с фазы на контроллер завести?
- а кусочек проволки? - Max_QNX (02.08.2004 14:56)
- Гм, это мысль. Кто сможет мне навскидку сказать удельное сопротивление типичных материалов, меди, стали и т.п.? - POV (02.08.2004 15:05)
- Особенно если это фрагмент печатного проводника. - General (02.08.2004 15:46)
- Я был не прав. Что-то еще ограничивает ток и очень сильно... судя по форме тока, он просто не способен нарасти до нужно величины (маааленький такой треугольничек). Не понятно. Транзисторы всего 30 мОм сопротивление в открытом состоянии, а на затворе желаемые 12 В управления присутствуют.
Ничччё не понимаю. - POV (02.08.2004 16:02)
- наверное обмотка движка ;О) - =mse= (02.08.2004 16:10)
- про "смешно" это Вам - POV (02.08.2004 16:16)
- Смешно:) Но чисто оммически не должна (питание 27В, сопротивление обмотки 1,3 Ом). На обе фазы всего 2,5 А потребляется :( - POV (02.08.2004 16:15)
- А индуктивность у обмотки какая? ....Думаем... - ShiphT (02.08.2004 16:36)
- Закон Кирхгова знаю (не помню тиолько первый или второй). Но вот есть питание, есть двигатель, а так не желает расти с нужной скоростью - POV (02.08.2004 16:39)
- Ну, Кирхгофф тута боком не ходил ;О)... а через индуктивность от источника напряжения ток нарастает по ехпоненте. Если время переключеннья мало а индуктивность велика, то ток нарастить не успеваить. - =mse= (02.08.2004 16:43)
- Об этом и говорю "ток в индуктивности не меняется мгновено" - это разве не Формулировка Кирхгофа? - POV (02.08.2004 16:48)
- Может он такое и формулировал когда. Но законы Кирхгоффа про другое. - =mse= (02.08.2004 17:19)
- Звиняюсь - уже прочитал книжицу. В самом деле это не есть Кирхгоф. - POV (02.08.2004 17:40)
- Шобы наростало, надо поменять одно из обоих L, U, T(1/F). По понятным причинам L не меняется, значит меняй U или Т(1/F). - =mse= (02.08.2004 17:46)
- Доступно только U - значит мне светит заново переделывать весь привод :( - POV (02.08.2004 17:48)
- А "Т" чего? Недоступна? Ей легче всего крутку крутить. - =mse= (02.08.2004 17:51)
- Нужно хотя бы 2 Гц тактовой, а удается номрально ток в обмотку вкачивать только при 0,3...0,5 Гц. - POV (02.08.2004 17:53)
- А реально еще меньше. Скорость нарастания видимо пропорциоанльно менятеся с питанием, т.е. 0,5 В (на желаемых оборотах) надо дотянуть до 7..8 А, т.е. увеличть напряжение от 27 до примерно 450 В. Попробую 220 выпрямить когда новый макет сделаю.
Блин, блин, блин. Недели полторы теряю на лажу эту пока все купится, разведется, протравится и спаяется:( - POV (02.08.2004 17:56)
- это второй (вроде) закон комутации. первый по моему - "напряжение на ёмкости не может быть изменено мгновенно". - Max_QNX (03.08.2004 10:18)
- возможно это так называется:) Сами формулировки помнят все, а вот с названиями проблема. - POV (03.08.2004 12:17)
- дык, тама кроме Ома ищщо и Генри околачивается ;О). Они толпой с Фарадеем ходют, жизни не дают ;О) - =mse= (02.08.2004 16:40)
|
| Есть ли какой-нибудь "общепринятый" протокол для подобных систем? |
Алексей Мусин ответов: 64 |
id=12710 02.08.2004 12:38 |
Мастер опрашивает слейвов на предмет наличия событий.
Если слейв зарегистрировал ранее какое-то событие, то он отвечает, что мол, да, вот оно.
После ответа слейва мастер подтверждает слейву прием ответа.
Также мастер обеспечивает посылку команд слейвам с (опциональным) получением ответа.
- недавно стокнулся с похожей проблемой. всемирный разум в лице Sot и bialix порекомендовали протокол который делал Леонид Иванович - доработанный slip. wake называется. отличная скажу вам вещь! протокол сделан грамотно и минимальная избыточность. - Max_QNX (02.08.2004 13:38)
- люди, подскажите пожалуйста, а есть реализация WAKE на ядре µ51, на не µ52, как на спец. приборе? если ду то угостите плиз... - Puzzle (02.08.2004 14:45)
- сорри - я пропахнулся с ответом - он выше пошёл... - Max_QNX (02.08.2004 14:55)
- а что там не устраивает? разве таймер 2 используется? - bialix (02.08.2004 15:08)
- я вообще подумал может митцубиши какой-то :). - Max_QNX (02.08.2004 15:16)
- Ответ: кстати - сам у себя глюк прелюбопытнеший нашёл. сегодня-завтра поправлю исходник. пора блин список багов заводить. потоки как оказалось не завершаются даже если функция работающая в потоке завершилась. а даже если их и поубивать - ресурсы система у них не отбирает. (???). пришлось отымать ресурсы силой. :). - Max_QNX (02.08.2004 15:21)
- Обновил файлы. Если кто юзает - просьба подправить. - Max_QNX (03.08.2004 11:21)
- Этот вариант я держу в голове :) Просто может еще есть? - Алексей Мусин (02.08.2004 15:25)
- можно пользовать 1) modbus тоже неплохая штука - но для меня слишком много лишнего навёрнуто.
2) slip - стандартная штуковина unix - далалась на коленках каким-то доморощенным мутантом которому жалко было лишних 8 бит - по итого никакой защиты. годится только по последовательному порту администрить сервак через "выдаленную линию" в соседнюю комнату.
3) РРР - универсальная штука - хоть через модем и с другого конца света - но наврнуто не приведи господь. для однокристалок оно определённо не годится.
4) как начнёшь думать а чего же собственно надо? старт байт на фрейм - надо. контрольную сумму хоть минимальную надо. ну и байт стаффинг чтобы данные с началом фрейма не путались. вообщем wake для однокристалок подходит как нельзя получше. - Max_QNX (02.08.2004 15:30)
- Ответ: >1) modbus тоже неплохая штука - но для меня слишком много лишнего навёрнуто.
есть такое дело, 16-разрядов где не надо,
да и идеология у modbus иная (memory access).
Можно было бы взять у него только уолвень serial line,
но мне и его паузы претят :).
>2) slip
slip именно что serial line, там никакой адресации, а только разделение пакетов с помощью байт-стаффинга.
>3) РРР.
у меня не ppp, слейвов несколько.
4) как начнёшь думать а чего же собственно надо? старт байт на фрейм - надо. контрольную сумму хоть минимальную надо. ну и байт стаффинг чтобы данные с началом фрейма не путались. вообщем wake для однокристалок подходит как нельзя получше.
да, только квитирование поверх него надо написать. - Алексей Мусин (02.08.2004 15:44)
- Ответ: да по правде сказать не очень сложно поверх wake поолжить квитирование. допустим команды с 0-м требуют квитирования а с 1-й нет. там же прямо в него вложено подобие ping. на аналогии и играю. Но таймауты оставил. если удалённое устройство тупит и не поймало старт фрейма - пропустит тихо мимо ушей. и не пошлёт ни ок ни плохо. я например пишу так чтобы отвечал контроллер на любой запрос. если отвечать нечего - пусть рапортует что жив здоров и за время с последнего опроса ничего не случилось :). а уж если не отрапортовал ничего несколько раз - значит или помер или в коме. но системе уже всё равно - у неё одна работа - свистеть свистелкой и мигать мигалкой, вызывая оператора и пусть разбирается что случилось. - Max_QNX (02.08.2004 15:59)
- Люди! Человеки! Где надыбать описание этого wake? Аналогичной задачей озадачен, не хочу велосипед изобретать. Тоже мастер и куча слейвов. В попытках придумать уперся в ситуацию, которую не могу разрешить. Например:
Мастер->вопрос.
Слейв не услышал -> таймаут.
Мастер->тот же вопрос.
Тут все понятно.
Мастер->вопрос.
Слейв ->ответ.
Мастер->подтверждение о приеме.
Слейв не услышал -> что делать?
Напрашивается нумерация запросов. По минимуму битовая. Тогда слейв сможет отличить очередной запрос мастера от запроса повторной передачи. Два счетчика - в мастере и слейве. А если еще и из мастера в слейв инфу надо гнать? Еще пару счетчиков? А когда слейвов много - это ж на каждый в мастере по паре счетчиков надо.
В общем чую, что есть простое рещение, очевидное для всех остальных, но нащупать его пока не получается :-(
- Сергей Борщ (02.08.2004 23:03)
- Гугля подсказала. Но там нет квитирования. По квитированию мыслей/ссылок нет у кого-нибудь? - Сергей Борщ (02.08.2004 23:09)
- Делал "один мастер много слейвов" без квитирования, но слейвы были построены, как автоматы состояний. Команды двух типов: ИЗМЕНИТЬ СОСТОЯНИЕ и СООБЩИТЬ СОСТОЯНИЕ. Для каждого состояния слейва есть допустимые и недопустимые команды. В ответ на любую команду слейв возвращает своё состояние. Если команда недопустимая, слейв возвращает своё состояние с установленным битом ОШИБКА. Мастер повторяет команду по тайм-ауту, или при получении бита ОШИБКА (после анализа причины). Решение не универсальное, но работает нормально, за счёт избыточности набора команд.
- Full_Zero (03.08.2004 08:53)
- Ответ: IMHO "ОК" мастера, принявшего ответ - лишний. если мастер не принял ответ - он переспросит. если не переспросил - значит всё ОК.
я делаю вопрос-ответ и всё. последнее ОК как бы само собой разумеется. - Max_QNX (03.08.2004 10:16)
- А если мастер не успел принять ответ слейва (упал, умер...) то слейв об этом не узнает, вычистит буфер, и событие мы потеряем... - Алексей Мусин (03.08.2004 10:37)
- гм... если аварийное событие действительно. можно у слейва событие вычищать из буфера если пришло следующее со сброшенным битом повтора. (позаимствовать бит повтора из HDLC). например из поля команды взять битик или из поля адреса... (ну это так... мысли вслух...) а если пришло событие со взведённым битом повтора - то слать то же самое. таким образом - мастер что-то не услышал - для него считай слейв не ответил - он шлёт запрос ещё раз такой же тольо поднимает бит повтора. слейв ответит тем же ответом. ну не может же мастер до бесконечности "падать"! - Max_QNX (03.08.2004 11:08)
- Была проблема. Slave'ы копили сообщения и передовали Master'у по запросу. Иногда сообщения терялись. Долго и нудно искали в чем дело. Затем пришли к выводу, что сообщения надо удалять по квитированию. Если Master принял сообщение - он шлет Ack и Slave его удаляет; если Slave не ответил, еще раз Ack. Если Slave первый Ack получил, он ответит ошибкой: "В буфере сообщений нет", Master поймет, что ответ Slave'a потерялся и всё. А, вообще, вроде TCP получается, только Ack на одну датаграмму. :). - ASN (03.08.2004 10:52)
- накручено как-то получается. может можно проще? потому что потом пойдёт цепная реакция - а если слейв не принял подтверждение мастера о том что мастер принял информацию? надо вводить аск на аск? :). надо найти предел. - Max_QNX (03.08.2004 11:10)
- Нет тут никакой проблемы :). Если Slave не принял, то ничего не делает. Это проблема Master'a это ситуацию разруливать. Если надо, Master может еще раз запросить сообщение, Slave ему его пошлёт хоть 10 раз. Достаточно чтобы хоть одни Ack дошёл. Master - нормальный промышленный ПК, Slave - слабенький MC. Тем более транспорт TCP с этой ситуацией "а если слейв не принял подтверждение мастера о том что мастер принял информацию" справляется уже лет 30. - ASN (03.08.2004 11:33)
- ну я и имею в виду. транспорт ТСР - довольно громоздкий. может есть более простое решение - чтобы не увеличивать избыточность? если канал дуплексный - оно ещё ничего - а если полудуплекс? туда-обратно-туда, это немало времени пройдёт пока они договорятся. - Max_QNX (03.08.2004 11:40)
- Всё определяется временем реакции системы. У нас как раз полудуплекс был. Если сообщения успевают доставляться вовремя - то всё Ok. А квитирование можно упаковать в посылку запроса состояния (или как в TCP и HDLC) :).
Без понятия "квитирование" всё равно не обойтись, если речь идет о "гарантированной доставке". Если узким местом является канал связи - расширь его. Если Windows не может формировать времянку протокола - поставь контроллер линии на МК. Тогда уже Modbus напрашивается. :). И никто не говорил, что нужно повторять все поля TCP/IP на МК, хотя попробовать в качестве хобби можно :). - ASN (03.08.2004 12:09)
- хобби! хи-хи - bialix (03.08.2004 12:29)
- К, сожалению, разработка аппаратуры и софта для MCU а-ля C51, AVR, MSP430 осталось в прошлом :(. Мы тапереча больше по HDL и 32/64 битным монстрам. Так что, это для меня теперь только хобби. :) - ASN (03.08.2004 12:41)
- Ностальгия... Делал один из первых своих "связных" приборов. Запускаю тест - одна команда прошла нормально, вторая - нет и нет ее, беру осцил смотрю линию, а они друг в друга Ask`ами кидают =))) - ShiphT (03.08.2004 12:07)
- Есть мысли
1) занять поле данных data1 под нумерацию пакетов:
0 - запрос соединения;
1 - пакет 1;
2 - пакет 2;
3 - разрыв соединения;
2) у меня в системе до 16 слейвов, так что под адрес + broadcast нужно 5 бит, оставшиеся 2 бита уйдут на нумерацию пакетов, еще один бит - резерв. Можно прямо здесь договориться, что он тоже пойдет под адрес.
Пока склоняюсь к варианту 2, т.к. не хочется вводить еще один байт.
PS. Если интересует, после проработки выложу описание протокола wake с квитированием. - Алексей Мусин (03.08.2004 10:44)
- Очень интересует. Могу предложить совместно поработать над его продумыванием. В двух головах мыслей больше.
Чем больше думаю, тем чаще мысль упирается в тупик, описанный Max_QNX: http://www.caxapa.ru/mcu/wwwboard.html?id=12830
- Сергей Борщ (03.08.2004 11:17)
- См. почту. Кто бы выложил в инет? Вместе все покумекали бы. - Алексей Мусин (03.08.2004 11:43)
- а вот надо у General\'а попросить место под типа проекты, а? а заодно и под аттачи к сообщениям ;) - бью челом (03.08.2004 12:11)
- я могу. можно выделить поддомен. размером до 20 МБ устроит?
Мой сайт вы знаете:
http://onembedding.com
Поддомен вида:
http://subdomen.onembedding.com - bialix (03.08.2004 12:15)
- Александр, а крякство там нельзя ли выложить? - все тот же челомбьющий (03.08.2004 12:16)
- мне бы очень этого не хотелось. История с нагано все еще живет ярким воспоминанием во мне - bialix (03.08.2004 12:21)
- Мне без разницы, как общественности удобнее? Только зачем поддомен? Страницу завели под wake, внизу под ней вариация для wake с квитированием.
И самое главное, надо Леонида Ивановича спросить про все это дело. - Алексей Мусин (03.08.2004 13:00)
- да что мы с этим wake-ом. обычный modbus-подобный протокол, построенный на основе SLIP-транспорта. А общественности похоже никак не удобно. Ей просто лень. Страничку сделать - нет проблем. Я сделаю. Только сначала свяжусь с Леонидом Ивановичем, спрошу его мнение. - bialix (03.08.2004 14:09)
- Кабы умел странички ляпать, положил бы красиво. У меня сервер круглосуточно в сети. Апач на нем крутится, но я в этом совершенно не понимаю. Поэтому положил на фтп.
Вот мысль, которая меня мучает со вчерашнего дня: поскольку под широковещательное сообщение выделен отдельный адрес и широковещательные сообщения используются сравнительно редко, я думаю что не стоит усложнять реализацию возможным отсутствием поля адреса. Пусть поле адреса будет всегда и будет первым после FEND. А команда тоже всегда будет и всегда вторая. Кроме упрощения реализации это позволит высвободить 2 бита.
Вторая мысль: если этот протокол оформить в виде 7-уровневой модели OSI, то читать-понимать будет проще:
Физический уровень - RS232, RS485, etc.
Канальный уровень - "Типа SLIP"
Сетевой уровень - Адресация пакетов первым байтом.
Транспортный уровень - вот тут собственно квитирование. - Сергей Борщ (03.08.2004 12:21, ссылка)
- странички ляпать много ума не надо. ликбез провести? - bialix (03.08.2004 12:25)
- Лучше не надо. Иначе до протокола руки никогда не дойдут :-)) - Сергей Борщ (03.08.2004 12:40)
- спроси у Пинигина, понравилась ли ему моя методика и сколько времени он потратил на оформление своего сайта :-) - bialix (03.08.2004 12:49)
- Почему не трогать addr и cmd 1) хотелось бы wake максимально не трогать
2) бит в поле команды сокращает возможное кол-во до 127 - мало???
единственно, из-за квитирования сейчас кол-во адресов сокращено до 32 (причем один из них на broadcast). Кому-то может быть критично (устройств >= 32) :( - Алексей Мусин (03.08.2004 12:50)
- Ответ: Количество устройств меня пока устраивает. Не хотелось дополнительно усложнять реализацию этими "может отсутствовать". Хотя может это только эмоции. - Сергей Борщ (03.08.2004 14:35)
- бит в поле команды сокращает кол-во команд до 64. у команды 1 бит и так отняли чтобы наверняка отличить от адреса которого может не быть. если wake не трогать - значить надо в поле данные (которых может быть до 256) инкапсулировать что-то своё. - Max_QNX (03.08.2004 16:03)
- Секундочку. Что-то вы, мужчины, перегрелись. Ясно ведь говорилось, что при ошибках слейв должен молчать. А мастер должен делать повторы по таймауту.
Посмотрим рис.2 \"потеря пакета от передатчика\":
допустим в пакете исказился бит в поле адреса и сообщение адресованное, к примеру, номеру два, получает номер три. Поскольку CRC не совпадает, то слейв номер два шлет ответ \"подтверждение пакета номер один\" (рис.2), а слейв номер три, в тоже время шлет \"нет соединения\". Так что при ошибке - молчать. А то, что на таймауты нужно время (каламбур, однако), так тут уж никуда не денешься.
- adw (03.08.2004 15:59)
- Вы абсолютно правы. Исправимся. - Алексей Мусин (03.08.2004 16:08)
- а нужно ли что-то делать, если слейв не услышал? что ему с того? Если делаем мастер-слейв, то система стрго подчиненная. Мастер запрос - слейв ответ. Зачем ответ слейву на ответ? Если слейв должен после успешного получения мастером ответа чего-то сделать, так пусть сам мастер пошлет ему такую прямую команду: сделай то-то, я принял твой ответ. А слейв опять же должен подтвердить, что он команду услышал.
Иначе получается рекурсивный поиск ответа на вопрос: "кто будет сторожить сторожей?" - bialix (03.08.2004 12:20)
- Ответ: У меня в системе пока планируется два типа слейвов. Первый тип собирает информацию и по мере прихода мастер ее выгребает. Второй тип с точностью до наоборот - получает от мастера инфу и передает дальше. Т.е. для первого типа слейв должен знать, что текущий блок мастер забрал и на следующий запрос предоставлять новую. Для второго типа мастер должен знать, что текущий блок инфы слейв принял и готовить следующий. Вот и промблема - гарантированно доставить и отличить "этот" блок от "следующего". - Сергей Борщ (03.08.2004 12:45)
- Тогда, IMHO, как Вы и говорили - счётчики и подтверждение окном. TCP, однако. :) - ASN (03.08.2004 12:52)
- simplified TCP over SLIP. - bialix (03.08.2004 12:57)
- для второго типа слейвов как бы проблем никаких не видно а для первого - ну сделайте команду от мастера "стереть старую информацию". Тогда - мастер принял инфу. Проверил ее целостность. Выдал команду слейву "стереть старую инфу". Слейв ответил "ОКей" и стер. И готовит новую порцию. Тут конечно желательно снабжать каждую порцию инфы чем-то вроде ID-метки, чтобы мастер видел, что он принимает и корректно выдавал команды слейву: сотри блок инфы номер такой-то.
Где здесь логическая ошибка?
- bialix (03.08.2004 12:55)
- И придём мы к HDLC, который, за неимением бит-стаффинга в обычных UART, можно передавать при помощи байт-стаффинга при помощи SLIP (см. AX25/KISS).
- ReAl (03.08.2004 18:01)
- как бы интересно рассуждаешь по твоим словам получается, что slip - это говно, но вот wake, сделанный из slip - это конфетка. Но так ведь не бывает. У конфетки, сделанной из говна запах-то будет не конфетный...
Или я чего-то не понял? - bialix (02.08.2004 16:04)
- :) говно или конфетка - это всё так относительно. но тот кто писал slip явно не заботился о безопасности. для систем управления это не годится. аналогично можно рассуждать и о протоколах аутентификации - которые изначально слали пароль открытым текстом а потом (на их основе кстати) делались протоколы аутентификации довольно высокой надёжности. изюминка тут именно в алгоритме как понимаешь. именно в идее. ну что поделаешь? 10 лет назад реализация подкачала - сейчас slip - это вещь в себе для изучения в институте как экспонат. сам по себе он маложизнеспособен. но идеи в него заложенные толкнули новое поколение, которое мне лично кажется лучшим. - Max_QNX (02.08.2004 16:11)
- SLIP сам по себе - это ничто. Это только рамка для разделения на пакеты потока байтов. Ни типов пакетов, ни контрольных сумм - ничего. Он не протокол связи, а протокол проталкивания бинарных двнных через байтовый канал. А что натолкать внутрь - такая защ ита и будет. RFC-1055
A NONSTANDARD FOR TRANSMISSION OF IP DATAGRAMS OVER SERIAL LINES: SLIP
INTRODUCTION
The TCP/IP protocol family runs over a variety of network media:
IEEE 802.3 (ethernet) and 802.5 (token ring) LAN's, X.25 lines,
satellite links, and serial lines. There are standard encapsulations
for IP packets defined for many of these networks, but there is no
standard for serial lines. SLIP, Serial Line IP, is a currently a de
facto standard, commonly used for point-to-point serial connections
running TCP/IP. It is not an Internet standard. Distribution of
this memo is unlimited.
- ReAl (03.08.2004 17:37)
- Это наверное проблема мышления конечно если бы данные имели свои пути обнаружения и (или) исправления ошибок - их вполне можно было бы разбить на кадры и передать кудой угодно.. но... :) применимо к микроконтроллерам почему-то всегда хочется поручить обнаружение (исправление) именно внешнему протоколу :). а принимать и передавать необходимый минимум информации. :).
да и в самом slip не всё так безоблачно (имеется в виду именно реализация описанная стандартом) - позволю себе маленькую цитату:
Протокол SLIP (Serial Line IP, RFC-1055) – это простейший способ инкапсуляции IP-дейтограмм для последовательных каналов связи. Этот протокол стал популярным благодаря возможностям подключения домашних персональных машин к сети Интернет через порт RS-232, который соединен с модемом. IP-дейтограмма в случае SLIP должна завершаться специальным символом 0xC0 называемым конец. Во многих реализациях дейтограмма и начинается с этого символа. Если какой-то байт дейтограммы равен символу конец, то вместо него передается двухбайтовая последовательность 0xDB, 0xDC. Октет 0xDB выполняет в SLIP функцию ESC-символа. Если же байт дейтограммы равен 0xDB, то вместо него передается последовательность 0xDB, 0xDD. Использование протокола SLIP предполагает выполнение ряда условий:
Каждый партнер обмена должен знать IP-адрес своего адресата, так как не существует метода обмена такого рода информацией.
SLIP в отличии от Ethernet не использует контрольных сумм, поэтому обнаружение и коррекция ошибок целиком ложится на программное обеспечение верхних уровней.
Так как кадр SLIP не имеет поля тип, его нельзя использовать, в отличии от кадров Ethernet, для реализации других протоколов методом инкапсуляции.
Впервые протокол SLIP был применен в 1984 году в 4.2BSD. Скорость передачи информации при использовании протокола SLIP не превышает 19.2кб/с, что обычно достаточно для интерактивного обмена в рамках протоколов telnet или RLOGIN. Максимальный размер передаваемого блока (MTU) для SLIP лежит вблизи 256-512 байт, что обеспечивает разумный компромисс между значением задержки отклика (~256мс.) и эффективностью использования канала (~98% для CSLIP). При этом для передачи одного символа (нажатая клавиша) используется 20 байт заголовка в IP-дейтограмме и 20 байт TCP-заголовка. Если мы учтем издержки формирования SLIP-кадра, накладные расходы превосходят 40 байт. Частично этот недостаток устранен в новой версии CSLIP (Compressed SLIP, RFC-1144, предложенной Джекобсоном в 1990 году). В CSLIP заголовок сокращается до 3-5байт (против 40 в SLIP). Эта версия протокола способна поддерживать до 16 TCP-соединений на каждом из концов последовательного канала. Многие современные SLIP-драйверы поддерживают и CSLIP.
- Max_QNX (04.08.2004 09:52)
- Да я читал и RFC1055 и RFC1144. Возможно, это действительно проблема мышления... Я никогда не относился к SLIP как к протоколу передачи "сырых", "пользовательских", "application level" данных.
Да, изначально он предназначался для передачи IP-пакетов через UART, так как UART, в отличие от ethernet-контроллера, сам никакого разделения на пакеты не делает. Вот я и относился к SLIP как к софтовой реализации того уровня, который в ethernet-контроллере сделан аппаратно :-) Причём самого нижнего, соответствующего бит-стаффингу и межпакетным флагам, "нарушающим" бит-стаффинг. Очень легко реализуемый на любой 8-битке прямо в обработчике прерываний, занимает очень мало места.
Обижаться, что SLIP не делает контрольны сумм -- всё равно, что обижаться на неделание контрольных сумм бит-стаффингом.
Итого у меня и для PC есть подпрограммы (давно пора в DLL-ку вытолкать :-), режущие по SLIP поток на пакеты (очень удобно назначить 0300 на event character). И в контроллерах -- отдельно кусочек нарезки на пакеты, отдельно - что я передаю. И что находится выше этого окда - этому коду по барабану. В этой рамке у меня бегает уже лет 6 два протокола, похожих на то, что "всемирный разум" предложил. Один попроще, с 8-битной контр. суммой, другой с crc16. И всё нормально. Найдётся другой способ резать на пакеты -- ЭТИ же пакеты можно будет гонять не через SLIP, а через тот другой способ.
- ReAl (06.08.2004 11:43)
- а что за ядро мю 51и мю 52? чем они отличаются? - Max_QNX (02.08.2004 14:55)
- Ну коли тут не отвечают - 8051 и 8052 (классика семейства MCS-51 от Intel) кажись, в 8052 "лишний" таймер и ОЗУ побольше, но могу ошибиться - давно изучал. - Алексей Мусин (02.08.2004 16:03)
- если так то я и вправду не вижу причин чтобы не использовать коды от 8052 в 8051. врядли там такие уж проблемы с памятью что в 8051 не влезет. - Max_QNX (02.08.2004 16:12)
- у меня случались проблемы с памятью:( прогу отладил на внутрисхемном эмуляторе, а на х-51 не пошло, димаично меняющиеся таблицы не уместились. Все решил 52-й МК. - POV (03.08.2004 12:19)
- >>>> x51 - 128 байт внутреннего ОЗУ, 2 таймера
x52 - 128 байт внутреннего ОЗУ + 128 байт внутреннего ОЗУ косвенно адресуемого - 3 таймера
- :((((( (04.08.2004 23:06)
- А каковы приблизительные затраты (человеко.часы) на разработку подобной системы??? - :((((( (04.08.2004 23:04)
- 8 вместе с документами. - ASDFS (04.08.2004 23:06)
- Это один человек за рабочий день? Если я Вас правильно понял и все так просто - нельзя ли пример кода? - :((((( (05.08.2004 08:46)
- Какого кода? Обычно он размазан по проекту типа обычно приемник в прерывании, обработчик протокола где-нить в основном цикле, плюс кучка ушей специфичных для проца, задачи, протокола.
Вот примерчик собсно приемника из старого проекта - с адресацией, байтстаффингом, контролем пакетов и т.п.
//void UART_RX(void)
{
_i = RCREG;
if (_i == UART_Address) {
UART_State = 1;
UART_CRC = UART_Address;
UART_ptr = 0;
} else if (_i == 0x7D) {
UART_State = 0;
} else {
if (UART_ptr >= Max_RX_String_Length) {
UART_State = 0;
}
switch (UART_State) {
default:
UART_State = 0;
case 0:
break;
case 1:
switch (_i) {
case 0x7F:
UART_State = 2;
break;
case 0x7E:
UART_State = 0;
UART_ptr--;
#ifdef __UART_CRC__
UART_CRC -= RX_Buffer[UART_ptr];
if (RX_Buffer[UART_ptr] == UART_CRC)
#endif
{
#include "..\network.thr\protocol.c"
}
break;
default:
RX_Buffer[UART_ptr++] = _i;
UART_CRC += _i;
break;
}
break;
case 2:
UART_State = 1;
switch (_i) {
case 0x00:
RX_Buffer[UART_ptr++] = 0x7F;
UART_CRC += 0x7F;
break;
case 0x01:
RX_Buffer[UART_ptr++] = 0x7E;
UART_CRC += 0x7E;
break;
case 0x02:
RX_Buffer[UART_ptr++] = 0x7D;
UART_CRC += 0x7D;
break;
case 0x03:
RX_Buffer[UART_ptr++] = 0x7C;
UART_CRC += 0x7C;
break;
case 0x04:
RX_Buffer[UART_ptr++] = 0x7B;
UART_CRC += 0x7B;
break;
case 0x05:
RX_Buffer[UART_ptr++] = 0x7A;
UART_CRC += 0x7A;
break;
case 0x06:
RX_Buffer[UART_ptr++] = 0x79;
UART_CRC += 0x79;
break;
case 0x07:
RX_Buffer[UART_ptr++] = 0x78;
UART_CRC += 0x78;
break;
default:
UART_State = 0;
break;
}
break;
}
}
}
- ASDFS (05.08.2004 15:05)
|
| Выровнял |
General |
id=12702 02.08.2004 12:11, ссылка |
| JTAG error: Held In Reset Stste - как бороться и с чем это м.б. связано? |
:((((( |
id=12667 01.08.2004 11:53 |
процессор - Atmel ARM |