ArduinoDue + ext.SRAM
- Войдите на сайт для отправки комментариев
Доброго времени суток.
Недавно купил две CY7C1019DV33 (128kx8) (10ns) микросхемы SRAM с параллельным доступом. Они вмести используют: 16бит шину данных, 17бит шину адреса и сигналы WE(Write En), OE(Read En), CS(Chip Select, который я просто прижал к земле). У Arduino Due есть спец.библиотека Parallel для таких целей.
Есть несколько параметров шины данных:
// Configure the address setup time. See datasheet for calculations. void setAddressSetupTiming( uint8_t cyclesBeforeNWE, uint8_t cyclesBeforeNCSWrite, uint8_t cyclesBeforeNRD, uint8_t cyclesBeforeNCSRead); // Configure the pulse width of NCS, NWE, and NRD. See datasheet for calculations. void setPulseTiming( uint8_t cyclesNWEWidth, uint8_t cyclesNCSWidthWrite, uint8_t cyclesNRDWidth, uint8_t cyclesNCSWidthRead); // Set the total read/write cycle time. See datasheet for calculations. void setCycleTiming( uint8_t cyclesWriteTotal, uint8_t cyclesReadTotal);
Но какие бы я тайминги не высталял, простейший тест чтения-записи выдает кучу ошибок. Я так понял, здесь все в циклах, т.е 1 цикл == 12ns. В даташит-е у SRAM написало все в наносекундах, но все параметры из даташит не могу сопоставить с параметрами из бибилотеки.
Понял только то, что:
* cyclesWriteTotal == Write Cycle Time == 1ckl ==~ 10ns
* cyclesReadTotal == Write Read Time == 1ckl ==~ 10ns
* cycleNWEWidth == WE Pulse Width == 1ckl ==~ 7ns
Не совсем понял как вы все это дело засоединяли... можете продемонстрировать? судя по спецификации должна быть такая пачка проводов, штук 40 примерно.
Не совсем понял как вы все это дело засоединяли... можете продемонстрировать? судя по спецификации должна быть такая пачка проводов, штук 40 примерно.
Есть таблица соответсвий:
Адрес:
Данные:
Некоторые пины не были выведены на Arduino плате, пришлось подпаивать напрямую к микросхеме. Я все сделал в виде небольшого шилда:
Не обращайте внимание на шлейфы, они выведены для того, чтобы использовать эти шины для других устройств.(универсальная все-таки.)
Что-то все перекосило. :-/
Krikus, ничего так. Сам хотел добавить пару мегабит в свою ардуину. Если заработает, неплохо бы схему увидеть и т.п. :)
Krikus, ничего так. Сам хотел добавить пару мегабит в свою ардуину. Если заработает, неплохо бы схему увидеть и т.п. :)
Как только - так сразу. Но пока ничего не работает. Все выводы микросхемы проверял светодиодом: никаких КЗ и прочих - не обнаружено, остается программная часть.
Тайминги должны где-то в диапазоне от 0 до 1 такта, так как скорость памяти 10ns, что позволяет работать с ней на частоте ~100МГц, что > частоты ЦП.
Может микросхемы SRAM мертвые...
память для чего - увеличить РАМ (переменных) для программ? как указать компилятору, что есть больше памяти на борту.
память для чего - увеличить РАМ (переменных) для программ? как указать компилятору, что есть больше памяти на борту.
ни как не указывать, писать нужно на C++ в атмел студии. для ардуино ИДЕ все эти танцы бесполезны практически... если вы почитайте спецификацию. то из этого чипа можно собрать много что...большая часть его возможностей не используется в ардуино...
на сайте атмеля есть код для работы с памятью дополнительной.. пробовали его?
память для чего - увеличить РАМ (переменных) для программ? как указать компилятору, что есть больше памяти на борту.
ни как не указывать, писать нужно на C++ в атмел студии. для ардуино ИДЕ все эти танцы бесполезны практически... если вы почитайте спецификацию. то из этого чипа можно собрать много что...большая часть его возможностей не используется в ардуино...
на сайте атмеля есть код для работы с памятью дополнительной.. пробовали его?
Но-но-но. Не обязательно в Атмел Студио. Можно и в Ардуино ИДЕ. Здесь лучше написать, что большинство функций чипа не адаптированы под Wiring. А так, можно хоть на асм-е писать, от ИДЕ это не зависит.
Но-но-но. Не обязательно в Атмел Студио. Можно и в Ардуино ИДЕ. Здесь лучше написать, что большинство функций чипа не адаптированы под Wiring. А так, можно хоть на асм-е писать, от ИДЕ это не зависит.
Соглашусь, писать можно хоть в блокноте... Но для чистоты эскперемента вы все же попробуйте для начала прошить кодом с сайта атмеля для работы с внешней памятью.. там у них красиво все разложено..
Сам просто последнии несколько дней тычу паяльником в етот чип, инструкция на 1200 страницах убивает любую муху просто своим видом...
я на будущее...пока хватает текущей оперативки.
Да мануалы в 1200 страниц убивают всякое желание.... хотел присобачить Linear CCD Sensor к ардуине, именно мануалы и их отсутствие заставили бросить всё)
я на будущее...пока хватает текущей оперативки.
Да мануалы в 1200 страниц убивают всякое желание.... хотел присобачить Linear CCD Sensor к ардуине, именно мануалы и их отсутствие заставили бросить всё)
дык почитайте на будушее, на этом чипе и сетевая карта размазана и wi-fi какой то частью присутсвует и еще куча всякой фигни.. :)
я на будущее...пока хватает текущей оперативки.
Да мануалы в 1200 страниц убивают всякое желание.... хотел присобачить Linear CCD Sensor к ардуине, именно мануалы и их отсутствие заставили бросить всё)
дык почитайте на будушее, на этом чипе и сетевая карта размазана и wi-fi какой то частью присутсвует и еще куча всякой фигни.. :)
Да, там куча всяких плюшек, но меня просто убивает то, что эти все плюшки нельзя использовать все сразу :) Они сидят на одних и тех же портах, и это печалит.
ну есть хорошие плюшки которыми можно пользоватся сразу.. например SPI, вылетело как он называется по хитрому, ну который 4 устройства паралельно держит на одной шине одновременно.. а уж мультитаскинг вообще прикольный... можно несколько лупов запускать одномоментно. главно что бы не пересекались...
а если все и сразу то посмотрите в сторону нового чипа, мне тут присылали расылку..SAM D20
он там разве что крестиком не вышивает :)
а память для скретчей можно увеличить? ROM PROG скажем до 10 Мб, глядишь и ось можно сделать, но проще перейти на другой чип...
а память для скретчей можно увеличить? ROM PROG скажем до 10 Мб, глядишь и ось можно сделать, но проще перейти на другой чип...
линукс на нем гоняют и видео он тоже тянет.. в ардуино его просто кастрировали самым жестким образом :)
а память для скретчей можно увеличить? ROM PROG скажем до 10 Мб, глядишь и ось можно сделать, но проще перейти на другой чип...
линукс на нем гоняют и видео он тоже тянет.. в ардуино его просто кастрировали самым жестким образом :)
Хм... Видео я сам пробовал воспроизводить, а вот, Линукс. Неужели там Линукс запустили?
PS: Убился с таймингами, ничего не хочет работать. :)
тут какая то память под линукс сделана
тут какая то память под линукс сделана
Это SDRAM, но это совсем другая история. Такие сейчас редкость, теоретически, они быстрее SRAM, но протокол у них замудренный.
!
Проблема оказалась не в таймингах, а в шуме/звоне фронтов шлейфа и проводников.
Когда я касаюсь оголенного шлейфа рукой, то ошибки, чудесным образом, исчезают. Пробовал вокруг шлейфа намотать проволоку, затем подключить ее к gnd - но результат тот же.
!
Проблема оказалась не в таймингах, а в шуме/звоне фронтов шлейфа и проводников.
Когда я касаюсь оголенного шлейфа рукой, то ошибки, чудесным образом, исчезают. Пробовал вокруг шлейфа намотать проволоку, затем подключить ее к gnd - но результат тот же.
Обычно сигнальные линии перемежают с земляными при использовании шлейфа.
Т.е. чётные - сигнальные, нечётные - земля.
!
Проблема оказалась не в таймингах, а в шуме/звоне фронтов шлейфа и проводников.
Когда я касаюсь оголенного шлейфа рукой, то ошибки, чудесным образом, исчезают. Пробовал вокруг шлейфа намотать проволоку, затем подключить ее к gnd - но результат тот же.
Обычно сигнальные линии перемежают с земляными при использовании шлейфа.
Т.е. чётные - сигнальные, нечётные - земля.
А резисторы тут не помогут? 100кОм на землю.
А резисторы тут не помогут? 100кОм на землю.
Может и помогут, но вообще не о том - нужно правильно разводить земли а не обвешивать схему странным.
А резисторы тут не помогут? 100кОм на землю.
Может и помогут, но вообще не о том - нужно правильно разводить земли а не обвешивать схему странным.
Сейчас с платой уже ничего не сделаешь. А резисторы помогли: теперь тест чтения проходит успешно, осталось разобраться с записью.
У меня уготовано устройство, которое будет подключаться по этой шине(которая висит в воздухе с резисторами) : я полагаю, оно должно снизить все шумы и прочее.
а как паяли ноги? - элегантно припаяли к разъему, а потом туда память? или проводки прямо к планке памяти?
а как паяли ноги? - элегантно припаяли к разъему, а потом туда память? или проводки прямо к планке памяти?
Чьи ноги? :)
Я изготовил печатную плату, затем просто припаял микросхемы на уготованные им места. И все, если вы об этом.
а) я думал вы использовали компьютерную память, та которая с золотыми контактами, как на фото выше
а чего просто не сделали сразу схему проц и память на одной плате? нафиг городить огороды со шлейфами?
Да кстати, если соберетесь идти по такому пути. то процесоры заранее заказывайте... их в наличии почти нигде нет... везде нада в ожидании отстоять недель 6-7 :(