Jump to content

    

Vishay

Свой
  • Content Count

    47
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Vishay

  • Rank
    Участник

Recent Profile Visitors

932 profile views
  1. Пример из предыдущего поста, переделанный в виде приложения для Linux (irq_tc1), с уменьшенной до 1 Гц частотой сигналов на выводах процессора, разрешением прерываний от таймера TC1 (irq18), и модулем ядра (intrpt.ko), в котором находится обработчик прерывания IRQ18, печатающий количество произведенных вызовов обработчика. Модуль intrpt.ko откомпилирован для ядра 2.6.16. После загрузки модуля командой #./insmod intrpt.ko в файле /proc/interrupts появляется строчка: 18: 0 test_TC1_irq_handler Запускаем далее #./irq_tc1 и наблюдаем увеличение раз в секунду количества обработанных прерываний от TC1 в cat /proc/interrupts, выдачу обработчиком прерывания по printk величины счетчика, обработанных IRQ18-прерываний, прыжки уровня сигнала приблизительно раз в секунду на выводах 65,66 процессора. Для просмотра памяти, векторов прерываний, регистров TC1, AIC и т.д. я использовал утилиту monitor.c. irq_tc1.zip intrpt.zip monitor.zip
  2. Двухканальный генератор импульсов с программируемой скважностью по мотивам doc2682.pdf ("Pulse Width Modulation Generation Using the AT91 Timer/Counter") с сайта Atmel.com, для платы Rainbow_1.1 . Откомпилированная программа загружается в плату также, как и примеры в предыдущем посте. На выводах 65 и 66 процессора ( или на контактах 8 и 10 разъема P7) после запуска программы наблюдаем в осциллограф импульсы с 30% и 50% скважностью с частотой ~1 кГц ( как и описано в doc2682 ). AT91_wave_pwm.zip
  3. Здравствуйте. Вопрос такой: имеется работающая отладочная плата для процессора AT91RM9200 ( Rainbow_1.1), с работающим на ней Linux'ом. Есть желание попробовать поработать с JTAG - интерфейсом в учебных целях с прицелом на другие задачи. JTAG - адаптера в наличии никакого пока нет. Хочу попробовать адаптировать open-source проект по jtag, чтобы сделать на основе платы Rainbow jtag-адаптер: формировать на выводах GPIO процессора сигналы JTAG - интерфейса. Подходящего простого управляемого по JTAG устройства для учебных целей тоже пока в наличии нет :( . А можно ли работать с самим процессором AT91RM9200 одновременно и в качестве адаптера и в качестве управляемого утройства JTAG ( например - определить 0 или 1 на выводе процессора, управляющем включением светодиода BL_COMPLETE) ? Или это полный бред ?
  4. Проблема c telnetd решена непосредственным запуском: #/usr/sbin/inetd .
  5. Hello All ! Никак не могу с обсуждаемым здесь Debian sid 'ом запустить сервер telnetd. В inetd.conf его прописал, пробовал другой сервер inetutils-telnetd с сайта Debian'а, пробовал busybox с сайта Debian'а - ничего не работает, т.е telnet-клиент на компьютере сервера не видит. Пробовал ставить клиентов telnet на плату Rainbow + Debian sid - они с телнет-сервером на PC работают нормально, а с локальным не хотят. Если #/usr/bin/busybox telnetd то получаю ошибку: telnetd: socket: Address family not supported by protocol . С файловой системой от heavy проблем с telnet'ом у меня нет. Help me, please !
  6. Для тренировки работы с i2c интерфейсом платы Rainbow я припаял к ней на проводках микросхему EEPROM M24256 фирмы ST с неким примерно известным запрограммированным до меня содержимым, с закороченными на землю адресными выводами ( адрес на шине i2c 0x50 ) и резистором 5 кОм на выводе /WC для защиты от записи. Попробовал считать ее содержимое при помощи готовых средств Linux'а, для чего первоначально использовал ядро с поддержкой EEPROM - в каталоге /sys/bus/i2c/devices/0-0050/eeprom видны первые 256 байт EEPROM'а. cat /sys/bus/i2c/devices/0-0050/eeprom | hexdump -C Далее попробовал почитать другие адреса EEPOMa при помощи утилит из пакета lm-sensors: i2cdump считала те-же 256 байт, а выше по адресам считывала не совсем-то, что ожидалось. i=0; /usr/sbin/i2cdump -y 0 0x50 c $i; while [ "$i" -le 128 ]; do echo "i=$i" ; /usr/sbin/i2cdump -y 0 0x50 c $i; let i+=1; done; Для верификации содержимого EEPROMa пришлось считать его без Linux'а модифицированной программой BasicTWIEeprom из тестовых примеров для AT91RM9200 от Atmel (файл eeprom_read.zip). Имея т.о точное содержимое EEPROMa в файле, я предпринял еще несколько попыток стандартными средствами Linux'a считать все содержимое EEPROM'a, но они оказались безуспешными. Далее, я попробовал написать свою программу на Си для решения этой задачи ( файл i2c_program.zip ). Для еe работы необходимо ядро с выключенной поддержкой EEPROM, иначе в адреса 0x50 ... 0x57 шины i2c ничего нельзя записать при помощи вызова ioctl. Вот скрипт, который я использую для создания устройства /dev/i2c и загрузки программы из компьютера в файловую систему платы Rainbow на ram-диске: if [ ! -c "/dev/i2c" ] ; then mknod -m 600 /dev/i2c c 89 0 ; fi ; cd /home ; prgn="./i2c_program"; echo -e "binary\nget $prgn" | ./tftp 192.168.2.41 ; if [ -e $prgn ] ; then chmod 544 $prgn ; fi ; ls -l ; Команда для запуска программы: #./i2c_program 50 0 255 где параметры командной строки: address_i2c, mem_addr, nbytes. P.S. Начал я практическое изучение i2c - интерфейса под Linux-ом на плате Rainbow с такого скрипта: mknod /dev/i2c c 89 0 ls -l /dev/i2c dmesg > /dev/i2c , но при просмотре сигналов интерфейса i2c в осциллограф выяснилось, что текст из dmesg пишется в i2c-адрес 0x7f. ):- . i2c_program.zip eeprom_read.zip
  7. Фирма ST для поддержки своего выпускаемого железа содержит свой STLinux, и в документации на него есть примеры программ для работы с i2c и spi интерфейсами : i2c: http://www.stlinux.com/docs/manual/distrib...tion_guide6.php spi: http://www.stlinux.com/docs/manual/distrib...tion_guide7.php
  8. IMHO, для ядра выложенного на heavy-online.ru/arm-linux/files, конфиг недоступен в публичном доступе: согласно выложенной там инструкции он генерится командой make at91rm9200dk_defconfig, а файл at91rm9200dk_defconfig даже не патчится максимовским патчем, т.е. берется дефолтный конфиг ядра для этой платформы, а в нем SCSI - конфигурирование вообще отключено, следовательно, ядро не должно работать с USB Flash, однако , реально, ядро от heavy c USB Flash работает.
  9. 2 Dron_Gus Использую для подключения к плате Rainbow вот такой USB кардридер с картами Memory Stick с одним разъемом для карт. Стоит 200 р., работает нормально.
  10. 2 aaarrr Правильно ли я понял из прочтения спецификаций, что о прямом подключении карт Memory Stick к MCI интерфейсу контроллера AT91RM9200 можно забыть ?
  11. Схема, если ничего не путаю, от продвинутого телевизора Sony со встроенным кардридером для карт Memory Stick. Небольшая поправочка: не 10 К, а 100 К на землю, причем не только BS, но и DIO0.. DIO3. P.S. Смелое предположение - может быть надо делать инверсию всех сигналов ?
  12. Есть еще маленькое отличие в схеме подключения Memory Stick карты в упоминавшейся выше схеме - прототипе и в плате Rainbow: там сигнал BS не подтягивается резистором к плюсу питания, а подключен через 10 КОм на землю. Хочу попробовать сделать также на плате Rainbow. А пока подключил на проводках разъем карты по схеме: BS - CMD CLK - CLK DAT0..3 - DAT0-3 и т.д. и тест карты от атмела ничего не видит, и Линукс также ничего не видит, ( и тест карты от Черкашина ничего не видит - хотя, там, видимо, другая схема ) -:(.
  13. 2 BuroKRAT Спасибо за информацию, посмотрел по этой ссылке : http://pinouts.ru/Memory/memorysrick.shtml , только вот эта карта не M2 -:(, у M2 даже геомертия выводов разъема несколько другая: выводы питания и земли несколько удлинненные на карте. Вот эта карта соответвует описанной в ссылке спецификации разъема:
  14. 2PrSt 1) По поводу CONFIG_CMDLINE - я использую bootargs из окружения romboot'a, а то, что попало в обсуждаемый config, при этом не работает ( как попало - скорее всего из взятого за основу чужого файла ). В log"е при загрузке ядра в Hyperterminal'е присутствует CMDLINE именно от romboot'a. 2) По поводу Ваших замечаний о USB - спасибо, буду разбираться. 3) По поводу взятия за основу config' ов от heavy или сакуры - в принципе так и хотел сделать сначала, но чтот-то не получилось: отдельно файлов config' ов к их ядрам не прилагается, приходится накладывать на ядро патчи от максима, а с этим у меня, видимо, вышла неувязка: вероятно, надо было ручками копировать пропатченный файл linux-2.6.XX/arch/arm/configs/at91rm9200dk_defconfig в католог /usr/src/linux-2.6.XX/.config ??? Sorry, но ядра приходится собирать не каждый день -:).