mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-08-22 15:39:01 +00:00
add config baud increase docs
This commit is contained in:
+14
-8
@@ -17,18 +17,19 @@ const (
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
spibus = machine.SPI0
|
spibus = machine.SPI0
|
||||||
)
|
spicfg = machine.SPIConfig{
|
||||||
|
|
||||||
func main() {
|
|
||||||
time.Sleep(time.Second)
|
|
||||||
SPI_CS_PIN.Configure(machine.PinConfig{Mode: machine.PinOutput})
|
|
||||||
err := spibus.Configure(machine.SPIConfig{
|
|
||||||
Frequency: 250000,
|
Frequency: 250000,
|
||||||
Mode: 0,
|
Mode: 0,
|
||||||
SCK: SPI_SCK_PIN,
|
SCK: SPI_SCK_PIN,
|
||||||
SDO: SPI_TX_PIN,
|
SDO: SPI_TX_PIN,
|
||||||
SDI: SPI_RX_PIN,
|
SDI: SPI_RX_PIN,
|
||||||
})
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
time.Sleep(time.Second)
|
||||||
|
SPI_CS_PIN.Configure(machine.PinConfig{Mode: machine.PinOutput})
|
||||||
|
err := spibus.Configure(spicfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err.Error())
|
panic(err.Error())
|
||||||
}
|
}
|
||||||
@@ -38,9 +39,14 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic("sd card init:" + err.Error())
|
panic("sd card init:" + err.Error())
|
||||||
}
|
}
|
||||||
|
// After initialization it's safe to increase SPI clock speed.
|
||||||
|
csd := sdcard.CSD()
|
||||||
|
kbps := csd.TransferSpeed().RateKilobits()
|
||||||
|
spicfg.Frequency = uint32(kbps * 1000)
|
||||||
|
err = spibus.Configure(spicfg)
|
||||||
|
|
||||||
cid := sdcard.CID()
|
cid := sdcard.CID()
|
||||||
pname := cid.ProductName()
|
pname := cid.ProductName()
|
||||||
csd := sdcard.CSD()
|
|
||||||
if !cid.IsValid() {
|
if !cid.IsValid() {
|
||||||
copy := cid.RawCopy()
|
copy := cid.RawCopy()
|
||||||
println("CID not valid: theirCRC=", cid.CRC7(), "ourCRC=", sd.CRC7(copy[:15]))
|
println("CID not valid: theirCRC=", cid.CRC7(), "ourCRC=", sd.CRC7(copy[:15]))
|
||||||
|
|||||||
@@ -58,6 +58,8 @@ func (c *SPICard) csEnable(b bool) { c.cs(!b) }
|
|||||||
func (c *SPICard) LastReadCRC() uint16 { return c.lastCRC }
|
func (c *SPICard) LastReadCRC() uint16 { return c.lastCRC }
|
||||||
func (c *SPICard) LastR1() r1 { return c.lastr1 }
|
func (c *SPICard) LastR1() r1 { return c.lastr1 }
|
||||||
|
|
||||||
|
// Init initializes the SD card. This routine should be performed with a SPI clock
|
||||||
|
// speed of around 100..400kHz. One may increase the clock speed after initialization.
|
||||||
func (d *SPICard) Init() error {
|
func (d *SPICard) Init() error {
|
||||||
dummy := d.buf[:]
|
dummy := d.buf[:]
|
||||||
for i := range dummy {
|
for i := range dummy {
|
||||||
|
|||||||
+1
-1
@@ -447,7 +447,7 @@ var log10table = [...]int64{
|
|||||||
1000000,
|
1000000,
|
||||||
}
|
}
|
||||||
|
|
||||||
// RateMegabits returns the transfer rate in megabits per second.
|
// RateMegabits returns the transfer rate in kilobits per second.
|
||||||
func (t TransferSpeed) RateKilobits() int64 {
|
func (t TransferSpeed) RateKilobits() int64 {
|
||||||
return 100 * log10table[t&0b111]
|
return 100 * log10table[t&0b111]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user