User Tag List

Показано с 1 по 10 из 354

Тема: Корвет: ExtROM Open Source extender

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    так что прошивку - конечно выкладывай.
    Выкладываю. На всякий случай - все файлы и сборочный скрипт. Также там лежит обновленная схема - на старой я забыл нарисовать кнопку сброса и подтяжку для этого сигнала. Хотя, конечно, нетрудно догадаться, куда эту кнопку вешать...

    p.s. и выложи скрипты которые шьют эту балалайку с нуля
    я то avrdude пользовался, но всякие там fuse и прочее не шил.
    Далее я привожу команды для своего программатора STK500 на порту /dev/ttyACM0, тебе ключи -c и -P надо указать под твой программатор.

    Значит, для Atmega32 фузы будут такими - H: D1, L: E4.
    Команда записи:

    Код:
    avrdude -p m32 -c stk500 -P /dev/ttyACM0 -V  -U lfuse:w:0xe4:m -U hfuse:w:0xd1:m
    Фузы вписать один раз и больше не трогать.
    Запись EEPROM - туда шьется загрузчик фазы 1 (который xboot.asm). При вышеуказанных фузах он не стирается при перезаписи флеша, поэтому его тоже вписать 1 раз и не трогать, пока не захочешь подправить сам код загрузчика.

    Код:
    avrdude -p m32 -c stk500 -P /dev/ttyACM0 -U eeprom:w:xboot.bin:r
    Ну и, наконец, запись флеша - самая длинная операция.

    Код:
    avrdude -p m32 -c stk500 -P /dev/ttyACM0 -V  -U flash:w:extrom.hex:i
    Еще позволю себе дать несколько рекомендаций.

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

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

    3. Имеется отладочный терминал на ножке TxD Usart. Его параметры - 1000000-8-N-1. Туда много полезного вываливается в процессе работы программы.

    4. Ну и, естественно, перед подключением меги проверь и ее напряжение питания. А то там на разъеме и +12 есть, тут ошибиться раз плюнуть.

    Надеюсь, у тебя все получится.
    Последний раз редактировалось forth32; 14.07.2014 в 16:35.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Выкладываю. На всякий случай - все файлы и сборочный скрипт. Также там лежит обновленная схема - на старой я забыл нарисовать кнопку сброса и подтяжку для этого сигнала. Хотя, конечно, нетрудно догадаться, куда эту кнопку вешать...
    файлы похоже приложить забыл ?

    из радостных - тюнер заработал
    светодиод на плате - работает

    из не очень -

    без авр корвет говоит ПЗУ неисправно.
    с авр корвет говорит "ОШИБКА ШИНЫ"
    на бейсике чтение и 3.A - читаются рандомные данные

    платка 3 раза мигает светодиодом
    установка карточки (fat32) не изменило

    терминал тоже не заработал, воткнул его в ком ноута, он что-то похоже выводит
    но не вменяемое

    может скорость до стандартной изменить можно ?

    что посоветуеш ?

    ---------- Post added at 00:40 ---------- Previous post was at 00:39 ----------

    Цитата Сообщение от forth32 Посмотреть сообщение
    Выкладываю. На всякий случай - все файлы и сборочный скрипт. Также там лежит обновленная схема - на старой я забыл нарисовать кнопку сброса и подтяжку для этого сигнала. Хотя, конечно, нетрудно догадаться, куда эту кнопку вешать... .
    похоже забыл приаттачить ?

  4. #3

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение
    файлы похоже приложить забыл ?
    Да, забыл. Тормлзнул малость. Прикладываю сюда. Заодно очередная доработка прошивки - включен режим удвоения частоты SPI. Теперь карта работает на полной скорости, и все тормоза вносит исключительно драйвер VinxFS.

    без авр корвет говоит ПЗУ неисправно.
    У тебя ОПТС2? Там же тест ПЗУ - просто подсчет контрольной суммы. У меня он говорит "неверная КС". Хотя, может быть, твоя версия ОПТС отличается от моей. Вообщем, это нормально. Без АВР с просаженным сигналом Control он читает из порта А все FF, считает их сумму и, естественно, она оказываетсяч неправильной.

    с авр корвет говорит "ОШИБКА ШИНЫ"
    О, это моя любимая ошибка. Я полдня угробил в свое время на нее. Вообщем, у тебя AVR не отрабатывает прерывание от сигнала Control и не переводит порт A в режим ввода - поэтому из этого порта читается мусор вместо записанных туда данных. Уроды блин разработчики.
    А не обрабатывается прерывание потому, что контроллер налетел на ошибку, о чем тебе и сообщает. При этом все внешние прерывания он отключает. Если в процедуре led_error ты уберешь перую строчку

    GICR&=~(_BV(INT0)|_BV(INT1)); // Запрещаем оба внешних прерывания

    То, скорее всего, сможешь загрузить загрузчик фазы 1 - тот, который в EEPROM. На экране получишь "Boot:", но на этом все.

    платка 3 раза мигает светодиодом
    Это ошибка инициализации файловой системы. Пожалуй, пора составить табличку с кодами ошибок, чтобы по исходнику не шарить в поисках.

    установка карточки (fat32) не изменило
    Сделал бы лучше Fat16, с 32 имели место быть глюки. mkfs.vfat -F 16.
    И еще - не делай на карте разделов. То есть файловая система должна начинаться с блока 0, разбивать карту с помощью fdisk не надо. То есть примерно так:

    mkfs.vfat -F 16 /dev/sdb

    Ну и на карте должен как минимум уже лежать загрузчик 2 фазы LOADER.BIN. Но это уже другая ошибка - 2. А у тебя явно контроллер не признал карту. Надо смотреть терминал. Может быть, у тебя карта вообще SDHC - тогда, конечно, работать ничего не будет.


    терминал тоже не заработал, воткнул его в ком ноута, он что-то похоже выводит
    но не вменяемое

    может скорость до стандартной изменить можно ?
    Скорость изменить, конечно, можно. Только это может повлиять на производительность - система начнет иногда ждать окончания вывода сообщения. Сейчас все сообщения выводятся параллельно с основной работой и не тормозят процесс.
    Скорость задается в процедуре Main:

    UBRRH=0;
    UBRRL=0;

    Это максимальная доступная скорость. Старший и младший байт делителя. Значения этих полей описываются в даташите на Atmega32, страница 167 (для частоты 8 МГц, U2X=1). Для 115200 делитель будет равен 8. (L=8 H=0).

    Но вообще-то должно работать и на этой скорости. Ты через переходник USB-serial подключаешься? На всякий случай не забудь, что здесь неинвертированный TTL сигнал, надо подключаться непосредственно к микросхеме переходника или использовать преобразователь уровней на каком-нибудь Max232.
    Я пускаю терминалку minicom такой командой:

    minicom -D /dev/ttyUSB1 -b 1000000 -8 -R utf8 -w

    Это снимает проблему кодировки, и разрешает заворот длинных строк.
    Надеюсь, у тебя скоро все заработает. А то и прошивку некому потестировать...

    Кстати, еще один момент. Старайся не экономить на фильтровых конденсаторах. Поставь пару керамических конденсаторов не менее 0.1 мкф с обоих сторон процессора у ножек питания, и один на вводе питания в плату. Я тут осциллографом посмотрел - там помехи приличные по питанию идут.
    Вложения Вложения
    Последний раз редактировалось forth32; 16.07.2014 в 07:06.

  5. #4

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ура, с твоими советами стало подавать намного больше признаков жизни!

    Цитата Сообщение от forth32 Посмотреть сообщение
    У тебя ОПТС2? Там же тест ПЗУ - просто подсчет контрольной суммы. У меня он говорит "неверная КС". Хотя, может быть, твоя версия ОПТС отличается от моей. Вообщем, это нормально. Без АВР с просаженным сигналом Control он читает из порта А все FF, считает их сумму и, естественно, она оказываетсяч неправильной.
    ОПТС 1.1
    Это поянтно.
    Я ж написал что в васике из порта читается бред

    Цитата Сообщение от forth32 Посмотреть сообщение
    О, это моя любимая ошибка.
    А не обрабатывается прерывание потому, что контроллер налетел на ошибку, о чем тебе и сообщает. При этом все внешние прерывания он отключает. Если в процедуре led_error ты уберешь перую строчку

    GICR&=~(_BV(INT0)|_BV(INT1)); // Запрещаем оба внешних прерывания
    помогло !
    ура, на экрране !!!
    Нажмите на изображение для увеличения. 

Название:	korvet_boot.jpg 
Просмотров:	439 
Размер:	11.8 Кб 
ID:	48750

    Цитата Сообщение от forth32 Посмотреть сообщение
    Это ошибка инициализации файловой системы. Пожалуй, пора составить табличку с кодами ошибок, чтобы по исходнику не шарить в поисках.
    та эт совсем не сложно
    я сразу полез и посмотрел

    Цитата Сообщение от forth32 Посмотреть сообщение
    Сделал бы лучше Fat16, с 32 имели место быть глюки. mkfs.vfat -F 16.
    И еще - не делай на карте разделов. То есть файловая система должна начинаться с блока 0, разбивать карту с помощью fdisk не надо. То есть примерно так:

    mkfs.vfat -F 16 /dev/sdb

    Ну и на карте должен как минимум уже лежать загрузчик 2 фазы LOADER.BIN. Но это уже другая ошибка - 2. А у тебя явно контроллер не признал карту. Надо смотреть терминал. Может быть, у тебя карта вообще SDHC - тогда, конечно, работать ничего не будет.
    он судя по логу не доходит до фс
    но переделал как написал.
    Код:
       *** Extrom - SD ***
    
     Таймаут данных - 0  16
     CARD MID=72  OID=b620
     Product - ��4[(
     rev 169  serail -27589
     Таймаут данных - 0  512
     fs_init error 0
       *** Extrom - SD ***
    
     Таймаут данных - 0  16
     CARD MID=72  OID=b220
     Product - ��4[(
     rev 169  serail -28613
     Таймаут данных - 0  512
     fs_init error 0
       *** Extrom - SD ***
    
     Таймаут данных - 0  16
     CARD MID=72  OID=b620
     Product - ��5[(
     rev 169  serail -28613
     Таймаут данных - 0  512
     fs_init error 0
       *** Extrom - SD ***
    
     Таймаут данных - 0  16
     CARD MID=72  OID=9220
     Product - ��4[(
     rev 169  serail -28615
     Таймаут данных - 0  512
     fs_init error 0
       *** Extrom - SD ***
    
     Таймаут данных - 0  16
     CARD MID=72  OID=b620
     Product - ��4[(
     rev 169  serail -27589
     Таймаут данных - 0  512
     fs_init error 0
    карточкек пробовал парочку
    одну таки sdhc
    но откопал 256мб кингстон,
    эффект тот-же

    Цитата Сообщение от forth32 Посмотреть сообщение
    Скорость изменить, конечно, можно. Только это может повлиять на производительность - система начнет иногда ждать окончания вывода сообщения.
    установил 115200 - помогло !
    у меня встроенный порт ноута, может по этому
    гланое задышало, а то вчера кроме как мигатния светодиода я от нее ничего не добился.


    Цитата Сообщение от forth32 Посмотреть сообщение
    Надеюсь, у тебя скоро все заработает. А то и прошивку некому потестировать...
    я тоже.

    Цитата Сообщение от forth32 Посмотреть сообщение
    Кстати, еще один момент. Старайся не экономить на фильтровых конденсаторах. Поставь пару керамических конденсаторов не менее 0.1 мкф с обоих сторон процессора у ножек питания, и один на вводе питания в плату. Я тут осциллографом посмотрел - там помехи приличные по питанию идут.
    напиши что точно и куда ставить, плата уже у меня, припаять то я смогу, но надо точно ЧТО и КУДА

    еще мы плату запитали от 12В
    т.к. на разъеме было не 5 а 4.6в
    на SD получалось около 3х
    а на плате есть вход с кренкой, вот туда и подали 12
    на SD стало 3.5 это вроде допустимо

    выглядит сейчас так

    судя по картинке плата - клон вот-этой

    вечером еще перепроверю контакты в разъеме.

    огромное спасибо!

  6. #5

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение

    *** Extrom - SD ***

    Таймаут данных - 0 16
    CARD MID=72 OID=b620
    Product - ��4[(
    rev 169 serail -27589
    Таймаут данных - 0 512
    fs_init error 0
    У тебя однозначные проблемы с чтением карт. Даже блок идентификации по SPI не читается, а вместо него читается мусор. Должно быть примерно так:
    Код:
       *** Extrom - SD ***
    
     Reset flag:1
    
     CARD MID=2  OID=4d54
     Product - SD02G
     rev 56  serail 13224
     -- Каталог диска --
    0: MOUNT   CFG
    1: LOADER  BIN
    2: SYSTEM  BIN
    3: ROM6    BIN
    4: ROM1    BIN
    5: ROM3    BIN
    6: ROM5    BIN
    7: DISK       
    8: ROM0    BIN
    
    Total 9 files
    На всякий случай, попробовал карту на 512М из древнего фотоаппарата. С ней тоже все пошло:
    Код:
      *** Extrom - SD ***
    
     Reset flag:1
    
     CARD MID=13  OID=474b
     Product - SD512
     rev 16  serail 497
     -- Каталог диска --
    0: DCIM       
    1: MISC       
    
    Total 2 files
    Так что проблемы ищи у себя в схеме. Я могу только предположить:

    1. SD - карта сидит на том же порте SPI, что и программатор. Пробовал запускать с отсоединенным программатором? Некоторые программаторы не отключают свой буфер, и мешают работать схеме.

    2. Перепутал местами провода, идущие от процессора к карте. Там 4 сигнала, запросто можно ошибиться. Или перепутал цоколевку карты. Там хитрый порядок пинов - 9-1-2-3-4-5-6-7-8. Плюс на самой колодке SD есть лишние пины для контроля вставки карты и защелки защиты записи.

    3. Ошибся с номиналом резисторов делителей, впаял стабилитрон на ножке DO карты не на но напряжение или случайно впаял его задом наперед (надо анодом к земле, катодом к сигналу).

    Если схема собрана правильно, и номиналы все так же правильные, то оно должно заработать сразу и без вариантов. Чудес не бывает, особенно в цифровой технике.
    Проще всего проверить работу, ткнув осциллографом в ножку DO карты. Там должны быть видны ответные пакеты, идущие от карты.

    Кстати.Он у тебя там что - постоянно самопроизвольно уходит в перезагрузку, судя по твоему логу? Или это ты кнопку Reset давишь?

    карточкек пробовал парочку
    одну таки sdhc
    С ней ничего не выйдет, даже идентификатор не прочитается. Так какая-то другая система команд, но подробнее я не разбирался.

    напиши что точно и куда ставить, плата уже у меня, припаять то я смогу, но надо точно ЧТО и КУДА
    Нужна парочка конденсаторов не менее 0.1 мкф, лучше 0.33, обязательно керамические. Припаять их с двух сторон процессора между ножками питания - 10-11 и 30-31. Кстати, не забыл подать питание на ножку 30? Без этого работать не будет.

    еще мы плату запитали от 12В
    т.к. на разъеме было не 5 а 4.6в
    Напрасно вы так сделали. 4.6в - вполне нормальное напряжение для меги. Ему так даже немного легче работать. У меня тоже 4.6в питание с корвета идет, и все работает. По 12в в корвете сильная помеха идет от ВМ80. Хотя у тебя на плате приличный фильтр питания есть, так что это все несущественно.

    на SD получалось около 3х
    а на плате есть вход с кренкой, вот туда и подали 12
    на SD стало 3.5 это вроде допустимо
    Вообще-то, хорошо бы понизить все же до 3.3В. В карте имеется встроенный монитор питания, и в случае выхода его за пределы карта отключает работу с Flash-массивом. Правда, идентификация в любом случае должна проходить.

    Вообщем, разбирайся с картой. Хорошо бы тебе найти карту на 1-2 гига, они все не HC. Но и н 256М - вроде тоже не особо древняя.
    Из всех имеющихся у меня не-HC карт отказалась работать только древнючая Toshiba на 16 Mb. Остальные контроллером корректно опознаются.

    Вот теперь думаю - может, пора переделывать драйвер на HC ? Но, с другой стороны, нафиг там HC, если весь имеющийся на свете корветовский софт занимает менее 1 гигобайта?
    выглядит сейчас так
    Что интересно, мой вариант выглядит почти так же - https://www.dropbox.com/s/7g8xs61qgc5ebr5/P1070752.JPG

  7. #6

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Вообще-то, хорошо бы понизить все же до 3.3В. В карте имеется встроенный монитор питания, и в случае выхода его за пределы карта отключает работу с Flash-массивом. Правда, идентификация в любом случае должна проходить.
    выбор был между 3.0 при 4.6
    и 3.5 при 12
    решили выбрать 3.5

    ---------- Post added at 12:22 ---------- Previous post was at 12:12 ----------

    Цитата Сообщение от forth32 Посмотреть сообщение
    2. Перепутал местами провода, идущие от процессора к карте. Там 4 сигнала, запросто можно ошибиться. Или перепутал цоколевку карты. Там хитрый порядок пинов - 9-1-2-3-4-5-6-7-8. Плюс на самой колодке SD есть лишние пины для контроля вставки карты и защелки защиты записи.
    вечером буду прозванивать.

    Цитата Сообщение от forth32 Посмотреть сообщение
    Проще всего проверить работу, ткнув осциллографом в ножку DO карты. Там должны быть видны ответные пакеты, идущие от карты.
    осцила нету, есть логичесскийй анализатор (прикупил на поиграться вот такое USB Saleae 24MHz 8Channel Logic Analyzer)
    попробую подключить - посмотреть.
    он вроде spi умеет декодить.


    Цитата Сообщение от forth32 Посмотреть сообщение
    Кстати.Он у тебя там что - постоянно самопроизвольно уходит в перезагрузку, судя по твоему логу? Или это ты кнопку Reset давишь?
    ручные перезагрузки.

    ---------- Post added at 12:24 ---------- Previous post was at 12:22 ----------

    Цитата Сообщение от forth32 Посмотреть сообщение
    Вот теперь думаю - может, пора переделывать драйвер на HC ? Но, с другой стороны, нафиг там HC, если весь имеющийся на свете корветовский софт занимает менее 1 гигобайта?
    конечно делать, где сейчас найдёш SD карту ?
    просто из этих соображений

    а винксфс есть поддержка HC (в его драйвере SD)
    и я кидал ссылку на форум easyelectronics там был инит с детектом типа карты.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Open source firmware for the Spectrum
    от zx-kit в разделе Разный софт
    Ответов: 60
    Последнее: 29.05.2014, 13:53
  2. open-source эмуляторы под .NET
    от Sawyer в разделе Эмуляторы
    Ответов: 1
    Последнее: 04.01.2011, 17:47
  3. GP2X F100 Open Source Gaming Console
    от CodeMaster в разделе Зарубежные компьютеры
    Ответов: 3
    Последнее: 12.06.2010, 23:51
  4. Open Source эмуль...
    от rg_software в разделе Эмуляторы
    Ответов: 50
    Последнее: 06.12.2006, 11:57

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •